Newsgroup: it.hobby.elettronica.digitale
Titolo: Rilevare assenza della rete elettrica

Ho un apparecchio alimentato a 220V con AC/DC la cui uscita alimenta un 
microcontrollore. Vorrei loggare i "buchi" (interruzioni anche brevi) 
della tensione di rete in modo da poterli visualizzare/scaricare a 
posteriore.
 
Chiaramente ho bisogno di isolare e ridurre la tensione di rete per 
poterla leggere con il micro (un circuito a fotoaccoppiatore dovrebbe 
fare al caso mio).
 
Il problema serio è però memorizzare l'evento su una memoria non 
volatile in modo sicuro, considerando che a breve il micro si spegnerà.
Soluzioni possibili sono aumentare i condensatori sull'alimentazione del 
micro (o aggiungere un supercondensatore) per far "durare" 
l'alimentazione il tempo necessario al salvataggio.
 
Avete mai fatto qualcosa del genere?

 posteriore.
 
puoi farlo in milel modi :)
memorizzare l'evento sulla eeprom del microcontrollore (gli atmega lo
permettono), però sono limitate sia in spazio che in riscrittura, e di
conseguenza puoi  memorizzare solo il "riavvio" del microcontrollore.
Puoi usare memorie esterne oppure connessioni wifi dove puoi memorizzare
su server.
 
Non devi per forza memorizzare il momento di spegnimento ma può bastare
il momento di riavvio. (ovviamente se non hai altre esigenze)
 
Se invece devi memorizzare tutto, puoi usare un modulo di rilevazione
del passaggio di corrente, se ne trovano di diversi tipi (cerca modulo
arduino corrente), ovviamente con uso dei supercapacitor o batterie.
 
 
 
 

 ---
però se devi loggare l'ora avrai già una batteria da qualche parte,o no?
 
---
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com
 
 


puoi fare così senza optoisolatore,un altro ponte diodi o un solo diodo 
se proprio il ponte non ci sta,con un condensatore di livellamento molto 
piccolo(es 100nF..non ho calcolato) scaricato da una resistenza tale da 
scaricarlo sotto la VIL del GPIO del tuo micro in un solo periodo(o 
semiperiodo se usi il ponte,vedi tu) senza la rete.
Usi questo per leggere dal tuo RTCC,che avrai se vuoi loggare 
l'ora,sempre,ad ogni secondo,o minuto  o ogni 100 semiperiodi,..insomma 
saprai tu che precisione ti serve.
 
quando va via la corrente ti tieni l'ultimo valore precedentemente 
letto,senza nemmeno leggere RTCC se ogni us è prezioso,e lo salvi in 
EEPROM,o se ce l'hai,RAM backuppata da batteria sai che nel peggiore dei 
casi ti sei perso un minuto o un secondo ecc..
e se vuoi vai in deep sleep se devi preservare una batteria.
Imposti il risveglio da fronte di salita sullo stesso GPIO ecc.
In deep sleep o STOP o come lo chiamano un uC decente  non deve 
consumare piu di 2 uA
 
Chiaro che prima devi vedere nella peggiore situazione che durata hanno 
i tuoi condensatori
 

 Avete mai fatto qualcosa del genere?
 
Sì, e tipicamente non servono condensatori enormi. Qualche spunto:
 
* Metti un diodo in serie all'alimentazione della CPU (e della flash, se è
esterna), in modo che sia indipendente dagli altri carichi connessi sulla
stessa alimentazione.
* Quando rilevi il buco metti tutte le uscite della CPU non vitali in alta
impedenza, in modo che non dreni corrente nemmeno da lì.
* Determina (sperimentalmente o sempre da datasheet) la corrente assorbita
dalla CPU in questa condizione (e dalla flash, se è esterna). Assumi per
semplicità che la corrente resti costante durante tutto il periodo di
scarica del condensatore.
* Determina il tempo necessario per scrivere sulla flash.
* Verifica sul datasheet della CPU la tensione minima di funzionamento (e
della flash se è esterna, e ovviamente usa la maggiore fra le due).
* A questo punto ti è facile calcolare il condensatore necessario in
funzione di tempo, corrente, tensione di partenza, tensione di fine come
C=I*t/(Vstart-Vstop).
 
