coseru.id - Coding asik & Seru

🔍 Cari Materi & Kelas

Robotika & Otomasi Tingkat: Pemula 3 x dilihat

Dadu Elektronik Menggunakan Touch Sensor, LED Matrix, dan Arduino

Dadu Elektronik Menggunakan Touch Sensor, LED Matrix, dan Arduino

Ringkasan Proyek

Buat dadu elektronik menggunakan Arduino Nano, Touch Sensor, dan LED Matrix 8x8. Setiap kali sensor disentuh, Arduino menghasilkan angka acak dari 1 sampai 6 dan menampilkannya dalam bentuk pola titik seperti dadu sungguhan. Proyek ini cocok untuk mengenalkan konsep input digital, output LED, bilangan acak, array, komunikasi serial SPI, dan pemrograman Arduino melalui permainan sederhana.

Bahan & Komponen

Daftar perangkat keras, modul, dan tools yang dibutuhkan untuk merakit proyek ini.

Daftar Komponen & Perangkat Keras

  • 1x Arduino Nano R3 (Mikrokontroler utama yang menghasilkan angka acak dan mengendalikan tampilan LED Matrix).
  • 1x Touch Sensor (Mendeteksi sentuhan pengguna sebagai input untuk menjalankan dadu elektronik).
  • 1x LED Matrix 8x8 (Menampilkan angka 1 sampai 6 menggunakan kombinasi LED yang membentuk pola titik seperti dadu).
  • 1x Breadboard (Media untuk merangkai komponen elektronik tanpa solder).
  • 1x Set Jumper Wires (Menghubungkan Arduino Nano, Touch Sensor, dan LED Matrix).

Software dan Library

  • Arduino IDE (Digunakan untuk menulis, mengompilasi, dan mengunggah program ke Arduino Nano).
  • LedControl.h (Library untuk mengendalikan LED Matrix berbasis driver MAX7219 atau MAX7221).
  • Arduino C++ (Bahasa pemrograman untuk mengatur input sensor, menghasilkan angka acak, dan menampilkan pola pada LED Matrix).

Catatan Komponen

Dokumentasi asli mencantumkan Arduino Nano R3, Touch Sensor, LED Matrix 8x8, breadboard, dan jumper wires. Model spesifik Touch Sensor dan driver LED Matrix tidak disebutkan secara eksplisit dalam daftar komponen. Namun, penggunaan library LedControl dan tiga jalur DIN, CLK, serta CS menunjukkan bahwa LED Matrix yang digunakan adalah jenis yang kompatibel dengan driver MAX7219/MAX7221. Pastikan modul yang digunakan sesuai dengan konfigurasi tersebut.

Langkah Pembuatan

Khusus Member

Panduan perakitan tahap demi tahap dan catatan proses pengerjaan.

Proyek ini membuat dadu elektronik yang dapat digunakan untuk permainan papan. Arduino Nano membaca sentuhan dari Touch Sensor, menghasilkan angka acak antara 1 sampai 6, kemudian menampilkan hasilnya melalui LED Matrix 8x8. Sebelum menampilkan angka, sistem juga menjalankan animasi pola LED sebagai efek visual tambahan.

Langkah 1: Siapkan Seluruh Komponen

Siapkan Arduino Nano R3, satu Touch Sensor, satu LED Matrix 8x8 yang kompatibel dengan MAX7219, breadboard, dan kabel jumper. Periksa pin pada setiap komponen sebelum memulai perakitan. LED Matrix umumnya memiliki pin VCC, GND, DIN, CS, dan CLK, sedangkan Touch Sensor memiliki pin daya, ground, dan sinyal output.

\"DaduTampilan utama proyek Electronic Dice dari Electronics Champ.

Langkah 2: Hubungkan LED Matrix 8x8 ke Arduino Nano

Pasang modul LED Matrix 8x8 pada breadboard atau gunakan kabel jumper untuk menghubungkannya langsung ke Arduino Nano. Modul LED Matrix menggunakan tiga jalur komunikasi, yaitu DIN (Data In), CLK (Clock), dan CS (Chip Select atau Load Pulse).

