Étape 2: Télécharger le croquis sur Arduino
Téléchargez le croquis suivant sur Arduino. Il devrait montrer un coeur sur votre matrice de LED. Le retard peut être contrôlé à l’aide du potentiomètre. En enlevant le retard le cœur devient visible dans l’ensemble, tout en augmentant le délai montre ce qui se passe réellement dans l’esquisse. L’image affichée peut être facilement adapté à l’eau, en changeant les valeurs dans le tableau 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>