Pages: [1]   Go Down
Author Topic: Leggere corrente e sleep mode  (Read 690 times)
0 Members and 1 Guest are viewing this topic.
Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora il problema forse è metà hardware e metà software.
Vorrei che arduino leggesse l' intensità di corrente (continua 12/14v 20A Max) e se questa è 0 si mettesse a dormire (sleep mode) mentre se > 0 si risvegliasse dal torpore per riprendere a funzionare.
Per il sensore stavo leggendo questo sito: http://www.lucadentella.it/2011/11/29/sensore-di-corrente-con-arduino/

A naso da quello che leggo devo usare gli interrupt, ma come posso utilizare i pin digitali 2 e 3 con quel sensore che è analogico? Esistono altri sensori utili allo scopo?
« Last Edit: October 01, 2012, 10:51:15 pm by erpomata » Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 335
Posts: 23142
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gli interrupt sui pin leggono i cambi di stato, quindi low, high oppure una transizione tra uno di questi 2 stati. Non puoi attaccare un interrupt ad una lettura analogica, anche perché l'ADC funziona col clock di sistema e negli stati di sleep più profondi il clock di sistema viene bloccato, fermando tutte le periferiche.
Potresti usare però un op-amp in modalità comparazione. Sull'ingresso non invertente fai confluire il segnale del sensore, sull'invertente il segnale oltre il quale attivare l'interrupt. In questo modo, non appena il sensore dà un segnale sopra quello di soglia, l'op-amp ti spedisce un segnale alto verso un pin dell'Arduino ed attivi così il tuo interrupt.
Logged


Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Gli interrupt sui pin leggono i cambi di stato, quindi low, high oppure una transizione tra uno di questi 2 stati. Non puoi attaccare un interrupt ad una lettura analogica, anche perché l'ADC funziona col clock di sistema e negli stati di sleep più profondi il clock di sistema viene bloccato, fermando tutte le periferiche.
Potresti usare però un op-amp in modalità comparazione. Sull'ingresso non invertente fai confluire il segnale del sensore, sull'invertente il segnale oltre il quale attivare l'interrupt. In questo modo, non appena il sensore dà un segnale sopra quello di soglia, l'op-amp ti spedisce un segnale alto verso un pin dell'Arduino ed attivi così il tuo interrupt.
Sacrosanto . Aggiungo che la tensione di riferimento da applicare sull'ingresso invertente la potresti ottenere con un partitore resistivo collegato in questo modo +5->res 10K->trimmer 1K pin1 , trimmer 1k pin3-> res 10K->gnd....prelevando dal cursore hai la possibilità di regolare il valore di soglia da circa 2,4V a circa 2,6V , userei però un trimmer miltigiro per fare una migliore regolazione......Considera però che il tuo sensore ha una uscita pari a 2,5volt ed aumenta (nel caso di correnti positive)di 100mV per ogni ampere di assorbimento quindi se ti basta svegliare il micro con un assorbimento intorno all'ampere potresti seguire questa strada . Bisognerebbe capire quanta corrente assorbe il tuo circuito in varie situazioni ed individuare il minor assorbimento e ragionare su quello.
Logged

Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie a tutti per le risposte.
Il minimo che assorbe è un altro arduino se non addirittura un altro atmega328 quindi pochissimo, poi ci saranno anche altre utenza ma se l'atmega non deve fare nulla allora solo quello che frulla.

Logged


Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se devi creare interrupt da una corrente bassissima ci sono dei modulini progettati con il sensore da te scelto ma con amplificazione inclusa.
guarda quì https://www.sparkfun.com/products/8883.
Logged

Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Interessante però mi servirebbe per qualche ampere in più.
In ogni caso grazie per la segnalazione.
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa questo non mi è chiaro:
Potresti farmi uno disegno al volo? perchè 2 partitori?

Sacrosanto . Aggiungo che la tensione di riferimento da applicare sull'ingresso invertente la potresti ottenere con un partitore resistivo collegato in questo modo +5->res 10K->trimmer 1K pin1 , trimmer 1k pin3-> res 10K->gnd....
Logged


Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il partitore è uno solo ed è composto da una R da 10K ,un trimmer da 1K ed infine da un'altra R da 10K.....Il solito partitore ma nel mezzo delle due resistenze ci metti il trimmer da 1K che ti permette di fare una regolazione della tensione di riferimento
                               
                  +5v  -------------
                              |
                      10K   R
                              |
                              |              cursore  trimmer multigiri
                       1K   T <----------------------------------           tensione out da ca. 2,4volt a 2,6volt
                              |                  |                                   all'ingresso invertente
                              |                ____
                      10K   R                ____ condensatore
                              |                  |
                            GND              GND
Guarda un po se capisci,io mi sono impegnato  smiley-cool
Logged

Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ora va meglio il dubbio era nato da questo:

... +5->res 10K->trimmer 1K pin1 , trimmer 1k pin3-> res 10K->gnd ..
Logged


Pages: [1]   Go Up
Jump to: