Vi kender alle terninger og spillede ofte LUDO eller SANP SIDI (Snake & Ladders) ved at bruge terninger. Terninger er en solid boks af squire-type, der indeholder 6 forskellige numre på alle sider. Vi kaster terninger på en overflade for at få et tilfældigt tal, mens vi spiller spillet. I dette projekt har vi forsøgt at replikere det med en digital terning ved hjælp af arduino uno board. I stedet for at kaste terningerne skal vi her trykke på en knap for at få et tilfældigt tal mellem 0 og 6.
Nødvendige komponenter
- Arduino UNO
- Syv segment display (Common Anode)
- Tryk på knapper
- Tilslutning af ledninger
- Brødbræt
- 1 k modstand
- Strømforsyning
Kredsløbsdiagram og forklaring
Som vist i ovenstående digitale terningskredsløb bruges arduino til at kontrollere hele processen. To trykknapper bruges i kredsløbet - en til at starte terningerne og en til at nulstille terningerne. Arduino læser disse to knapper og udfører operationen. Et display med syv segmenter bruges til at vise terningresultatet.
Arduino udfører løbende rand () -funktionen og gemte dens værdi i en midlertidig variabel. Når der trykkes på terningsknappen, beregnes den lagrede værdi og vises på syv segment ved hjælp af en passende metode (se programmering af artiklen).
Her i dette terningskredsløb bruges en fælles anode syv segment display til visning af terning numre, som er direkte forbundet til arduino digitale pin numre 6, 5, 4, 3, 2, 1, 0. Og fælles anode pin med syv segment er forbundet med +5 volt 220 Ohm modstand. To trykknapper er også forbundet, nemlig terningsknap og resetknap, som er forbundet til den digitale pin 14 (A0) og 15 (A1) i forhold til jorden.
Kode Forklaring
Programmeringsdelen af dette projekt spiller en meget vigtig rolle for at vise tilfældigt digitalt terningenummer på syv segmentvisning. Arduino indeholder ikke noget bibliotek til syv segmentvisning. så vi oprettede hele kode uden at bruge noget bibliotek.
Først og fremmest vælger vi digital pin til syv segmentvisning.
int pin = {6,5,4,3,2,1,0};
Efter det opretter vi en matrix med 6 cifre terninger, nemlig 1, 2, 3, 4, 5 og 6.
char ciffer = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
Nu gav vi retningen om at bruge arduino pin som output.
ugyldig opsætning () {for (int i = 0; i <7; i ++) pinMode (pin, OUTPUT); pinMode (terning, INPUT); pinMode (nulstil, INPUT); digitalWrite (terning, HIGH); digitalWrite (resett, HIGH);
Vi sender en kode til visning af nul på syv segmentvisning som standard.
int temp = 0x40; for (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pin, temp1); temp = temp >> 1; }
Nu kører vi rand () -funktionen for at få et tilfældigt tal.
int temp = rand ();
Og når vi trykker på terningsknappeprogrammet, kortlægges først dette tilfældige tal og sender nummeret til syv segmentvisning ved hjælp af bitvis operator.
hvis (digitalRead (terning) == 0) {int k = temp% 6; temp = ciffer; 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 program sender vi en enkelt bit ad gangen. Her anvender vi en for loop, der kører 7 tid til at sende data til hvert segment en efter en.