|
Autore |
Messaggio |
opzioni |
daniele1979
postato il: 29.12.2019, alle ore 22:02 |
eseguire comando solo una volta
buonasera a tutti, chiedo un aiuto per un comando con arduino.
io devo eccitare un rele' ogni volta che entro in un case...
case X:
{
// mio codice
}
digitalWrire high
delay
digitalwrite low
break;
come posso fare?
grazie mille!
|
|
daniele1979
postato il: 29.12.2019, alle ore 22:03 |
solo una volta, se esco e rientro effettua nuovamente il eccita e diseccita |
|
gironico
postato il: 30.12.2019, alle ore 11:19 |
è un errore di sintassi quello che hai fatto.
per prima cosa, ti consiglio di dichiarare la tua uscita nel void setup
esempio pin 13, almeno cosi lo visualizzi nel led a bordo
void setup {
pinMode(13, OUTPUT);
digitalWrite(13,LOW);
}
nel tuo case,
digitalWrite(13,HIGH);// l'uscita 13 va a livello logico alto(led acceso)
delay(1000); // pausa di 1 secondo
digitalWrite(13,LOW);//l'uscita 13 va alivello logico basso (led Spento)
La vita è troppo breve per bere vini mediocri |
|
caccamo2
postato il: 30.12.2019, alle ore 11:51 |
daniele1979: eseguire comando solo una volta
daniele1979: io devo eccitare un rele' ogni volta che entro in un case...
chiarissimo!
... |
|
daniele1979
postato il: 30.12.2019, alle ore 12:04 |
quello era chiaro, era per fare capire il case,pero scrivendolo cosi, il ciclo si ripete |
|
caccamo2
postato il: 30.12.2019, alle ore 12:53 |
void setup
prima_volta=1
void main
case X:
if prima_volta=1 ...tuo codice
prima_volta=0
break
... |
|
gironico
postato il: 30.12.2019, alle ore 17:04 |
con informazioni a morsi e bocconi non si hanno risposte precise.
Se il ciclo si ripete, occorre vedere cosa stà succedendo al programma, non da escludere che una volta che uscito dal case, rientri al giro successivo perchè si è verificata ancora la condizione....
Se questo è il normale ciclo del programma, allora si usa una variabile di comodo che si icrementa quando il tuo rele cummuta) con una condizione dentro il ciclo case come ti ha suggerito caccamo2
La vita è troppo breve per bere vini mediocri |
|
picmicro675
postato il: 31.12.2019, alle ore 11:21 |
switch (X) {
case 1: {
++X;
digitalWrite(RELAY, HIGH);
break, // entra solo una volta fino a che non e' zero
}
case 2: {
}
case 3: {
}
case 4: {
}
case 5: {
}
case default: {
digitalWrite(RELAY, LOW); // Se si vuole che rimanga basso
}
// fa tutto il resto non incluso negli altri case
Anno nuovo, forum nuovo.
Mi sa che lascio. |
|
daniele1979
postato il: 04.01.2020, alle ore 00:18 |
ok grazie |
|
|