Arduino: LED in sequenza

Ciao a tutti!

In questo articolo vi mostrerò come realizzare un progetto con Arduino che ci permette di far accendere dei LED in sequenza seguendo un ordine.

Per reallizzarlo abbiamo bisogno di:

– Arduino UNO

– Breadboard (basetta)

– 10 LED 5mm

– Un resistore da 220Ohm

– Fili di collegamento

Bene seguendo la  seguente foto montiamo il circuito:

WP_20150127_005

“”Ogni PIN digitale dal 13 fino al 4 andrà collegato ad un LED””

WP_20150127_009

Adesso carichiamo lo sketch seguente sulla nostra scheda:

[c]

byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
int ledDelay;
int G = 10;
int s = 10;
int h2;
int direction = 1;
int currentLED = 1;
int h = 9;
float reboundIndex = 1;
float k = 0.9;
unsigned long changeTime;
void setup() {
for (int x = 0; x < 10; x++) {
pinMode(ledPin[x], OUTPUT);
}
changeTime = millis();
}
void loop() {
if ((millis() – changeTime) > ledDelay) {
changeLED();
changeTime = millis();
}
}
void changeLED() {
for (int x = 0; x < 10; x++) {
digitalWrite(ledPin[x], LOW);
}
digitalWrite(ledPin[currentLED], HIGH);
if (currentLED == h && h != 0) {
direction = -1;
}
if (currentLED == 0 && h != 0) {
direction = 1, h = h * k * k, reboundIndex = k * reboundIndex;
}
if (currentLED == 0 && h == 0) {
h = 9, reboundIndex = 1, delay(1000);
}
h2 = (10 – currentLED);
ledDelay = s * 50 / (sqrt(2 * G * h2) * reboundIndex);
currentLED += direction;
}

[/c]

[embedplusvideo height=”400″ width=”600″ editlink=”http://bit.ly/1ysb0Uf” standard=”http://www.youtube.com/v/9A5ai0dxFrA?fs=1″ vars=”ytid=9A5ai0dxFrA&width=600&height=400&start=&stop=&rs=w&hd=0&autoplay=0&react=1&chapters=&notes=” id=”ep3095″ /]