Salve, sto provando a leggere un contaimpulsi con arduino mediante interrupt, ma ho problemi di false letture.
sto usando una resistenza di pull-up da 1k tra 5v e il pin di lettura. ho provato a vedere cosa accade leggendo ciclicamente con una porta analogica sempre con pull-up collegato e noto che quando non c'è l'impulso la linea non è fissa sui 5v a è molto disturbata. ho provato ad aggiungere un condensatore 104 tra pin di lettura e gnd ma questo sembra essere ininfluente.
Eliminare disturbi su ingresso pin arduino
Moderatori:
carloc,
g.schgor,
BrunoValente,
IsidoroKZ
21 messaggi
• Pagina 1 di 3 • 1, 2, 3
1
voti
e noto che quando non c'è l'impulso la linea non è fissa sui 5v a è molto disturbata. ho provato ad aggiungere un condensatore 104 tra pin di lettura e gnd ma questo sembra essere ininfluente.
La linea è lunga ? qualche metro ? il doppino è attorcigliato (twistato)?
Prova a sostituire generatore di impulsi e linea con un pulsante con connessioni corte.
quale è la frequenza degli impulsi? 10 al secondo ? più veloce?
104 sta per 10 nF = 0,01 uF ? R 1k ohm è OK. Tau = R x C = 1000 x 0,01 x 10^-6 = 0,01 ms forse è poco.
aumenta la capacità a 1 uF.

0
voti
Bisognerebbe avere più informazioni sulla frequenza del segnale in ingresso
Sullo scopo di tutto l'ambardan.
Se la frequenza non è elevata e l'impulso sufficientemente lungo leggi in polling così ti dimentichi dei disturbi
Se non è possibile in base alla frequenza massima del tuo segnale puoi mettere un filtro da un singolo RC a qualcosa di più potente che abbia un taglio più netto
Ma servono dati
Sullo scopo di tutto l'ambardan.
Se la frequenza non è elevata e l'impulso sufficientemente lungo leggi in polling così ti dimentichi dei disturbi
Se non è possibile in base alla frequenza massima del tuo segnale puoi mettere un filtro da un singolo RC a qualcosa di più potente che abbia un taglio più netto
Ma servono dati
-

luxinterior
4.311 3 4 9 - Master EY

