joeled
| Inviato il: 08/04/2020 15:08:31
|
@emuland
Allora , leggo i dati i2c da altro arduino ,e li passo al dac sempre con i2c e tutto funziona...
Ma se anzichè ricevere da i2c ricevo da seriale addio a tutto, la seriale vuole troppo tempo e i 20 ms dell'onda generata vanno a farsi benedire...
-TOP CODE-
-BOTTOM CODE-
--------------- 595Wp 1 mono + 4 poli direzione 1 ovest - PCM 60 X MPPT - 2x SMA 12volt 105 Ah - inverter china 1000...
| |
| | emuland
| Inviato il: 08/04/2020 15:52:51
|
CITAZIONE (joeled, 08/04/2020 15:08:31 )
@emuland
Allora , leggo i dati i2c da altro arduino ,e li passo al dac sempre con i2c e tutto funziona...
Ma se anzichè ricevere da i2c ricevo da seriale addio a tutto, la seriale vuole troppo tempo e i 20 ms dell'onda generata vanno a farsi benedire...
-TOP CODE-
-BOTTOM CODE-
ma perchè usi delay e non millis() ?
dovresti fare una prova con la seriale di un esp da 115200, secondo me bypassi il problema
--------------- Ragioniere senza conoscenza dei ruoli che ama 4A per mmq di supposta (comprata su Wikipedia)
Ag...
| | | | PierGsi
| Inviato il: 08/04/2020 16:07:12
|
Arduino NANO vedo che utilizza ATMEGA328...
P.S. non ho riscontri del funzionamento di quanto segue e potrei aver sbagliato qualche registro, è una mia idea di come lo farei in C...
Metti un quarzo da 20 MHz
* Setti INT0 per rilevare lo zero crossing rete sul secondario di un trasfo di isolamento, la routine sarà chiamata 100 volte al secondo (ad ogni passaggio sia negativo/positivo che positivo/negativo della semionda di rete).
* Metti il TIMER/COUNTER1 in Phase correct mode ed imposti i registri in modo da avere un valore TOP max di conteggio pari a 2048 (che sarà la risoluzione del tuo PWM) ,prescaler ad 1.
fOUT= FRQ.OSCILLATORE/2*1*TOP
fOUT= (20*10^6)/(2*1*2048)= 4.88 kHz
4.88 kHz sarà la frequenza "di carrier" fornita dal pin PWM per generare la onda quadra modulata in ampiezza.
5V/2048 = 2.4 mV di risoluzione
L'uscita del pin PWM la colleghi ad un filtro integratore RC per avere un compromesso tra tempo di risposta e ripple, diciamo 2k2 / 100 nF oppure 10k / 100nF, da valutare considerando la costante di tempo R*C per arrivare circa al 60/70% della carica che ci si aspetta.
Metti a riposo il PWM a 1023 (registro OCR1x mi pare), per 2.5V in uscita
* USART configurata al baud rate richiesto, INTERRUPT A FINE RICEZIONE.
Ora, ad ogni passaggio per lo zero (INT0 routine) devi solo fare, alternativamente, 1023+(mVdesiderati/2.4), 1023-(mVdesiderati/2.4) e mettere il valore ottentuo nel registro hardware del TMR1 (OCR1x).
Dovresti ottenere un'onda quadra simmetrica duty 50-50 con frequenza 50Hz, sincrona con la rete, e che oscilla attorno a metà tensione di alimentazione.
Quando lo desideri chiedi al contatore remoto il dato di consumo tramite tramite seriale da una routine nel main, considera che bufferizzare un byte da trasmettere è roba da pochissimi cicli macchina, una volta caricato il dato si arrangia l'hardware del micro a fare tutto, poi quando il contatore/misuratore risponde il micro ti entra nella service interrupt dell'USART, li' prendi il dato, lo metti in un array che *processerai sempre nel main*.
Una volta che dalla seriale hai ricevuto il numero di bytes che ti aspetti, fai il parsing ed i calcoli nel MAIN.
Avendo il valore desiderato da mettere nel registro del contatore TMR1 aspetti la prox. chiamata della routine INT0, lo copi dentro OCR1x e lui si arrangia a crearti il duty cycle.
---------------
| | | | joeled
| Inviato il: 08/04/2020 19:40:36
|
@emuland
Proverò con millis
@Piergsi
Interessante , mi documenterò..grazie
--------------- 595Wp 1 mono + 4 poli direzione 1 ovest - PCM 60 X MPPT - 2x SMA 12volt 105 Ah - inverter china 1000...
| | | | PierGsi
| Inviato il: 10/04/2020 11:55:55
|
Fatto progressi ?
---------------
| | | | Claudio
| Inviato il: 10/04/2020 14:11:25
|
Non vorrei dire banalità ma se si beve amplificare un segnale a 50Hz non è più semplice usare un piccolo circuito amplificatore tarandolo in modo di avere all'uscita la tensione Ac desiderata sincronizzata con la rete?
Quanti miliVolt hai a 30 metri e quanti ne dovresti avere?
Modificato da Claudio - 10/04/2020, 14:14:48
--------------- Inverter Sofar Solar HYD6000-EP, 5250W pannelli, 14kWh lifepo4.
...
| | | | joeled
| Inviato il: 10/04/2020 19:49:14
|
CITAZIONE (Claudio, 10/04/2020 14:11:25 )
Non vorrei dire banalità ma se si beve amplificare un segnale a 50Hz non è più semplice usare un piccolo circuito amplificatore tarandolo in modo di avere all'uscita la tensione Ac desiderata sincronizzata con la rete?
Quanti miliVolt hai a 30 metri e quanti ne dovresti avere?
Ciao , non è una banalità ,potrebbe funzionare amplificando il segnale del TA a livelli trasportabili..magari 5 volt e poi ridurlo all'arrivo per riportarlo all'origine.Quello che mi preoccupa con questo sistema sono i possibile disturbi a 50 hz che potrebbero entrare lungo il tragitto...Considerando che la risoluzione del gtil e' circa 1.2 millivolt per 12 watt...
--------------- 595Wp 1 mono + 4 poli direzione 1 ovest - PCM 60 X MPPT - 2x SMA 12volt 105 Ah - inverter china 1000...
| | | | joeled
| Inviato il: 10/04/2020 19:51:54
|
CITAZIONE (PierGsi, 10/04/2020 11:55:55 )
Fatto progressi ?
Yes..
Ho trovato cosa era l'inghippo ...
Per non scrivere 6 7 righe di codice in più ho messo questo:
Serial.parseInt()
Leggendo direttamente i byte dalla seriale problema risolto..
Avrei scritto stasera la risposta...
Modificato da joeled - 10/04/2020, 19:57:28
--------------- 595Wp 1 mono + 4 poli direzione 1 ovest - PCM 60 X MPPT - 2x SMA 12volt 105 Ah - inverter china 1000...
| | | | PierGsi
| Inviato il: 11/04/2020 10:38:50
|
---------------
| | | | joeled
| Inviato il: 13/04/2020 19:49:17
|
Buonasera...
si prosegue qui..
LINK
--------------- 595Wp 1 mono + 4 poli direzione 1 ovest - PCM 60 X MPPT - 2x SMA 12volt 105 Ah - inverter china 1000...
| |
| | |
|
Versione Completa!
|
|
|
|
|
|
|
|
|