Hubungkan DIN LED Matrix ke pin digital 10 Arduino Nano, CS ke pin digital 9, dan CLK ke pin digital 8. Hubungkan VCC modul ke 5V Arduino Nano dan GND modul ke GND Arduino Nano.

Ketiga jalur komunikasi tersebut digunakan oleh library LedControl untuk mengirimkan data pola LED ke driver matrix.

Langkah 3: Hubungkan Touch Sensor

Hubungkan Touch Sensor ke Arduino Nano. Pin output atau SIG sensor dihubungkan ke pin digital 7. Pin VCC dihubungkan ke 5V dan GND sensor dihubungkan ke GND Arduino Nano.

Touch Sensor berfungsi sebagai input digital. Ketika tidak disentuh, sensor pada konfigurasi program ini menghasilkan LOW. Ketika disentuh, sensor menghasilkan HIGH. Arduino akan membaca perubahan tersebut untuk menentukan kapan dadu harus menghasilkan angka baru.

Langkah 4: Periksa Koneksi Rangkaian

Sebelum menghubungkan sumber daya, periksa seluruh jalur kabel. Pastikan DIN terhubung ke pin 10, CS ke pin 9, CLK ke pin 8, dan output Touch Sensor ke pin 7. Pastikan juga VCC dan GND setiap modul terhubung dengan benar. Seluruh komponen harus memiliki ground bersama.

Langkah 5: Siapkan Arduino IDE

Buka Arduino IDE pada komputer. Pastikan board Arduino Nano telah dipilih melalui menu Tools. Selanjutnya, instal library LedControl.h melalui Library Manager jika belum tersedia.

Library LedControl digunakan untuk mengatur komunikasi antara Arduino dan driver LED Matrix. Dengan library ini, kamu dapat mengatur baris LED menggunakan fungsi matrix.setRow() tanpa perlu mengendalikan setiap LED satu per satu.

Langkah 6: Pahami Konfigurasi LED Matrix

Program menggunakan tiga pin komunikasi untuk mengendalikan LED Matrix. Variabel DIN diatur pada pin 10, CS pada pin 9, dan CLK pada pin 8. Objek matrix dibuat menggunakan perintah LedControl(DIN, CLK, CS, 1). Angka 1 menunjukkan bahwa hanya satu modul display yang digunakan.

Pada fungsi setup(), perintah matrix.shutdown(0, false) digunakan untuk mengaktifkan display dari mode hemat daya. Selanjutnya, matrix.setIntensity(0, 8) mengatur tingkat kecerahan LED Matrix pada nilai 8 dari maksimum 15.

Langkah 7: Atur Random Number Generator

Program menggunakan randomSeed(analogRead(A0)) untuk menginisialisasi pembangkit angka acak. Arduino membaca nilai analog dari pin A0 yang tidak terhubung ke sumber sinyal tertentu. Nilai tersebut digunakan sebagai seed agar urutan angka yang dihasilkan tidak selalu dimulai dari pola yang sama.

Fungsi random(1, 7) digunakan untuk menghasilkan angka acak dari 1 sampai 6. Perlu diperhatikan bahwa batas atas fungsi random() tidak disertakan sehingga angka 7 tidak akan menjadi hasil keluaran.

Langkah 8: Buat Pola Angka pada LED Matrix

Setiap angka dadu dibuat menggunakan array byte berisi delapan elemen. Setiap elemen merepresentasikan satu baris pada LED Matrix 8x8. Nilai biner menentukan LED mana yang menyala dan mana yang mati.

Program menyediakan enam pola, yaitu one, two, three, four, five, dan six. Masing-masing pola membentuk susunan titik yang menyerupai sisi dadu dengan jumlah satu sampai enam.

Langkah 9: Buat Fungsi untuk Menampilkan Pola

