Paso 3: El código, no es demasiado difícil y no demasiado largo!
PIN conectado a ST_CP de 74HC595
int latchPin = 13;
PIN conectado a SH_CP de 74HC595
clockPin INT = 12;
PIN conectado a DS de 74HC595
int dataPin = 11;
intervalo de int = 2000;
ledarray Byte [8] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000}; pointsarray Byte [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;
pinCount int = 8;
int puntos = 0;
void setup() {}
sets clavijas de salida para que puedas controlar el cambio de registro
pinMode (latchPin, salida);
pinMode (clockPin, salida);
pinMode (dataPin, salida);
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() {para (int i = 0; i < 17; i ++) {int prevMillis = millis(); lednr = random(8);
Serial.Print(lednr);
tomar la latchPin baja por lo que los LEDs no cambian mientras que usted está enviando en bits:
digitalWrite (latchPin, bajo);
cambio hacia fuera los pedacitos:
shiftOut (dataPin, clockPin, MSBFIRST, ledarray[lednr]);
Tome la clavija de enganche de alta para que los LEDs se encienden:
digitalWrite (latchPin, HIGH);
hacer una pausa antes del siguiente valor:
Delay(50); while((Millis() - prevMillis) < intervalo) {si (digitalRead(lednr+2) == LOW) {puntos ++; tone(10,440,300); delay(30); break;}} //while Serial.println (puntos); } }