Stap 3: De code, niet te hard en niet te lang!
Pin verbonden met ST_CP van 74HC595
int latchPin = 13;
Pin verbonden met SH_CP van 74HC595
int clockPin = 12;
Pin verbonden met DS van 74HC595
int dataPin = 11;
int interval = 2000;
byte ledarray [8] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000}; byte pointsarray [8] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000};
int knapp1 = 2;
int knapp2 = 3;
int knapp3 = 4;
int knapp4 = 5;
int knapp5 = 6;
int knapp6 = 7;
int knapp7 = 8;
int knapp8 = 9;
int lednr;
int pinCount = 8;
int punten = 0;
VOID Setup {}
set pennen uitgang zodat u de verschuiving bepalen kunt registreren
pinMode (latchPin, OUTPUT);
pinMode (clockPin, OUTPUT);
pinMode (dataPin, OUTPUT);
pinMode(2,INPUT_PULLUP);
pinMode(3,INPUT_PULLUP);
pinMode(4,INPUT_PULLUP);
pinMode(5,INPUT_PULLUP);
pinMode(6,INPUT_PULLUP);
pinMode(7,INPUT_PULLUP);
pinMode(8,INPUT_PULLUP);
pinMode(9,INPUT_PULLUP);
Serial.begin(9600);
void loop {voor (int i = 0; ik < 17; i ++) {int prevMillis = millis(); lednr = random(8);
Serial.Print(lednr);
Neem de latchPin laag zodat de LEDs niet wijzigen terwijl u in bits verzendt:
digitalWrite (latchPin, laag);
verschuiving van de bits:
shiftOut (dataPin, clockPin, MSBFIRST, ledarray[lednr]);
Neem de hendel pin hoog zodat de LEDs zullen oplichten:
digitalWrite (latchPin, hoge);
onderbreken voordat de volgende waarde:
delay(50); while((Millis() - prevMillis) < interval) {als (digitalRead(lednr+2) == LOW) {punten ++; tone(10,440,300); delay(30); break;}} //while Serial.println (punten); } }