Vi är alla bekanta med tärningar och spelade ofta LUDO eller SANP SIDI (Snake & Ladders) genom att använda tärningar. Dice är en solid låda av squire som innehåller 6 olika siffror på alla sidor. Vi kastar tärningar på en yta för att få ett slumpmässigt antal när vi spelar spelen. I det här projektet har vi försökt att replikera det med en digital tärning med hjälp av arduino uno-kort. I stället för att kasta tärningarna måste vi här trycka på en knapp för att få ett slumpmässigt tal mellan 0 och 6.
Nödvändiga komponenter
- Arduino UNO
- Sju segment display (Common Anode)
- Trycka på knappar
- Anslutande ledningar
- Brödbräda
- 1 k motstånd
- Strömförsörjning
Kretsschema och förklaring
Som visas i ovanstående digitala tärningskrets används arduino för att styra hela processen. Två tryckknappar används i kretsen - en för att starta tärningen och en annan för att återställa tärningarna. Arduino läser dessa två knappar och utför operationen. En display med sju segment används för att visa tärningsresultatet.
Arduino kör kontinuerligt rand () -funktionen och lagrade värdet i en tillfällig variabel. När tärningsknappen trycks ned sparas det lagrade värdet och visas på sju segment med lämplig metod (se programmeringsdel i artikeln).
Här i denna tärningskrets används en gemensam anod sju segment display för att visa tärningsnummer, som är direkt ansluten till arduino digitala stift nummer 6, 5, 4, 3, 2, 1, 0. Och gemensam anodstift med sju segment är ansluten med +5 volt 220 Ohm motstånd. Två tryckknappar är också anslutna, nämligen tärningsknappen och återställningsknappen som är anslutna till den digitala stiftet 14 (A0) och 15 (A1) med avseende på marken.
Kodförklaring
Programmeringsdelen av detta projekt spelar en mycket viktig roll för att visa slumpmässigt digitalt tärningsnummer på sju segmentvisning. Arduino innehåller inget bibliotek för visning av sju segment. så vi skapade hela koden utan att använda något bibliotek.
Först och främst väljer vi digital pin för sju segment display.
int-stift = {6,5,4,3,2,1,0};
Efter det skapar vi en matris med 6 siffror med tärningar, nämligen 1, 2, 3, 4, 5 och 6.
röd siffra = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
Nu gav vi riktning att använda arduino-stift som utdata.
ogiltig installation () {för (int i = 0; i <7; i ++) pinMode (pin, OUTPUT); pinMode (tärning, INPUT); pinMode (resett, INPUT); digitalWrite (tärning, HÖG); digitalWrite (resett, HIGH);
Vi skickar en kod för att visa noll på sju segmentvisning som standard.
int temp = 0x40; för (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (stift, temp1); temp = temp >> 1; }
Nu kör vi rand () -funktionen för att få ett slumpmässigt tal.
int temp = rand ();
Och när vi trycker på tärningsknappsprogrammet först kartläggs detta slumpmässiga nummer och skickar sedan nummer till sju segmentvisning med hjälp av bitvis operatör.
om (digitalRead (tärningar) == 0) {int k = temp% 6; temp = siffra; vänta(); för (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (stift, temp1); temp = temp >> 1; } fördröjning (200); }
Och samma för återställningsknappen.
I det här programmet skickar vi en bit i taget. Här använder vi en for loop som körs 7 gånger för att skicka data till varje segment en efter en.