Fungsi setBit(byte pos[]) digunakan untuk mengirimkan delapan baris data ke LED Matrix. Program menjalankan perulangan dari baris 0 sampai 7 dan menggunakan matrix.setRow(0, i, pos[i]) untuk mengatur kondisi LED pada setiap baris.

Angka 0 pada fungsi tersebut menunjukkan alamat display pertama karena hanya satu LED Matrix yang digunakan.

Langkah 10: Buat Animasi Pembuka

Fungsi displayPattern() menyediakan empat pola animasi yang diberi nama pattern1, pattern2, pattern3, dan pattern4. Setiap pola terdiri dari delapan byte yang membentuk gambar kotak dengan ukuran berbeda.

Program menampilkan keempat pola secara berurutan menggunakan setBit() dan memberikan jeda 50 milidetik di antara setiap perubahan. Seluruh rangkaian animasi diulang sebanyak tiga kali sehingga menghasilkan efek visual sebelum angka dadu ditampilkan.

Langkah 11: Tampilkan Angka Dadu

Fungsi displayNumber() memeriksa nilai randomNumber menggunakan rangkaian kondisi if dan else if. Jika nilainya 1, program memanggil displayPattern() kemudian setBit(one). Jika nilainya 2, program menampilkan pola two. Proses yang sama dilakukan untuk angka 3 sampai 6.

Dengan cara ini, angka acak yang dihasilkan Arduino diterjemahkan menjadi susunan titik pada LED Matrix 8x8.

Langkah 12: Jalankan Dadu Elektronik

Setelah seluruh koneksi selesai, hubungkan Arduino Nano ke komputer menggunakan kabel USB. Unggah program ke Arduino Nano melalui Arduino IDE. Setelah perangkat menyala, LED Matrix akan menampilkan animasi pola selama Touch Sensor belum disentuh.

Ketika Touch Sensor disentuh, Arduino membaca kondisi HIGH, menghasilkan angka acak dari 1 sampai 6, menjalankan animasi, kemudian menampilkan pola angka yang sesuai pada LED Matrix.

Langkah 13: Uji Hasil Permainan

Coba sentuh Touch Sensor beberapa kali dan amati hasil yang muncul. Pastikan LED Matrix dapat menampilkan keenam kemungkinan angka. Perhatikan juga animasi yang muncul sebelum angka dadu ditampilkan.

Jika LED Matrix tidak menyala, periksa kembali koneksi VCC, GND, DIN, CLK, dan CS. Jika sensor tidak merespons, periksa koneksi output sensor pada pin digital 7 serta pastikan kondisi output berubah dari LOW menjadi HIGH saat disentuh.

Catatan Teknis untuk Penyempurnaan

Kode asli memiliki beberapa hal yang perlu diperhatikan. Pertama, variabel patternNumber dideklarasikan tetapi tidak digunakan. Kedua, fungsi loop() menghasilkan angka baru setiap kali sensor terbaca HIGH. Jika sensor terus disentuh atau output tetap HIGH, program dapat menghasilkan angka berulang kali. Untuk perilaku satu kali lemparan per sentuhan, tambahkan deteksi perubahan kondisi dari LOW ke HIGH dan tunggu hingga sensor dilepas sebelum menerima sentuhan berikutnya. Ketiga, fungsi displayPattern() dipanggil sebelum pola angka ditampilkan, sehingga animasi menjadi bagian dari setiap lemparan dadu. Keempat, program menggunakan pin A0 yang tidak terhubung sebagai sumber seed. Hasil random tetap bersifat pseudorandom, bukan acak sempurna secara matematis.

🔒
Akses Gratis Khusus Member

Buka Seluruh Panduan, Skema & Source Code

Dapatkan akses penuh ke langkah perakitan detail, diagram sirkuit lengkap, dan source code siap pakai. Gratis selamanya!

✓ Akses Gratis Selamanya
✓ Copy-Paste Source Code
✓ Kembali Otomatis ke Proyek

Petualangan Belajar di coseru

💡 Saksikan keseruan anak-anak belajar merakit robot dan coding! Daftar Kelas Uji Coba →