Nybörjare tutorial: kontrollera ledde matrisen med 2 595 SKIFT register och potmeter (2 / 2 steg)
Steg 2: Ladda upp skiss till Arduino
Ladda upp den följande skissen till Arduino. Den bör visa ett hjärta på din LED-matris. Fördröjningen kan styras med hjälp av potmeter. Genom att ta bort förseningen blir hjärtat synlig som helhet, medan öka fördröjningen visar vad som egentligen händer i skissen. Den bild som visas kan anpassas enkelt genom att ändra värdena i matrisen 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, produktionen);
pinMode (clockPinx, produktionen);
pinMode (dataPinx, produktionen);
pinMode (latchPin, produktionen);
pinMode (clockPin, produktionen);
pinMode(dataPin, OUTPUT); < /p >< p > digitalWrite (latchPin, låg);
shiftOut (dataPin, clockPin, LSBFIRST, B11111111);
digitalWrite (latchPin, hög);
Serial.BEGIN(9600);
} < /p >< p > void loop() {
för (int jag = 0; jag < 8; i ++) {
SetStates(ledStates[i]);
GroundCorrectLED (GroundLEDs[i]);
Val = analogRead(potPin);
int del = karta (val, 0, 1023, 0, 100);
Serial.Print(val);
Serial.Print(del); < /p >< p > delay(del); < /p >< p > digitalWrite (latchPin, låg);
shiftOut (dataPin, clockPin, LSBFIRST, B11111111);
digitalWrite (latchPin, hög);
Delay(del);
{}} < /p >< p > void GroundCorrectLED (byte staterna) {
digitalWrite (latchPin, låg);
shiftOut (dataPin, clockPin, LSBFIRST, stater);
digitalWrite (latchPin, hög);
} < /p >< p > void SetStates (byte statesx) {
digitalWrite (latchPinx, låg);
shiftOut (dataPinx, clockPinx, LSBFIRST, statesx);
digitalWrite (latchPinx, hög);
} < /p >