Paso 2: Cargar el sketch en Arduino
Cargar el siguiente sketch en Arduino. Debería mostrar un corazón en su matriz de LED. El retraso puede controlarse utilizando el medidor. Quitando el retraso el corazón se hace visible en su conjunto, mientras que aumenta el retraso muestra lo que realmente está sucediendo en el bosquejo. La imagen que se muestra puede ser adaptada fácilmente, cambiando los valores de la matriz ledStates.
<p>int clockPin = 10;<br>int latchPin = 9; int dataPin = 8;</p><p>int clockPinx = 13; int latchPinx = 12; int dataPinx = 11;</p><p>int potPin = 2; int val = 0;</p><p>byte ledStates[8] = {B00000000, B00011000, B00111100, B01111110, B11111111, B11111111, B11111111, B01100110}; byte GroundLEDs [8] = {B01111111, B10111111, B11011111, B11101111, B11110111, B11111011, B11111101, B11111110};</p><p>void setup() { pinMode(latchPinx, OUTPUT); pinMode(clockPinx, OUTPUT); pinMode(dataPinx, OUTPUT); pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT);</p><p> digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, B11111111); digitalWrite(latchPin, HIGH); Serial.begin(9600); }</p><p>void loop() { for(int i=0;i<8;i++){ SetStates(ledStates[i]); GroundCorrectLED (GroundLEDs[i]); val = analogRead(potPin); int del = map (val, 0, 1023, 0, 100); Serial.print(val); Serial.print(del);</p><p>delay(del);</p><p> digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, B11111111); digitalWrite(latchPin, HIGH); delay(del); }}</p><p>void GroundCorrectLED (byte states){ digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, states); digitalWrite(latchPin, HIGH); }</p><p>void SetStates (byte statesx){ digitalWrite(latchPinx, LOW); shiftOut(dataPinx, clockPinx, LSBFIRST, statesx); digitalWrite(latchPinx, HIGH); }</p>