Esempio di una CPU funzionante a 3.3V, che con il diodo in serie diventano
3V. Dal datasheet determini che la tensione minima è 1.8V. La corrente
assorbita dalla CPU nella modalità suddetta è 50 mA. Il tempo che ti serve
per la scrittura è 10 ms. Allora la formula diventa:
 
C = I*t/DV = 50e-3 * 10e-3 / (3-1.8) = 416 uF
 
Ormai trovi dei condensatori ceramici da 100uF 6.3V con package 0805... lo
spazio necessario è davvero poco.
 
-- 
Fletto i muscoli e sono nel vuoto.

pozz ha scritto:

uC alimentato con una batteria di backup al litio (vai avanti molti giorni)
la mancanza di rete la implementi come meglio credi
 

Il 13/12/2018 13:56, pozz ha scritto:

Collegata a questa domanda, prettamente "digitale", ce ne sarebbe 
un'altra che avevo preso un po' sottogamba.
 
Avete un circuito semplice per leggere lo stato di una fase 230Vac e 
dare un segnale digitale isolato ad un uC quando non va più bene?
 
E' chiaro che misurare la qualità della rete elettrica può essere 
complicato se vogliamo misurare tensione di picco, forma d'onda, 
distorsione, frequenza, ecc. ecc. A me interesserebbe qualcosa di 
semplice, che guarda giusto il livello di picco e mi commuta un segnale 
se il livello scende sotto una soglia prefissata dopo un certo tempo 
(100ms = 5 periodi della sinusoide).
Chiaramente ad isteresi sarebbe meglio per evitare che, in 
corrispondenza della soglia, il segnale d'allarme possa andare su e giù.
 
Forse qualcosa del genere è implementato negli UPS che devono commutare 
su batteria quando la rete elettrica ha dei problemi.
 
Mi accontenterei anche di un oggetto finito da quadro elettrico che non 
costi uno sproposito.

 ha  
scritto:

forse la faccio facile io,ma non basterebbe un rivelatore di picco con  
costante di tempo opportuna,,scaricato da fotoaccoppiatore con in serie  
resistenza e diodo alta tensione per la tensione inversa?il transistor di  
uscita sarebbe chiuso in condizioni normali e tramite resistenza di pullup  
darebbe il livello logico compatibile col resto del circuito



Sì, però la soglia di "allarme" sarebbe molto variabile. Mi sarebbe 
comodo poter dire che il circuito genera l'allarme quando la tensione di 
picco della tensione d'ingresso scende sotto 180Vac +/-10% (o qualcosa 
del genere) e torna in condizione normale quando la tensione torna sopra 
220Vac +/-10%.

>>

ok...e queste cose non possono comunque essere rilevate col semplice  
circuito che proponevo e un comparatore?Oppure vuoi che al primo picco  
troppo basso scatti?
Mi sembrano 2 cose diverse..che secondo me richiederebbero 2 costanti di  
tempo, 2 fotoaccoppiatori e  2 soglie differenti .
Oppure, senza nessuna costante, di tempo traformare la 220Vac in un  
segnale proporzionale ,tramite 1 fotoaccoppiatore farlo rilevare all'ADC  
del micro dentro il quale saranno implementati i criteri di  
valutazione.Dico così ma non l'ho mai fatto


 valutazione.Dico così ma non l'ho mai fatto
 
In questo caso servirebbe un trasformatore per ridurre la tensione ed 
isolarsi dalla rete... penso che un fotoaccoppiatore ti faccia perdere 
la linearità della trasformazione alta/bassa tensione.