Sto cercando di creare un pulsante che alla pressione controlla che su un determinato pin analogico ci sia un valore, se questo valore è minore di un determinato valore specifico, apri il relè 1, se è minore, apri il relè 2 se è uguale non fare nulla. E fino a qui ok, ma deve tenere aperto il relè fino a quando tale valore dal pin analogico sia esattamente quel valore, quindi deve continuare a controllare tale valore e aprire o meno tali relè fino a quando non ho un valore esatto.
si può fare questo?
scusate il casino di parole... se volete provo a semplificare?
si può fare...con la pressione di un pulsante metti a true una variabile ...controlli lo stato di questa variabile con un if()...che se true appunto esegue quanto al suo interno...oppure meglio ne crei una per ogni pin che vuoi controllare con i relativi if().
si può fare...con la pressione di un pulsante metti a true una variabile ...controlli lo stato di questa variabile con un if()...che se true appunto esegue quanto al suo interno...oppure meglio ne crei una per ogni pin che vuoi controllare con i relativi if().
così non ho un relè che continua a lampeggiare perchè deve verificare lo stato del true?
ho capito cosa avevo combinato... creavo delle ridondanze per via dei tanti if che avevo creato... poi ci ho pensato bene e ho fatto un unico if e tanti else if, fino all'unico else. non so se mi son spiegato....
chi può darmi una mano? praticamente, cerco di spiegarmi:
se clicco un pulsante, attivo una funzione che controlla un pin valore, lo compara e cerca di stabilizzarlo aprendo o chiudendo dei relè e se è uguale al valore stabilito continua al successivo pin.... e così va avanti fin quando non lo disattivo o premo un altro pulsante.
ora mi funziona benino... il problema è quando premo un pulsante che tenuto premuto mi attiva dei relè specifici... ma se in quel momento ci stava un relè che non volevo, lui rimane aperto fino a quando non rilascio.... e poi premendo ancora lo stesso pulsante non si accende più come è giusto che sia. riesco a escludere quel relè che non volevo?
Non so se ho capito bene:
Lei ha n pulsanti, n porte analogiche e 2n relè. Lei vorrebbe che se tengo premuto un pulsante Arduino controlli la rispettiva porta analogica e, a seconda della relazione tra il valore letto ed un valore di riferimento, accenda o spenga dei relè.
Non ho capito cosa succede se il valore letto é uguale al valore di riferimento
Io_me:
Non so se ho capito bene:
Lei ha n pulsanti, n porte analogiche e 2n relè. Lei vorrebbe che se tengo premuto un pulsante Arduino controlli la rispettiva porta analogica e, a seconda della relazione tra il valore letto ed un valore di riferimento, accenda o spenga dei relè.
Non ho capito cosa succede se il valore letto é uguale al valore di riferimento
ho nr. 5 pulsanti su nr. 1 porta analogica (in sequenza con resistenze), nr. 5 porte analogiche dove ho dei sensori, e nr. 8 relè su una bord che usa delle porte digitali.
ora premendo un pulsante io setto un programma che continua a verificare ogni singola porta analogica e se ha un valore maggiore apre un relè se ha un valore minore apre un altro relè, quando il valore è quello stabilito, va avanti sull'altra porta ecc. ecc ecc...
questo programma va in loop fino a quando non premo un altro pulsante... ma succede che premendo un determinato pulsante che invece di creare un programma come prima... semplicemente a mia scelta apre 4 relè specifici... se in quel momento avevo un relè acceso che non era di quei 4 che volevo... ecco in quel momento mi si attivano i miei 4 e rimane acceso anche questo quinto... fino a quando non rilascio il mio pulsante.
spero si capisca
comunque non riesco a postare il codice perchè dice che è troppo lungo... come faccio a postarvelo?
ci son riuscito... era così banale... dovevo fare ho creato un boolean che disattivava... fare due funzioni dello stesso tasto, uno che alla pressione disattivava e uno che alla pressione dello stesso non considerava il valore e ne lo alterava.
Per risolvere il problema del relè acceso indesiderato si potrebbe, prima dell'avvio del programma, disattivare tutti i relè, così da essere sicuri che non ci sia quello attivo
Per il problema del codice si può allegare, tra le opzioni di modifica dei messaggi c'é allega (la graffetta).