| | | | ronwal
| Inviato il: 21/1/2013,20:58
|
ti conviene misurare correnti alternate con trasformatori........ tipo questo.... http://www.ebay.it/itm/Trasformatore-di-co...=item4ac05753ea Gli metti unabella resistenza da 20 ohm ai capi dell'avvolgimento,un ponte a diodi ed un piccolo condensatore da 150 micro parallelato ad uno zener da 5,1v......
--------------- 6 bosch csi 240 mono, 9 ldk 225 poly, Outback flex max 60, psw 7 advance 4kw 48v, 24 elementi 400ah c 5 tubolari
| | | | ElettroshockNow
| Inviato il: 21/1/2013,21:25
|
CITAZIONE Gli metti unabella resistenza da 20 ohm ai capi dell'avvolgimento,un ponte a diodi ed un piccolo condensatore da 150 micro parallelato ad uno zener da 5,1v...... Manca una resistenza o sbaglio !!!!
Bè hai ragione ,è la soluzione più conveniente senza troppi sbattimenti ......domani provvederò.... Però: mannaggia a me quanto sò tignoso .Domani faccio altre due prove e poi rinuncio!!!!
| | | | NonSoloBolleDiAcqua
| Inviato il: 21/1/2013,21:43
|
CITAZIONE (ElettroshockNow @ 21/1/2013, 20:38) -pensavo che bastava eseguire una sequenza di letture degli amper per un tempo abbastanza lungo da riuscire a rilevare il picco massimo di un ciclo completo. Codice...voglio vedere il codice. Non credo che hai implementato il WIFI con il PPTEA: vedere...voglio vedere!
Cmq nel PPTEA esiste un 'barbatrucco' per farlo andare a velocià notevoli...ma solo per la lettura di un valore A/D.
Sollevi un problema che non è facile risolvere...se ti interessa lo analizziamo insieme. Possiedi un oscilloscopio? Ciao Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | ElettroshockNow
| Inviato il: 21/1/2013,22:05
|
Ciao Bolle
CITAZIONE Non credo che hai implementato il WIFI con il PPTEA: vedere...voglio vedere! Ho provato a fare dei test ,ma non sono riuscito a decrifare il manchester che hai implementato ---ti ricordo che dall'altra parte dell'etere c'è un Arduino ...... Quindi ho continuato ad usare la UART (a 4800) e mi sento soddisfatto del link.
Torniamo a noi :
il PPTEA : 01 ' POWERMETER WIRELESS V1.0 02 ' PIN 2 -> CADS1 -> Lettura corrente Prodotta 03 ' PIN 3 -> CADS2 -> Lettura corrente Assorbita 04 ' BIT 4 (PIN6) Led segnalazione 20 SETIO=&H4000F 'BIT0-1-2-3 = INGRESSI IL RESTO USCITE 30 SERIALSPEED = 160 ' VELOCITA RS232 = 4800 40 CADS=2 ' --->> SI UTILIZZANO 4 CONVERTITORI ANALOGICO DIGITALI 100 CLR PMAX 110 CLR AMAX 120 CLR N 130 N++ 140 P=CADS1 150 IF P<pmax THEN 170 160 PMAX=P 170 A=CADS2 180 IF A<amax THEN 200 190 AMAX=A 200 IF N<200 THEN 130 300 'DIVISIONE VALORI INGRESSO IN DUE BYTE 310 P1=PMAX AND 255 320 P2=PMAX AND 768 330 P2=P2/256 340 A1=AMAX AND 255 350 A2=AMAX AND 768 360 A2=A2/256 400 ' PROTOCOLLO COMUNICAZIONE 401 ' (INDIZIZZO(2BYTE))+(DATOP(2BYTE)+(DATOA(2BYTE)+CKS(1BYTE) 410 ADR1 = 125 'INSERIRE INDIRIZZO TRASMITTENTE 420 ADR2 = 250 'INSERIRE INDIRIZZO TRASMITTENTE 430 CKS=(ADR1+ADR2+P1+P2+A1+A2)/6 'CHECKSUM 500 OUTBIT(4)=1 'LED SEGNALAZIONE TX = ON 501 SERIALOUT = 0 510 SERIALOUT = ADR1 'INDIRIZZO 520 SERIALOUT = ADR2 'INDIRIZZO 530 SERIALOUT = P1 540 SERIALOUT = P2 550 SERIALOUT = A1 560 SERIALOUT = A2 570 SERIALOUT = CKS 580 WAITMS 150 590 OUTBIT(4)=0 ' LED SEGNALAZIONE TX = OFF 1020 WAITS 1 1030 GOTO 100
Arduino :
int led = 13; int inByte, ADR1R, ADR2R, PR1, PR2, ASS1, ASS2, CKSR, CKS, PRO, ASS; int ADR1 = 125; int ADR2 = 250; float A_PRO, A_ASS; long N_RX = 0; #include <softwareserial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
void setup() { // initialize both serial ports: Serial.begin(9600); mySerial.begin(4800); pinMode(led, OUTPUT); }
void loop() {
if (mySerial.available()) { inByte = mySerial.read(); //Serial.write(inByte); } long Tout = 10000; //Timeout in caso di Blocco nelle funzioni While ADR1R = inByte; if (ADR1R == ADR1){
while (mySerial.available() != 1 && Tout >= 0)Tout--; ADR2R = (mySerial.read()); while (mySerial.available() != 1 && Tout >= 0)Tout--; PR1 = (mySerial.read()); while (mySerial.available() != 1 && Tout >= 0)Tout--; PR2 = (mySerial.read()); while (mySerial.available() != 1 && Tout >= 0)Tout--; ASS1 = (mySerial.read()); while (mySerial.available() != 1 && Tout >= 0)Tout--; ASS2 = (mySerial.read()); while (mySerial.available() != 1 && Tout >= 0)Tout--; CKSR = (mySerial.read()); Tout=0; digitalWrite(led, HIGH); delay(100); digitalWrite(led, LOW);
CKS=((ADR1+ADR2+PR1+PR2+ASS1+ASS2)/6); if (CKS >= 256) CKS = CKS-256; /*---------------------------------------------------------- Tabella conversione sensore ACS712 +-20A = 0.04887 +-30A = 0.07405 */ PRO= ((PR2*256)+ PR1)-512; A_PRO= (PRO * 0.07405)*0.707; ASS= ((ASS2*256)+ ASS1)-512; A_ASS= (ASS * 0.07405)*0.707;
if (ADR2R == ADR2 && CKSR == CKS){ N_RX++; digitalWrite(led, HIGH); Serial.println(); Serial.write ("Ricezione numero= " Serial.println(N_RX); Serial.write ("Amper RMS Prodotti= " Serial.println(A_PRO); Serial.write ("Lettura Amper assorbiti= " Serial.println(ASS); Serial.write ("Amper RMS assorbiti= " Serial.println(A_ASS);
} digitalWrite(led, LOW); } }
| | | | NonSoloBolleDiAcqua
| Inviato il: 21/1/2013,22:27
|
Innanzitutto complimenti! Il PPTEA fa due sostanziali differenze tra il WIFI e la seriale. Non tutti i moduli sono in grado di trasmettere/ricevere i dati inviato con la seriale...la codifica manchester è fatta esclusivamente per 'adattare' i segnali, se non è chiaro ne parliamo meglio. Il PPTEA quindi invia i dati codificati solo con i comandi WIFI ....ma devi avere un modulo in ricezione che sia PPTEA (il pacchetto e la checksum la gestisce da solo...tu non devi fare nulla...se il pacchetto arriva vuol dire che è ok)...altrimenti devi usare la seriale come hai fatto. Ma a questo punto la domanda è : il modulo che utilizzi è in grado di trasmettere un dato seriale? Hai le specifiche che gli diamo un'occhiata? Posso mettere mano al tuo codice per ottimizzare lo spazio....visto che non hai la memoria esterna? Ciao Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | ElettroshockNow
| Inviato il: 21/1/2013,22:49
|
Carta bianca per la dieta .
Pensavo .....invece di rilevare il picco e poi ricavare l'efficace,potrei provare a fare l'integrale con una resistenza ed un condensatore prima del PPTEA !!!
Che dici può funzionare? Ora vado.....me tocca lavorare .........
Ciao e grazie
| | | | NonSoloBolleDiAcqua
| Inviato il: 22/1/2013,05:55
|
Questo dovrebbe essere il tuo modulino: Link.
Qui c'è spiegata la seriale e la codifica Manchester che genera una transizione ad ogni valore...necessaria su alcuni moduli per far transitare i dati...sarà in grado il tuo boost a trasmettere un dato seriale?
CITAZIONE Che dici può funzionare?
si, sempre se non ho capito cosa vuoi fare...ma non ho capito se hai un oscilloscopio.
Sono entrato solo a livello di codice....senza fare una vera e propria analisi che faremo dopo insieme.
01 ' POWERMETER WIRELESS V1.0
02 ' PIN 2 -> CADS1 -> Lettura corrente Prodotta
03 ' PIN 3 -> CADS2 -> Lettura corrente Assorbita
05 CONSTANT BIT_LED = 4 'Led segnalazione
10 CONSTANT ADR1 = 125 ' INDIRIZZO TRASMITTENTE
15 CONSTANT ADR2 = 250 ' INDIRIZZO TRASMITTENTE
20 SETIO=&H4000F 'BIT0-1-2-3 = INGRESSI IL RESTO USCITE
30 SERIALSPEED = 160 ' VELOCITA RS232 = 4800
40 'CADS=2 ' ISTRUZIONE INUTILE PER DEFAULT SI UTILIZZANO 3 CADS
100 :MAIN CLR PMAX, AMAX, N
130 N++
140 P=CADS1
150 IF PTHEN 170
160 PMAX=P
170 A=CADS2
180 IF ATHEN 200
190 AMAX=A
200 IF N<200 THEN 130
300 'DIVISIONE VALORI INGRESSO IN DUE BYTE
310 P1=PMAX AND 255
320 P2=PMAX AND 768
330 P2=P2/256
340 A1=AMAX AND 255
350 A2=AMAX AND 768
360 A2=A2/256
400 ' PROTOCOLLO COMUNICAZIONE
401 ' (INDIZIZZO(2BYTE))+(DATOP(2BYTE)+(DATOA(2BYTE)+CKS(1BYTE)
430 CKS=(ADR1+ADR2+P1+P2+A1+A2)/6 'CHECKSUM
500 OUTBIT(BIT_LED)=TRUE 'LED SEGNALAZIONE TX = ON
501 SERIALOUT = 0
510 SERIALOUT = ADR1 'INDIRIZZO
520 SERIALOUT = ADR2 'INDIRIZZO
530 SERIALOUT = P1
540 SERIALOUT = P2
550 SERIALOUT = A1
560 SERIALOUT = A2
570 SERIALOUT = CKS
580 WAITMS 150
590 OUTBIT(BIT_LED)= FALSE ' LED SEGNALAZIONE TX = OFF
1020 WAITS 1
1030 GOTO :MAIN
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | ElettroshockNow
| Inviato il: 22/1/2013,13:57
|
La soluzione vien di notte con le scarpe tutte rotte ....ah no quella è la befana vabbè!!
Torniamo a bomba (mi vien in mente Brumotti.....vabbè di nuovo)....come dicevo la soluzione era sotto il mio naso ...
Innanzi tutto ho aperto la discussione per cercare di far leggere al quel benedetto di un sensore le correnti alternate ,ma solo durante i test mi son reso conto che sbagliavo misurandoi picchi di tensione ,in quanto molti regolatori elettronici regolano tagliando la semionda ,quindi i picchi restano piu o meno invariati .... Allora dopo numerose prove ho partorito.... Bastava leggere l'ingresso piu volte (piu è veloce il PPTEA e meglio è ....BOLLE IL TRUCCHETTO? ) e fare la media ....semplice è quindi ecco il risultato :
100 :MAIN CLR PMED, AMED, N 130 N++ 140 P=CADS1 150 IF P<515 THEN 170 160 PMED=PMED+(P-512) 170 A=CADS2 180 IF A<515 THEN 200 190 AMED=AMED+(A-512) 200 IF N<400 THEN 130 210 PMED=PMED/400 220 AMED=AMED/400
Ora và che è una meraviglia .....Ciao Domani Fabbro!!!!!!!!speriamo che non piove!!
CITAZIONE 40 'CADS=2 ' ISTRUZIONE INUTILE PER DEFAULT SI UTILIZZANO 3 CADS
CITAZIONE si, sempre se non ho capito cosa vuoi fare...ma non ho capito se hai un oscilloscopio. No sò poverello!
X Bolle .....come fai a trasferire il codice sul forum con tanto di colori ?? Only per curiosità
| | | | NonSoloBolleDiAcqua
| Inviato il: 22/1/2013,14:27
|
CITAZIONE piu è veloce il PPTEA e meglio è ....BOLLE IL TRUCCHETTO? istruzione CADSEQ ...
CITAZIONE No sò poverello! Sempre lo stesso !
CITAZIONE X Bolle .....come fai a trasferire il codice sul forum con tanto di colori ?? Solo se accetti la mia proposta... Bolle PS:Non ho ben capito se hai fatto fungere il modulino aurel....secondo me non ce la fa con la seriale...oppure tu lo hai già utilizzato e funge con la seriale diretta?
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | ElettroshockNow
| Inviato il: 22/1/2013,14:53
|
CITAZIONE OscilloscopioPPTEA il mio regalo di Natale Grazie...
!!!!!!!Mica ho capito come usarlo....450 :ULT_VAL CADSEQ(V,1,VBT,40)
CITAZIONE PS:Non ho ben capito se hai fatto fungere il modulino aurel....secondo me non ce la fa con la seriale...oppure tu lo hai già utilizzato e funge con la seriale diretta?
In molti miei progetti invio direttamente in seriale preoccupandomi di inviare un byte con valore 0 come start . Funziona fino a 4800 con moduli di qualità (ess Aurel) mentre per le cineserie questo metodo si ferma a 2400 .....Ciao. Quando devo fare distanti link vado anche io di codifica manchester o uso la libreria virtualwire,ma in questo caso i due micro conoscono in comune solo la seriale!! Appena posso attiverò la wifi sul pptea e faro una libreria per l'arduino per avere un super link
| | | | ElettroshockNow
| Inviato il: 22/1/2013,16:07
|
CITAZIONE !!!!!!!Mica ho capito come usarlo....450 :ULT_VAL CADSEQ(V,1,VBT,40) Ora ho capito .....creo un vettore ci metto dentro una quantità di letture che voglio con un intervallo che stabilisco ,it's fantastic
nel mio caso però non lo posso usare perchè devo raddrizzare digitalmente (non ci avevo mai pensato ...un diodo software) quindi sono obbligato per ogni lettura controllare se mi trovo sulla semionda positiva o negativa e successivamente fare la media .......almeno che non ci sia un'altra soluzione . Ciao
100 :MAIN CLR PMED, AMED, N 130 N++ 140 P=CADS1 150 A=CADS2 160 IF P<512 THEN 180 170 PMED=PMED+(P-512) 180 IF A<512 THEN 200 190 AMED=AMED+(A-512) 200 IF N<400 THEN 130 210 PMED=PMED/400 220 AMED=AMED/400
| | | | NonSoloBolleDiAcqua
| Inviato il: 22/1/2013,21:53
|
CITAZIONE (ElettroshockNow @ 22/1/2013, 14:53) Funziona fino a 4800 con moduli di qualità (ess Aurel) mentre per le cineserie questo metodo si ferma a 2400 Buono a sapersi.Per curiosità...che distanza riesce a coprire il tuo boost? Il manuale dice fino a 10km in linea d'aria.... Vero?
CITAZIONE (ElettroshockNow @ 22/1/2013, 16:07) nel mio caso però non lo posso usare perchè devo raddrizzare digitalmente (non ci avevo mai pensato ... un diodo software) quindi sono obbligato per ogni lettura controllare se mi trovo sulla semionda positiva o negativa e successivamente fare la media .......almeno che non ci sia un'altra soluzione . La soluzione è li (lo la)...cmq non chiederlo a me...io faccio l'elettricista!
Quando salvi un file con il pptea, il compilatore genera dei file intermedi...che non so a cosa servano...ma uno ha estensione rtf...aprilo con word, etc..etc... e prova a vedere cosa c'è all'interno. PS:Hai accettato implicitamente la proposta? Se si canto come Claudio Villa...
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | | | | NonSoloBolleDiAcqua
| Inviato il: 24/1/2013,00:25
|
Purtroppo oggi sono stanco...mucho stanco...domani sarà ancora peggio...ma se trovo 5 minuti rispondo meglio al li (lo la). Cmq il discorso è ...il PPTEA è lento (500 us ad istruzione) ...quindi non può vedere la sinusoide....ma con quella istruzione gli fai memorizzare in un solo colpo n valori....poi con tutta la calma che hai fai i tuoi calcoli...raddrizzi...spiani...positivi negativi...e chi più ne ha più ne metta...sempre se ho capito il tuo dubbio.
c'è la luce.... ... e il colore Ciao Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| |
| | |
|
Versione Mobile!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|