Problema RESET arduino. Arduino UNO + Relè + Python

Salve a tutti, ho un problema hardware/software con l'arduino, vi spiego la situazione:

al momento, un raspberry pilota due relè, di cui uno a sua volta pilota la 220V in ingresso ad un alimentatore, mentre l'altro pilota una semplice luce a 12V. Ovviamente i relè sono isolati in un loro case di plastica e sono all'interno di una scatola di derivazione. Ora ho bisogno di rimpiazzarlo con un pc che ho configurato e in cui ho scritto un programma in python che, attraverso la seriale, manda i comandi all'arduino e pilota i relè indipendentemente.

Il problema è questo (per comodità descriverò direttamente i valori che vengono scritti sui pin):

Quando io avvio lo script python, esso effettua una connessione sulla seriale, invia il comando, l'arduino esegue a seconda del comando un HIGH o LOW sul pin predisposto e chiude la seriale. 1) Mettiamo quindi che mando il comando per accendere l'alimentatore. Per la logica inversa con cui lavorano i relè dovrò inviare un LOW.

--> 2) Mettiamo ora che lo voglio spegnere, invierò il comando HIGH: L'alimentatore si spegne per circa 1 secondo, poi si accende e si spegne.

Quello che invece voglio nella fase 2 è semplicemente spegnere. Come posso risolvere questo problema? E' inputabile al reset dell'arduino, quando avviene la connessione seriale? Spero di aver descritto in modo chiaro la situazione. Grazie in anticipo.

Potrei risolvere mettendo digitalWrite(rele1, HIGH) prima dell'uso di pinMode(rele1, OUTPUT). Funziona, ma è la via più corretta?

minimanimo:
… E’ inputabile al reset dell’arduino, quando avviene la connessione seriale? …

SI, quando apri la seriale un apposito circuito sulla scheda effettua il “reset” …
… è il meccanismo utilizzato dell’IDE per permettere la programmazione tramite bootloader … l’IDE apre la seriale, avviene il reset, parte il bootloader e carica il programma.

Dato che il tutto è in HW, comunque, anche se non in relazione all’IDE, se si apre la seriale … la cosa avviene.

Credo che si possa evitare con l’aggiunta di un condensatore che eviti l’impulso sul reset …
… se fai una ricerca con Google trovi vari esempi.

Se lo fai, ricorda di implementare la cosa in modo provvisorio, così da poterla togliere quando devi programmare Arduino.

Guglielmo

gpb01: Credo che si possa evitare con l'aggiunta di un condensatore che eviti l'impulso sul reset ... ... se fai una ricerca con Google trovi vari esempi.

Ciao Guglielmo, il fatto è che il mio programma python sfrutta la comunicazione seriale per inviare dati all'arduino. Se metto il condensatore, l'auto reset viene disabilitato e di conseguenza non riesco a stabilire la connessione.

ciao

minimanimo: Ciao Guglielmo, ..Se metto il condensatore, l'auto reset viene disabilitato e di conseguenza non riesco a stabilire la connessione.

Che io sappia l'autoreset non serve a "inizializzare" una comunicazione seriale ma a far partire il bootloader. Non dovresti avere nessun problema a eliminarlo(l'autoreset).

ciao pippo72