Vi er alle kjent med terninger og spilte ofte LUDO eller SANP SIDI (Snake & Ladders) -spill ved å bruke terninger. Dice er en solid boks av squire-typen som inneholder 6 forskjellige tall på alle sidene. Vi kaster terninger på en overflate for å få et tilfeldig tall mens vi spiller spillene. I dette prosjektet har vi prøvd å replikere den med en digital terning ved hjelp av arduino uno board. I stedet for å kaste terningene, her må vi trykke på en knapp for å få et tilfeldig tall mellom 0 og 6.
Nødvendige komponenter
- Arduino UNO
- Syv segmentvisning (Common Anode)
- Trykke knapper
- Koble ledninger
- Brettbrett
- 1 k motstand
- Strømforsyning
Kretsdiagram og forklaring
Som vist i den ovennevnte digitale terningskretsen, brukes arduino til å kontrollere hele prosessen. To trykknapper brukes i kretsen - en for å starte terningen og en for å tilbakestille terningen. Arduino leser disse to knappene og utfører operasjonen. En sju segmentvisning brukes til å vise terningresultatet.
Arduino utfører kontinuerlig rand () -funksjon og lagrer verdien i en midlertidig variabel. Når terningsknappen trykkes blir den lagrede verdien beregnet og vist på syv segment ved hjelp av passende metode (se programmeringsdel av artikkelen).
Her i denne terningkretsen brukes en vanlig anode syv segment skjerm for å vise terning nummer, som er direkte koblet til arduino digitale pin tall 6, 5, 4, 3, 2, 1, 0. Og vanlig anode pin med syv segment er koblet til +5 volt 220 Ohm motstand. To trykknapper er også koblet til, nemlig terningsknapp og tilbakestillingsknapp som er koblet til digital pin 14 (A0) og 15 (A1) i forhold til bakken.
Kode Forklaring
Programmeringsdelen av dette prosjektet spiller en veldig viktig rolle for å vise tilfeldig digitalt terningnummer på syv segmentdisplay. Arduino inneholder ikke noe bibliotek for syv segmentvisning. så vi opprettet hel kode uten å bruke noe bibliotek.
Først og fremst velger vi digital pin for sju segmentvisning.
int pin = {6,5,4,3,2,1,0};
Etter det lager vi en matrise med 6 sifre med terninger, nemlig 1, 2, 3, 4, 5 og 6.
røyksifret = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
Nå ga vi veiledning om å bruke arduino-pin som utgang.
ugyldig oppsett () {for (int i = 0; i <7; i ++) pinMode (pin, OUTPUT); pinMode (terning, INNGANG); pinMode (resett, INPUT); digitalWrite (terning, HØY); digitalWrite (resett, HIGH);
Vi sender en kode for visning av null på sju segmentvisning som standard.
int temp = 0x40; for (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pin, temp1); temp = temp >> 1; }
Nå kjører vi rand () -funksjon for å få et tilfeldig tall.
int temp = rand ();
Og når vi trykker på terningsknappsprogrammet, kartlegger du først dette tilfeldige tallet og sender nummeret til syv segmentvisning ved hjelp av bitvis operatør.
hvis (digitalRead (terning) == 0) {int k = temp% 6; temp = siffer; vente(); for (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pin, temp1); temp = temp >> 1; } forsinkelse (200); }
Og det samme for reset-knappen.
I dette programmet sender vi enkeltbit om gangen. Her bruker vi en for loop som går 7 ganger for å sende data til hvert segment en etter en.