- Messaggi: 2690
- Iscritto il: 6 gen 2016, 17:48
0
voti
La frequenza non è elevata, si tratta di contatori di energia elettrica, il problema è che ne devo leggere 2. nel caso in cui i due impulsi arrivassero in contemporanea ne potrei perdere qualcuno
0
voti
Come è fatto il circuito, presumo con un fototransistor o simile, che rileva l'impulso luminoso?
Come e con quale tensione viene alimentato?
Ogni quanti kWh si accende?
Potenza massima contatore ?
Come e con quale tensione viene alimentato?
Ogni quanti kWh si accende?
Potenza massima contatore ?
0
voti
Si tratta di contatori con uscita S0. il cavo è un cavo di rete cat6 lungo circa 7 metri. (quando ho provato a collegarmi direttamente sui contatori era uguale avevo lo stesso problema. tre fili dello stesso cavo sono usati per leggere dati da un inverter tramite linea seriale che funziona perfettamente.
gli impulsi sono 1000 ogni kWh il mio contatore enel è da 6 kW. il circuito è alimentato dai 5v di arduino
gli impulsi sono 1000 ogni kWh il mio contatore enel è da 6 kW. il circuito è alimentato dai 5v di arduino
0
voti
Mi associo a MarcoD
Durata e frequenza degli impulsi dato fondamentale per dare una risposta sensata
A naso direi che c'è la puoi fare con lettura in polling facendo letture multiple ogni 5ms (dato a caso visto che mancano info)
E decidendo il valore dell ingresso a maggioranza
Leggi 5 volte se hai letto alto almeno tre è alto
Poi butti via la lettura più vecchia e aggiorni con la più recente e ricontrollo e così via
Ipotesi lettura a 5ms decisione tre su 5 l impulsi deve durare almeno 20ms sia alto che basso quindi periodo max 40ms
Se metti ingressi sulla stessa porta leggi i due impulsi in contemporanea e non hai nessun problema.
Durata e frequenza degli impulsi dato fondamentale per dare una risposta sensata
A naso direi che c'è la puoi fare con lettura in polling facendo letture multiple ogni 5ms (dato a caso visto che mancano info)
E decidendo il valore dell ingresso a maggioranza
Leggi 5 volte se hai letto alto almeno tre è alto
Poi butti via la lettura più vecchia e aggiorni con la più recente e ricontrollo e così via
Ipotesi lettura a 5ms decisione tre su 5 l impulsi deve durare almeno 20ms sia alto che basso quindi periodo max 40ms
Se metti ingressi sulla stessa porta leggi i due impulsi in contemporanea e non hai nessun problema.
-

luxinterior
4.311 3 4 9 - Master EY

- Messaggi: 2690
- Iscritto il: 6 gen 2016, 17:48
0
voti
Arduino (dipende dal modello) ha diversi counter interni asincroni adatti allo scopo.
Non è necessario usare interrupt se il segnale in ingresso comanda il counter direttamente col suo pin dedicato .
Se arrivano due impulsi contemporaneamente ogni counter farà correttamente il suo lavoro.
Poi ogni tanto vai a vedere se c'è stato un incremento e fai gli aggiornamenti del caso.
Arduino mega ad esempio mi sembra che abbia 6 counter e due di sicuro sono disponibili per essere utilizzati senza problemi.
Riguardo il rumore descrivi meglio il circuito attuale e da dove proviene il segnale magari con uno schema.
Ci sono masse /schermi collegati in comune ?
Ciao
Non è necessario usare interrupt se il segnale in ingresso comanda il counter direttamente col suo pin dedicato .
Se arrivano due impulsi contemporaneamente ogni counter farà correttamente il suo lavoro.
Poi ogni tanto vai a vedere se c'è stato un incremento e fai gli aggiornamenti del caso.
Arduino mega ad esempio mi sembra che abbia 6 counter e due di sicuro sono disponibili per essere utilizzati senza problemi.
Riguardo il rumore descrivi meglio il circuito attuale e da dove proviene il segnale magari con uno schema.
Ci sono masse /schermi collegati in comune ?
Ciao
600 Elettra
0
voti
Si tratta di contatori con uscita S0.
Cosa è una uscita S0 ?
il cavo è un cavo di rete cat6 lungo circa 7 metri. (quando ho provato a collegarmi direttamente sui contatori era uguale avevo lo stesso problema. tre fili dello stesso cavo sono usati per leggere dati da un inverter tramite linea seriale che funziona perfettamente.
gli impulsi sono 1000 ogni kWh il mio contatore enel è da 6 kW.
Quindi consumando 6 kW ci sono 6000 impulsi all'ora ossia 100 impulsi al minuto
Per esagerare, supponiamo misuri fino al consumo massimo di 12 kWh >> 200 impulsi al minuto:
circa 3 impulsi al secondo >> un impulso ogni 0,33 secondi. Supponiamo un ciclo utile del 50%, l'impulso dura 0,17 secondi, un tempo enorme per un controllore che deve leggere l'ingresso digitale.

1
voti
Da quanto leggo sono uscite open collector fino a 30V con una discreta caduta di tensione (fortemente dipendente dalla corrente circolante) e una discreta corrente di fuga in stato off (fino a 2 mA). Bisogna misurare la corrente circolante ai capi di una resistenza (qui da 360 Ω per avere 10 mA). Il transistor conduce quando S0+ scende sotto i 3 V (cioè con almeno 5,5 mA assorbiti).
Una domanda ben posta è già mezza risposta.
21 messaggi
• Pagina 1 di 3 • 1, 2, 3
Chi c’è in linea
Visitano il forum: Google Adsense [Bot] e 57 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)





