Kita semua sudah familiar dengan dadu dan sering memainkan game LUDO atau SANP SIDI (Snake & Ladders) dengan menggunakan dadu. Dadu adalah kotak padat tipe pengawal yang berisi 6 nomor berbeda di semua sisinya. Kami melempar dadu ke permukaan untuk mendapatkan nomor acak saat bermain game. Dalam proyek ini kami mencoba menirunya dengan dadu digital menggunakan papan arduino uno. Sebagai pengganti melempar dadu, disini kita perlu menekan tombol untuk mendapatkan angka acak antara 0 sampai 6.
Komponen yang Diperlukan
- Arduino UNO
- Tampilan tujuh segmen (Common Anode)
- Tekan tombol
- Menghubungkan kabel
- Papan roti
- Resistor 1 k
- Sumber Daya listrik
Diagram Sirkuit dan Penjelasannya
Seperti yang ditunjukkan pada rangkaian dadu digital di atas, arduino digunakan untuk mengontrol seluruh proses. Dua tombol tekan digunakan di sirkuit - satu untuk memulai dadu dan lainnya untuk mengatur ulang dadu. Arduino membaca kedua tombol ini dan menjalankan operasinya. Tampilan tujuh segmen digunakan untuk menampilkan hasil dadu.
Arduino terus menjalankan fungsi rand () dan menyimpan nilainya ke dalam variabel sementara. Ketika tombol dadu ditekan, nilai yang disimpan dihitung dan ditampilkan pada tujuh segmen dengan menggunakan metode yang sesuai (lihat bagian pemrograman artikel).
Di sini, di rangkaian dadu ini, tampilan tujuh segmen anoda umum digunakan untuk menampilkan nomor dadu, yang langsung terhubung ke nomor pin digital arduino 6, 5, 4, 3, 2, 1, 0. Dan pin anoda umum tujuh segmen adalah dihubungkan dengan resistor +5 volt 220 Ohm. Dua tombol tekan juga dihubungkan yaitu tombol dadu dan tombol reset yang dihubungkan ke pin digital 14 (A0) dan 15 (A1) ke ground.
Penjelasan Kode
Bagian pemrograman dari proyek ini memainkan peran yang sangat penting untuk menampilkan angka dadu digital acak pada tampilan tujuh segmen. Arduino tidak berisi pustaka apa pun untuk tampilan tujuh segmen. jadi kami membuat seluruh kode tanpa menggunakan pustaka apa pun.
Pertama-tama kami memilih pin digital untuk tampilan tujuh segmen.
pin int = {6,5,4,3,2,1,0};
Setelah itu kita buat larik yang terdiri dari 6 digit dadu yaitu 1, 2, 3, 4, 5 dan 6.
digit karakter = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
Sekarang kami memberikan arahan untuk menggunakan pin arduino sebagai output.
void setup () {untuk (int i = 0; i <7; i ++) pinMode (pin, OUTPUT); pinMode (dadu, INPUT); pinMode (setel ulang, INPUT); digitalWrite (dadu, TINGGI); digitalWrite (setel ulang, TINGGI);
Kami mengirim kode untuk menampilkan nol pada tampilan tujuh segmen secara default.
suhu int = 0x40; untuk (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pin, temp1); suhu = suhu >> 1; }
Sekarang kita menjalankan fungsi rand () untuk mendapatkan nomor acak.
int temp = rand ();
Dan ketika kita menekan program tombol dadu pertama-tama petakan nomor acak ini dan kemudian kirim nomor ke tampilan tujuh segmen dengan menggunakan operator bitwise.
if (digitalRead (dadu) == 0) {int k = temp% 6; temp = digit; Tunggu(); untuk (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pin, temp1); suhu = suhu >> 1; } penundaan (200); }
Dan sama untuk tombol reset.
Dalam program ini kami mengirimkan satu bit pada satu waktu. Di sini kami menerapkan for loop yang berjalan 7 kali untuk mengirim data ke setiap segmen satu per satu.