Go Down

Topic: Controllo 2 sequenze di LED tramite 2 potenziometri (Read 128 times) previous topic - next topic

DrusTM

Ciao a tutti.
Sto cercando di realizzare una barra formata da 11 LED in cui il LED centrale rimane fisso acceso e gli altri led (5 + 5) si accendono in sequenza dall'interno verso l'esterno.
Impostando un tempo di ritardo fisso tra un LED e l'altro non ho problemi.
Non ho problemi neanche a controllare il tempo di ritardo tra un LED e l'altro tramite un solo potenziometro.
Il mio problema sorge quando inerisco il secondo potenziometro. La mia intenzione è quella di controllare tramite un potenziometro la velocità dei 5 LED di sinistra e tramite un secondo potenziometro  la velocità dei 5 LED di destra.
Code: [Select]
byte SEQ1[] = {3, 4, 5, 6, 7};
byte SEQ2[] = {12, 11, 10, 9, 8};
int ledDelay1;
int ledDelay2;
int potPin1 = 1;
int potPin2 = 2;
int direction = 1;
int LED1 = 0;
int LED2 = 0;
unsigned long changeTime;
void setup() {
  for (int x = 0; x < 5; x++) {
    pinMode(SEQ1[x], OUTPUT);
    pinMode(SEQ2[x], OUTPUT);
    pinMode(potPin1, INPUT);
    pinMode(potPin2, INPUT);
  }
  changeTime = millis();
}

/////////////////////////////////////////////

void loop() {
  ledDelay1 = analogRead(potPin1);
  ledDelay2 = analogRead(potPin2);
  if ((millis() - changeTime) > ledDelay1) {
    changeLED1();
    if (LED1 == 5) {
      direction = -1;
      LED1 = LED1 - 1;
    }
    if (LED1 == 0) {
      direction = 1;
    }
  }
  if ((millis() - changeTime) > ledDelay2) {
    changeLED2();
    if (LED2 == 5) {
      direction = -1;
      LED2 = LED2 - 1;
    }
    if (LED2 == 0) {
      direction = 1;
    }
  }
  changeTime = millis();
}

///////////////////////////////////////////////
void changeLED1() {
  for (int x = 0; x < 5; x++) {
    digitalWrite(SEQ1[x], LOW);
  }
  digitalWrite(SEQ1[LED1], HIGH);
  LED1 += direction;
}

//////////////////////////////////////////////
void changeLED2() {
  for (int x = 0; x < 5; x++) {
    digitalWrite(SEQ2[x], LOW);
  }
  digitalWrite(SEQ2[LED2], HIGH);
  LED2 += direction;
}

Vi chiedo quindi gentilmente di aiutarmi a capire dove ho sbagliato nella stesura del listato.
Grazie mille.

mark_govi

Anche io ho affrontato questo problemi di controllare 2 sequenze di led mediante l'utilizzo di 2 potenziometri lineari, ma dopo numerosi tentativi e confrontandomi con altre persone abbiamo concluso che non è possibile realizzare il seguente sketch.

nid69ita

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- qui le pinout delle varie schede by xxxPighi: Pinout
- qui una serie di link generali utili: Link Utili
my name is IGOR, not AIGOR

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy