[RISOLTO]Per più di 3 anni tutto ok ed ora... interferenze

Eheheh si ma così è troppo facile.... :stuck_out_tongue:

1 Like

Bene, hai avvicinato lo schermo e continua a non funzionare, quindi non è un problema con l'I2C,

  • Quale modulo sensore è quello che dovrebbe produrre l'interruzione?
  • Come ea che distanza è collegato?
  • Hai cambiato le condizioni ambientali ultimamente? installare un nuovo apparecchio, installare un alimentatore per un nuovo dispositivo in parallelo o vicino a quelli che stiamo considerando... ecc

Saluti.

Il sensore è questo nel link(sono da cell):

5 metri con cavo schermato e schermatura collegata a gnd di sensore e arduino... 4 condensatori da 100nf tra a0 e gnd per filtrare interferenze che arrivavano dalla caldaia(cosi da 10 mesi)

Nessun cambio di condizione o apparecchi aggiunti da Gennaio ad oggi(nei mesi freddi tutto ok)...

Y los mas oscuros

E quelli più scuri, non sarà il sensore a infrarossi a ricevere molta luce esterna? e anche tutti i sensori a infrarossi di solito danno qualche problema. Leggi questo LINK che sebbene non sia il tuo sensore, potrebbe succedere a te.
Un'altra cosa penso di ricordare che si attivano i relè 500ms mi sembra poco per far reagire comodamente il motore, lo alzerei un po' di più.

Il sensore che sto usando è modulato, quindi reagisce ad una determinata frequenza IR. Purtoppo non è quello secondo me il problema...anche perché lo farebbe anche senza avvio sei motori in caso...

Appena posso provo a scollegare tutto il resto xhe mi arriva ad arduino... anenomentro, sensore temp, sensore luce ecc...

Qualcosa farà da antenna a sto punto... ho scollegato già le cose più probabili... alimentato a batteria, tolto tutto quello che sta vicino ai 220v dei motori... il bus i2c con gli extender a 10m.... mancano ste cose xhe sono distanti dai motori....

scollegato tutto il resto lasciando attaccato quello già testato avendolo in teoria esluso come non colpevoli del problema.

