Svi smo upoznati s kockama i često smo igrali kockice LUDO ili SANP SIDI (Snake & Ladders) igru. Kocka je čvrsta kutija tipa štitonoša koja sadrži 6 različitih brojeva na svim stranama. Bacimo kockice na površinu kako bismo dobili slučajan broj tijekom igranja igara. U ovom smo projektu pokušali ponoviti ga digitalnim kockama pomoću arduino uno ploče. Umjesto bacanja kocke, ovdje moramo pritisnuti gumb da bismo dobili slučajni broj između 0 i 6.
Potrebne komponente
- Arduino UNO
- Zaslon od sedam segmenata (zajednička anoda)
- Tipke
- Spajanje žica
- Daska za kruh
- 1 k otpornik
- Napajanje
Kružni dijagram i objašnjenje

Kao što je prikazano u gornjem krugu digitalnih kockica, arduino se koristi za kontrolu cijelog procesa. U krugu se koriste dva gumba - jedan za pokretanje kocke, a drugi za resetiranje kocke. Arduino čita ove dvije tipke i izvodi operaciju. Sedmosegmentni zaslon koristi se za prikaz rezultata kockica.
Arduino kontinuirano izvršava funkciju rand () i pohranio je svoju vrijednost u privremenu varijablu. Kada pritisnete tipku kocke, pohranjena vrijednost izračunava se i prikazuje na sedam segmenata odgovarajućom metodom (vidi programski dio članka).
Ovdje u ovom krugu kockica za prikaz brojeva kockica koristi se zajednički anodni sedmosegmentni zaslon koji je izravno povezan s arduino digitalnim brojevima pinova 6, 5, 4, 3, 2, 1, 0. A uobičajeni anodni klin od sedam segmenata je spojen otpornikom +5 volti 220 Ohm. Dvije tipke su također povezane, i to tipka za kockice i tipka za resetiranje koje su povezane na digitalni pin 14 (A0) i 15 (A1) s obzirom na masu.
Objašnjenje koda
Programski dio ovog projekta igra vrlo važnu ulogu za prikaz slučajnih brojeva digitalnih kockica na sedmosegmentnom zaslonu. Arduino ne sadrži knjižnicu za sedmosegmentni prikaz. pa smo stvorili cijeli kod bez upotrebe bilo koje knjižnice.
Prije svega odabiremo digitalni pin za sedmosegmentni zaslon.
int pin = {6,5,4,3,2,1,0};
Nakon nje stvaramo niz od 6 znamenki kockica, naime 1, 2, 3, 4, 5 i 6.
znamenka = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
Sada smo dali smjer da se arduino pin koristi kao izlaz.
void setup () {for (int i = 0; i <7; i ++) pinMode (pin, OUTPUT); pinMode (kocka, INPUT); pinMode (reset, INPUT); digitalWrite (kockice, VISOKO); digitalWrite (reset, HIGH);
Prema zadanim postavkama šaljemo kod za prikaz nule na sedmosegmentnom zaslonu.
int temp = 0x40; za (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pribadača, temp1); temp = temp >> 1; }
Sada pokrećemo funkciju rand () da bismo dobili slučajni broj.
int temp = rand ();
A kad pritisnemo program s gumbom za kockice, prvo mapiramo ovaj slučajni broj, a zatim šaljemo broj na sedmosegmentni prikaz pomoću bitova operatora.
if (digitalRead (dice) == 0) {int k = temp% 6; temp = znamenka; čekati(); za (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pribadača, temp1); temp = temp >> 1; } kašnjenje (200); }
Isto za gumb za resetiranje.
U ovom programu šaljemo po jedan bit. Ovdje primjenjujemo for petlju koja se izvodi 7 puta za slanje podataka u svaki segment jedan po jedan.
