ciao a tutti premetto sono alle prime armi...quello che volevo fare e' scrivere un programma per prendere confidenza con la programmazione di arduino... vi faccio vedere
const int armato = 2; // in armato
const int telon = 4; // out tel.
// variables will change:
int armstate = 0; // legge il pin 2,ora non e' niente
void setup() {
pinMode(telon, OUTPUT);
pinMode(armato, INPUT);
}
void loop(){
// legge valore ingresso 2
armstate = digitalRead(armato);
for (int i = 0; i <= 1; i ++) {
// controlla se armstate e' alto
if (armstate == LOW) {
digitalWrite(telon, HIGH);
delay(1000);
digitalWrite(telon, LOW);
delay(1000);
}
else {
digitalWrite(telon, HIGH);
}}
}
quello che volevo fare e' ripetere una sola volta il ciclo che accende e spenge un rele' (chiamato telon)ho provato con il comando for ma niente lo fa all'infinito...sapete aiutarmi?Un grazie achi lo fa...
Se vuoi che il ramo dove telon va alto e torna basso dopo 1 secondo venga eseguito una sola volta, questo è un po' brutale, ma di sicuro effetto.
Una volta eseguito, qualunque valore prenda armstate, sicuramente non entri più, finchè non riporti la variabile == 0.
int ciclo=0
void loop(){
// legge valore ingresso 2
armstate = digitalRead(armato);
// controlla se armstate e' alto
if (armstate == LOW && ciclo == 0) {
ciclo = 1;
digitalWrite(telon, HIGH);
delay(1000);
digitalWrite(telon, LOW);
}
else {
digitalWrite(telon, HIGH);
}
}
ok ti ringrazio ho visto il fatto e' che se non faccio cosi' non c'e' nessunoi che mi aiuta....ho provato a riscrivere il codice come scrivi te
const int armato = 2; // in armato
const int telon = 4; // out tel.
int ciclo=0
// variables will change:
int armstate = 0; // legge il pin 2,ora non e' niente
void setup() {
pinMode(telon, OUTPUT);
pinMode(armato, INPUT);
}
void loop(){
// legge valore ingresso 2
armstate = digitalRead(armato);
// controlla se armstate e' alto
if (armstate == LOW && ciclo==0) { ciclo=1;
digitalWrite(telon, HIGH);
delay(1000);
digitalWrite(telon, LOW);
}
else {
digitalWrite(telon, HIGH);
}}
ma mi da questo errore:
allarme.ino.ino.ino:6: error: expected ',' or ';' before 'int'
allarme.ino.ino.ino: In function 'void loop()':
allarme.ino.ino.ino:18: error: 'armstate' was not declared in this scope
ciao
Rinnovo l'invito a usate i tag "code" fatto da Brado.
Entrando nel dettaglio:
allarme.ino.ino.ino:6: error: expected ',' or ';' before 'int'
qui l'ide di arduino ti dice: porco cane, alla riga 6 del programma allarme.ino.ino.ino mi sarei aspettato una virgola ',' o un punto e virgola ';'. Se quardi manca un punto e virgola dopo
int ciclo=0
poi
allarme.ino.ino.ino: In function 'void loop()':
allarme.ino.ino.ino:18: error: 'armstate' was not declared in this scope
Porco cane, c'e un errore all'interno della funzione 'void loop()'; l'errore è che 'armstate' non è stato dichiarato. In questo caso la causa dell'errore è la stessa di prima: senza il punto e virgola di prima non è riuscito a fare
int armstate = 0; // legge il pin 2,ora non e' niente
Inoltre
il fatto e' che se non faccio cosi' non c'e' nessunoi che mi aiuta....
Non è vero. Stavolta ti ho aiutato, la prossima però farò finta di non vedere i tuoi post.
ciao
pippo72
edit: ti invito a presentarti e a leggere il regolamento
francesco2474:
se non faccio cosi' non c'e' nessunoi che mi aiuta...
Solo per questa risposta dovrei cancellarti il thread.
Inoltre, non solo non hai ascoltato il suggerimento di cambiare il titolo ma neanche quello di includere il codice con gli appositi tag. Ma almeno l'hai letto il regolamento?