riassumo qui le prove fatte sperando in quache ulteriore test/consiglio:

  • collegate due tende ad unico rele(quello che rimase bloccato) ma che non mi crea il disturbo quando la sua tenda associata si movimenta. -> il problema persiste
  • avviata solo la tenda incriminata che mi crea interferenza senza innesco del rele, ho scollegato i cavi di bassa tensione dai rele e li ho fatti toccare> il problema persiste
  • alimentato arduino con un powerbank e avviato rele --> problema attivazione interrupt non necessario si presenta
  • alimentato arduino con un powerbank e avviato tenda incriminata mettendo a contatto i due fili di BASSA TENSIONE senza attivare i rele --> problema attivazione interrupt non necessario si presenta
  • alimentato arduino con un powerbank e avviato tenda incriminata mettendo a contatto i due fili di BASSA TENSIONE senza attivare i rele e scollegando gnd e vcc verso arduino dalle schede rele --> problema attivazione interrupt non necessario si presenta
  • sostituito sensore IR che utilizzo come sensore pioggia ed è gestito dall'interrupt e attivazione della tenda tramite rele --> problema attivazione interrupt non necessario si presenta
  • disattivazione a livello software della parte cha attiva l'interrupt e attivazione della sola tenda incriminata --> problema attivazione interrupt NON si presenta
  • disattivazione a livello software della parte cha attiva l'interrupt e attivazione di tutte e tre le tende --> problema attivazione interrupt NON si presenta ma si è bloccato arduino
  • scollegato il display a 10m e collegato a 5cm da arduino --> l'interrupt si attiva senza bisogno
  • sono tutti e tre i motori e non solo uno a far attivare l'interrupt senza motivo... con più prove alla mano ho constatato purtroppo questo
  • ripensandoci non può essere un problema software in quanto tutto questo inverno le tende si attivavano spesso e non si è mai presentato questo problema
    cambiato arduino --> l'interrupt si attiva senza bisogno
  • Aggiunto filtro emi sui 12v --> l'interrupt sicattiva senza bisogno
  • Ogni tanto oltre il problema dell'interrupt arduino si blocca e si riavvia grazie al wdg.
  • scollegato tutto il resto(anemometro,bme280,ventola ricambio aria bme,sensole luce) lasciando attaccato quello già testato avendolo in teoria esluso come non colpevoli del problema.
  • scollegato sensore IR utilizzato come sensore pioggia(quello che si attiva con interrupt quando non dovrebbe([Risolto]Sensore pioggia con sensore IR ( KY-032) - #7 by docdoc) e anche cosi l'interrupt si attiva senza bisogno

Ho il sospetto che sia il cablaggio i2c che passa vicino alla 220v dei motori e che al momento si trova in questa configurazione:

5v da arduino con due condensatori plastici da 100nf in paralleno a gnd

Pull up esterna fa 4k7 su sda e scl con disattivazione via sofware di quelle interne. (Fatto stamattina) poi Extender- cavo 10m - extender display.

Ci sono soluzioni per evitare disturbi sul bus i2c? Filtri? Oppure qualche altro accorgimento?

Aggiungo l'ultima prova effettuata oggi... cambio scheda rele... purtoppo il problema persiste...

Senza conoscere l'esatta geometria e l'esatto disturbo (irradiato, condotto, indotto) è arduo. Per lo meno le varie masse si dovrebbero collegare assieme in un unico punto vicino all'alimentatore, o comunque esterno alla logica (Arduino o chi per esso).

Tutto molto strano, effettivamente... Rispetto a tutte le prove fatte non mi viene in mente altro se non immaginare che in qualche modo ci sia umidità (o acqua) infiltrata nei corrugati che portano i cavi di comando e di corrente e che "amplificano" l'effetto di interferenza.
Teoricamente bisognerebbe capire con esattezza (i tentativi "a manella" non possono dare risposte definitive) cosa succede elettricamente ai cavi che poi determinano gli interrupt, magari provando ad analizzare con un oscilloscopio (se hai qualcuno che te lo possa prestare) oppure provando a vedere di cercare di tracciare gli input con Arduino stesso usandolo come un oscilloscopio tramite monitor seriale (ci sono vari progettini del genere in rete), anche se non so se sia sufficiente.

Purtroppo non ho conoscenze che possano nemmeno prestarmelo... nessuno di voi si trova zona Roma o provincia!?!?!? :stuck_out_tongue:

Prima di avventurarmi in ogni altra cosa, le cose più semplici sarebbero di ispezionare le canaline e le scatole che contengono i cavi di comando alla ricerca di eventuali tracce di anomalie... mai dire mai...

Allora... ispezionato tutto ciò di accessibile.... tutto ok e nessuna traccia di umidità o condensa, ne contatti arrugginiti o altro....

Ho fatto altre due prove, cambiato alimentatore e alimentato tende e arduino da due punti diversi....

Problemi rimasti invariati...

Quello che sembra è che la rotazione dei motori nel solo senso di srotolamento sia cambiata(usura o nn so) e crei dell'interferenze... in arrotolamento invece no.....

Grazie a tutti del supporto e della pazienza... purtoppo questo progetto mi sa che è arrivato al capolinea!!!

Diciamo che non è stato pensato dall'inizio con criteri di compatibilità elettromagnetica anti EMI/EMS/RFI (cosa tutt'altro che semplice o scontata), per cui ha funzionato finché i disturbi (comunque presenti) non sono saliti sopra una certa soglia. Adesso che i motori hanno subito un degrado e generano più interferenze, la cosa è diventata evidente. Googlare un po' con quegli acronimi può dare molte indicazioni pratiche su cosa può essere stato montato in modo non adeguato.

chiaro Claudio, provo ad informarmi e vediamo se ci scappa qualche altra prova da fare...

grazie a tutti

Ma perché invece non posti lo schema elettrico dettagliato che magari si prova a sistemare l'hardware che probabilmente è quello ad avere problemi?

ragazzi, lo so già che arriveranno mal parole per lo schema fatto... :smiley:

spero sia comprensibile per voi esperti dato che lho fatto a prova di scemo(me :D)

Per quello che tu chiami interrupt e cioè l'ingresso anemometro, ti consiglio di far apparire un asterisco (*) in alto a dx oppure a sx del LCD per vedere come e quando lampeggia in tempo reale (se non hai già messo un led, ma non lo vedo) così puoi regolare la tua resistenza di pull-up in modo da tagliare tutti disturbi, anche drasticamente con una resistenza bassa!

Ciao steve,

Perché ti concentri sull'anemomentro? L'interrupt che si attiva alla rotazione dei motori è quello che gestisce il sensore Ir....

Oggi ho fatto un'altra prova... ho disattivato l'interrupt, (con detachinterrupt) all'avvio del comando srotolamento tenda... e cmq l'arduino mi si riavviava anche cosi...

Quello che credevo è che disattivando l'interrupt incriminato non avrebbe piu' aptato più il disturbo... quwsto mi avrebbe permesso di identificare da dove cavolo entrano sti disturbi...

Ad oggi con tutte le prove fatte e le esclusioni a step di tutto non ho ancora capito da dove arrivano... comincio a sospettare xhe siano EMI irradiate e la prossima prova(facile e dirsi ma non a farsi) e schermare con alluminio tutto l'arduino....

Anche con filtri emi a monte di arduino e tende non ho risolto...

Ti propongo un' altra prova : scollega tutto e lascia solo arduino collegato e vedi cosa succede. Se va bene comincia a collegare un dispositivo alla volta finché non si presenta il problema. Tieni presente che a mio parere tutti i cavi più lunghi di 10cm dovrebbero essere schermati.

Ciao Nello,

Prova fatta... sembrerebbe essere il cablaggio dell'i2c che gestisce il display 20x4 a 10metri... la prova è stata fatta staccando tutto e metrendo un display a 10 cm da arduino e a 10 metri come da configurazione di 3 anni a questa parte.

Indiziati a questo punto sarebbero:

I2c extender:come verificare se hanno perso efficenza? Funzionano quondo danneggiati non sono...

Pull up eaterna da 4k7 è un valore corretto? Quella interna se non ho letto male è da 20k, ha senso abbassarla ancora di piu? Quella interna è stata ovviamente disattivata.

Si possono filtrare i segnali sda e scl in qualche modo?

Ricablare 10metri di cavo facendo passare i cavi non vicino a quelli dei motori( come ultima spiaggia visto che significherebbe rivedere un tutto l'impianto...)

Grazie