[Risolto] Trovare una soluzione adatta.
buon anno gente,
vorrei provare fare una sorta di tabellone illuminato. il quale dovrei esser in grado di aggiungere o togliere un led.
per sapere come sta procedendo ho questa funzione, ma non è quello che mi aspetterei
il ragionamento è che se metto un valore ad una light[n] alla uscita del for avrei un count_led ridotto di uno che è quella che ho attivato. in seguito si dovrebbe allocare una nuova posizione.
non funziona!, continua rimanere con il count_led al massimo. ovvero posso attivare solo light[0] e non passa quella successiva.
cosa sto sbagliando ?
vorrei provare fare una sorta di tabellone illuminato. il quale dovrei esser in grado di aggiungere o togliere un led.
per sapere come sta procedendo ho questa funzione, ma non è quello che mi aspetterei
code: [select]
#define max_leds 48
int light[max_leds];
void countdown() {
for (y = 0; y < max_leds; y++) {
if (light[y]) --count_led;
else if (count_led < max_leds) ++count_led;
}
if (active) {
if (!count_led) {
y = random(0, max_leds);
}
else {
y = max_leds - count_led;
active = 0;
}
light[y] = timeout;
}
void loop() {
if (digitalread(inpin) == 0) active = 1;
countdown();
}
}
il ragionamento è che se metto un valore ad una light[n] alla uscita del for avrei un count_led ridotto di uno che è quella che ho attivato. in seguito si dovrebbe allocare una nuova posizione.
non funziona!, continua rimanere con il count_led al massimo. ovvero posso attivare solo light[0] e non passa quella successiva.
cosa sto sbagliando ?
ho risolto, ma con un concetto più semplice.
nel ciclo di for si esce il ciclo quando si incontra la prima occorrenza libera.
nel ciclo di for si esce il ciclo quando si incontra la prima occorrenza libera.
code: [select]
for (y=0; y< max_leds; y++) {
if (!light[y]) break;
}
if (active) light[y] = high;
Arduino Forum > International > Italiano > Software (Moderator: leo72) > [Risolto] Trovare una soluzione adatta.
arduino
Comments
Post a Comment