Fabri82 Inserito: 30 dicembre 2021 Segnala Inserito: 30 dicembre 2021 Ciao a tutti e scusate se "rompo" con i miei dilemmi 🤯😁. Mi sto avvicinando al mondo Arduino e al linguaggio C++. Qualcosina riesco a fare ma limitandomi a leggere valori in ingresso e facendo piccole elaborazioni di tali dati. Oltre ad un controllo sulla temperatura della mia caldaia (mio post precedente) sto cercando di implementare un'altro progettino che riguarda l'irrigazione del mio orto. In poche parole ho tre pulsanti che comandano 3 uscite digitali ognuna delle quali mi abilita un relè per un determinato tempo. Quindi: Pulsante 1 --> Attiva Relè 1 per 5 minuti Pulsante 2 --> Attiva Relè 2 per 10 minuti Pulsante 3 --> Attiva Relè 3 per 4 minuti Queste operazioni banali le ho scritte utilizzando un semplice delay per ciascuna uscita/relè. Tutto bene. Vorrei utilizzare un quarto pulsante che mi faccia la serie di tutti e tre gli stati. Ovvero che una volta premuto mi faccia partire il Relè1 per 5 min, poi il Relè 2 per 10min per concludere poi con il Relè 3 per 4 minuti. Vorrei in pratica che venga eseguita la sequenza delle tre uscite (termina la prima si passa alla seconda e così via). Con i delay non risulta difficile ma mi sembra una soluzione che spreca righe di programma. Pensavo ad un ciclo FOR ma non riesco a elaborarlo in termini di istruzioni... Sarebbe perfetto, forse, definire i tre tempi (T1, T2 e T3) in funzioni distinte ed eseguirle in serie quando premo il Pulsante 4. Riuscireste a indicarmi un mini Sketch? Perdonate l'ignoranza....so che in fin dei conti è una scemata ma sinceramente mi sono incartato! Grazie sin d'ora.
Livio Orsini Inserita: 31 dicembre 2021 Segnala Inserita: 31 dicembre 2021 8 ore fa, Fabri82 ha scritto: le ho scritte utilizzando un semplice delay per ciascuna uscita/relè. Non bene. L'istruzione delay è bloccante, va usata con estrema parsimonia, insomma ...quasi mai. Meglio usare i timer o l'istruzione millis(), che ritorna un long contenente il tempo, in millisecondi, dall'avvio del programma. 9 ore fa, Fabri82 ha scritto: Riuscireste a indicarmi un mini Sketch? Ti do un'idea. Quando riconosci il quarto pulsante premuto alzi un flag, ovvero metti HIGH una variabile booleana. Avrai anche assegnato altri 3 flags ai tre relè; ad esempio: flg_rl1, flg_rl2, flg_rl3 Con questo flag alto tesi lo stato dei 3 flag dei 3 relè se sono tutti LOW alzi flg_rl1 e fai partire il tempo del relè 1 ed alzi l'uscita corrispondente. A tempo scaduto, abbassi uscita e flag, alzi flag e uscita del relè 2 poi, a tempo esaurito, abbassi il due e alzi il 3. Al termine del tempo per il 3 abbassi uscita del relè, flag ed il flag legato al pulsante. Non ti scrivo le istruzioni perchè altrimenti non c'è didattica. Se vuoi comincia a scrivere un programma e, se hai dei dubbi o delle difficoltà, vediamo di risolverle assieme.
Fabri82 Inserita: 31 dicembre 2021 Autore Segnala Inserita: 31 dicembre 2021 2 ore fa, Livio Orsini ha scritto: Non ti scrivo le istruzioni perchè altrimenti non c'è didattica. Ciao Livio e grazie mille per le dritte. Vedo di provare a metterle in pratica 👍. In effetti hai ragione...meglio arrivarci da solo altrimenti rischio non imparare mai 😅. Ti aggiorno sui miei sviluppi!!
Livio Orsini Inserita: 31 dicembre 2021 Segnala Inserita: 31 dicembre 2021 Ci rileggiamo nel 2022 e che sia almeno un poco meglio del 2021.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora