Elektronisk tärning med Attiny84 (8 / 11 steg)
Steg 8: Programmet
Kopiera följande program till Arduino IDE:
/*****************************************************
* Program-namn: Dice.ino
*
* Tärna stift: Grön röd
* 2 1 0 5 4 3
* 7 6
* 0 1 2 3 4 5
*
* Knapp switch: stift 8
*****************************************************
/*****************************************************
* Installation kod köras vid start
*****************************************************/
void setup()
{
randomSeed(analogRead(0));
för (int jag = 0; jag < 8; i ++) pinMode (i, matas);
pinMode 8, INPUT_PULLUP.
}
/*****************************************************
* Loop körs i en kontinuerlig slinga när installationen är klar
*****************************************************/
void loop()
{
int rnd; Innehar slumptal
int i, j. Index för för loopar
While(digitalRead(8) == hög); Vänta tills du trycker på knappen.
While(digitalRead(8) == låg); Vänta tills knappen utgåvan.
randomSeed(millis()); Blinka på randon medan tärningskast.
för (jag = 0; jag < 20; i ++)
{
för (j = 0; j < 8; j ++)
{
RND = random (1, 3);
IF(RND == 1) digitalWrite (j, hög). Visa slumpmässig sekvens
}
Delay(100);
för (j = 0; j < 8; j ++) digitalWrite (j, låg). Tydlig slumpmässig sekvens
}
randomSeed(millis());
RND=random(1,7); Först dör (grön)
Switch(RND)
{
fall 1:
digitalWrite (7, hög).
bryta;
fall 2:
digitalWrite (2, hög).
bryta;
fall 3:
digitalWrite (0, hög);
digitalWrite (7, hög).
bryta;
fall 4:
digitalWrite (0, hög);
digitalWrite (2, hög).
bryta;
fall 5:
digitalWrite (0, hög);
digitalWrite (2, hög).
digitalWrite (7, hög).
bryta;
fall 6:
digitalWrite (0, hög);
digitalWrite (1, hög);
digitalWrite (2, hög).
bryta;
}
RND=random(1,7); Andra dö (röd)
Switch(RND)
{
fall 1:
digitalWrite (6, hög).
bryta;
fall 2:
digitalWrite 5, hög,
bryta;
fall 3:
digitalWrite (3, hög).
digitalWrite (6, hög).
bryta;
fall 4:
digitalWrite (3, hög).
digitalWrite 5, hög,
bryta;
fall 5:
digitalWrite (3, hög).
digitalWrite 5, hög,
digitalWrite (6, hög).
bryta;
fall 6:
digitalWrite (3, hög).
digitalWrite (4, hög).
digitalWrite 5, hög,
bryta;
}
}
I nästa steg visas hur ladda upp programmet till Attin84 chip.
Följ steg nio för att använda en Arduino som programmerare eller steg tio om du använder USBtinyISP programmeraren.