Proteggere ingresso da sbalzi di tensione

Ciao a tutti,
ho creato un progetto che tramite un interruttore esegue delle funzioni, alimentato a 220 > 5 volt.
Ho notato che quando sulla linea elettrica parte un carico eccessivo, tipo frigo o motore elettrico
l’ingresso al quale è collegato il pulsante lo vede basso, facendo partire il programma.
Come posso risolvere?
Grazie.

Pulsante? Ingresso? 220V?
Spiega meglio cosa hai collegato, come, e magari anche posta lo sketch, e vediamo.

Immagino intenda un trasformatore 220 / 5 ...

resistenza in serie, zener fra ingresso e massa, condensatore sempre in parallelo allo zener ... direi che e' il minimo indispensabile ... :wink:

trasformatore 220 > 5 volt, resistenza pull up interna sul pulsante che da l’impulso in ingresso.
anche in questo caso serve la resistenza e lo zener?

Scusami, sarò “de coccio” ma ancora non ho capito che c’entra il trasformatore con un pulsante e come il tutto comporti impulsi spuri…
Dimmi se ho capito bene: il trasformatore lo usi per alimentare Arduino, il quale a sua volta ha un ingresso digitale collegato ad un pulsante per attivare “qualcosa”, e quando ci sono assorbimenti anomali sulla stessa rete elettrica la tensione scende tanto che Arduino “vede” un impulso basso quindi attiva il “qualcosa” quando non dovrebbe. Esatto?
Ora, il trasformatore alimenta solo Arduino o anche qualche altro apparato? Cosa è collegato ad Arduino e come? Puoi fare uno schemino della cosa, così capisco meglio e magari possiamo darti consigli più precisi?

Esatto! L'alimentatore alimenta solo Arduino, quando c'è un assorbimento sulla rete il pin di ingresso viene letto basso facendo partire il programma.

>spanky81: ... se vuoi essere aiutato bisogna che dai TUTTI i dettagli:

  • Tipo di alimentatore con cui alimenti Arduino
  • Cosa è collegato ad Arduino
  • Lunghezza delle filature

... ecc. ecc. , più iinformazioni dai e più si può capire cosa ti succede.

Guglielmo

spanky81:
Esatto! L'alimentatore alimenta solo Arduino, quando c'è un assorbimento sulla rete il pin di ingresso viene letto basso facendo partire il programma.

A me suona più che altro da alimentatore scarso o già al limite con la corrente richiesta da Arduino e le altre eventuali periferiche che ci alimenti (insieme o tramite Arduino, ad esempio cosa comanda Arduino quando riceve l'ingresso LOW sul pulsante?).

Quindi scusa ma ripeto per l'ultima volta: FAI UNO SCHEMA dei collegamenti e metti anche la LISTA dei componenti che stai usando! Fino a che non ci scrivi qui queste cose, mi spiace ma rinuncio a risponderti.

Non ho modo di fare uno schema, spiego meglio.
Arduino è alimentato da un trasformatore 220 v 5 volt da 1 ampere tramite la porta usb.
al pin 3 e la massa è collegato un interruttore che da il segnale per far lampeggiare un led sul pin 7.
Tutto qui!
Credo che il problema è dovuto a un calo di tensione che fa leggere sul pin 3 un valore basso.

Mi viene un “dubbio”, se posti lo sketch vedo di “togliermelo”, intanto cerca pull_up e pull_down.
Ho fatto anche io un “pasticcio” simile, con l’aggravante che sarei pure perito elettronico, quindi “dovevo essere imparato”!

  1. Te l'ho già chiesto ... quanto è lunga la filatura fino al bottone ?

  2. nel software, hai messo qualche cosa per fare il "debouncing" ed eliminare i disturbi nell'ingresso del bottone ?

  3. Perché non metti una rete R/C sull'ingresso del bottone così da limitare i disturbi (e che ti risolve anche il problema del "debouncing") ?

Guglielmo

il filo è lungo 70 cm, nessun debouncing.
dovrei provare con una rete resistiva come hai indicato perchè il codice non posso modificarlo.
Mi spieghi come dovrei fare.
Grazie

"Quoto" Guglielmo, capita anche a quelli "navigati" di dimenticarsi che i pulsanti non sono ideali, neanche quelli presenti nelle board di sviluppo...

la resistenza interna di pull up non fa la stessa funzione?

NO, quella serve SOLO ed esclusivamente ad imporre un livello logico quando il bottone è "aperto" !!!

Guglielmo

ok! mi potresti dire come fare una rete resistiva, serve anche un condensatore?

Quelle nell’allegato sono reti adatte per il debouncing …
… se i problemi persistono, magari puoi provare ad aumentare un po’ la capacità del condensatore (… fino anche a 100nF)

Guglielmo

debouncing_hw.pdf (22.8 KB)

grazie, farò una prova.

Si ma il problema non è quello (e per il debouncing in genere se non hai problemi di timing stretti o di cavi molto lunghi, basta un delay(50) quando si rileva il tasto premuto).

docdoc:
Si ma il problema non è quello

... non è detto, potrebbe benissimo catturare degli spikes generati dagli elettrodomestici che ha attorno, tipo quelli generati dallo spunto del compressore del frigo. Una rete R/C comunque aiuterebbe ...

docdoc:
e per il debouncing in genere se non hai problemi di timing stretti o di cavi molto lunghi, basta un delay(50) quando si rileva il tasto premuto.

... porcheria :stuck_out_tongue_closed_eyes: ... il debouncing si fa HW, il resto son palliativi SW che non sempre puoi applicare!

Guglielmo