EnergiAlternativa

Page Index Toggle Pages: 1 ... 88 89 [90] 91 92 ... 219 Send TopicPrint
Very Hot Topic (More than 500 Replies) Homemade Inverter (Read 1257037 times)
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1335 - 16.03.15 at 15:43:51
Print Post  
Ok BellaEli si si vai tranquillo io anche continuo a sperimentare..

Grazie del consiglio, ma fa conto che sono quasi 8 ore al giorno a contatto con tensioni monofase e trifase (sarebbe il colmo per un elettricta morire in casa) comunque sempre massima prudenza...
  
Il niente è impossibile finchè non ci provi!!!
Back to top
 
IP Logged
 
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1336 - 16.03.15 at 16:03:31
Print Post  
int t=1; //tempo di campionamento


BellaEli secondo me è anche questo il problema, come faccio a dirgli al programma che la variabile t è un secondo? Devo scrivere 1 o 1000?
  
Il niente è impossibile finchè non ci provi!!!
Back to top
 
IP Logged
 
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1337 - 17.03.15 at 07:05:33
Print Post  
CITAZIONE (ElettroshockNow, 16/03/2015 16:03:31 ) Quote:


Quindi 15665/50 = 313 .... Wink

Un'onda completa a 50Hz sarà composta da 313 periodi della frequenza pwm a 15665Hz ....



Elettro scusami ancora, ma mi sfugge quest'altro particolare. Tu con 313 periodi intendi dire una tabella che vada da 0 a 200 suddivisa in 313 punti?
  
Il niente è impossibile finchè non ci provi!!!
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:Homemade Inverter "modulo DC/AC"
Reply #1338 - 17.03.15 at 08:18:09
Print Post  
No intendo da 0 a 313 ....

In pratica ad ogni periodo della 15Khz si cambia il duty secondo la tabella  .
E se la tabella varia in sinusoidale in 313 passi  avrai in uscita 50Hz sinusoidali (in continua)

Così facendo possiamo usare il solo Timer1 , ma ci obbliga una frequenza fissa (ma a noi Smiley ).
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1339 - 17.03.15 at 09:12:43
Print Post  
Elettro so che con tutte queste domande inizio a scocciare, ma sono un po tonto...

Creo una tabella che invece di arrivare a 200 deve arrivare a 313(qui la mia prima confusione, molti  post indietro mi ricordavo che il massimo che si puo arrivare è 256, ma di rimanere a 200 per avere la possibilità di variare in base al feedback senza distorcere l'onda).. Ok sempre se ho capito bene creando la tabella da 313 passi si ha la possibilità di usare un solo timer1, quindi non potrò piu usare timer0 per gl'interrupt(dovro trovare un'altro sistema per ricreare gl'interrupt?).

Se invece lascio cosi comè timer0 per gl'interrupt e timer1 per il pwm quanti passi massimi nella tabella posso raggiungere?
  
Il niente è impossibile finchè non ci provi!!!
Back to top
 
IP Logged
 
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1340 - 17.03.15 at 10:25:34
Print Post  
Stavo facendo un po di calcoli,vedendo il tuo video tu ai un campionamento di 250microse, quidi se il calcolo è giusto 40ms/0,250 = 160 periodi circa nella semionda positiva e altri 160 in quella negativa è giusto?
  
Il niente è impossibile finchè non ci provi!!!
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:Homemade Inverter "modulo DC/AC"
Reply #1341 - 17.03.15 at 11:30:34
Print Post  
CITAZIONE (inverter90, 17/03/2015 10:25:34 ) Quote:
Elettro so che con tutte queste domande inizio a scocciare, ma sono un po tonto...

Creo una tabella che invece di arrivare a 200 deve arrivare a 313(qui la mia prima confusione, molti  post indietro mi ricordavo che il massimo che si puo arrivare è 256, ma di rimanere a 200 per avere la possibilità di variare in base al feedback senza distorcere l'onda).. Ok sempre se ho capito bene creando la tabella da 313 passi si ha la possibilità di usare un solo timer1, quindi non potrò piu usare timer0 per gl'interrupt(dovro trovare un'altro sistema per ricreare gl'interrupt?).

Se invece lascio cosi comè timer0 per gl'interrupt e timer1 per il pwm quanti passi massimi nella tabella posso raggiungere?



La tabella è un Array o vettore (Sul sito di Arduino ci sono diversi esempi).

Esempio:

Di seguito il vettore sine256 avente 10 elementi (numero step)

PROGMEM prog_uchar sine256[] =
{
1,2,3,4,5,6,7,8,9,10)


Ma possono essere 100 ... 200 ... 313 .....ecc .. ecc ...ecc

e contenere quello che a te serve (valori duty)

PROGMEM prog_uchar sine256[] =
{
0,100,200,250,200,100,7,8,200,150)



Il numero di elementi (200 o 313 o quello che ti pare) determina la campionatura dell'onda ,cioè di quante fette vuoi tagliare la tua onda.
Di conseguenza devi cadenzare gli step per ottenere una frequenza.

Se la cadenzi a 100microS e la tabella di un'onda intera è composta da 200 elementi otterai 200*0.0001 = 0.02 Sec ==== 1/0.02= 50Hz

In questo caso dovrai necessariamente usare un secondo timer per creare la cadenza di 100microS


La mia proposta invece è :
-visto che abbiamo la possibilità di avere un interrupt di OVF dal timer che già usiamo e vale circa  1/15655 = 64microS
allora possiamo usarlo per cadenzare la variazione di duty ...
Ma se lascio la tabella composta da 200 step (elementi) otterrei in uscita una frequenza di : 1/(0.000064*200)= 78Hz

Allora la soluzione sarebbe una tabella da 313Step e quindi:
1/(0.000064*313)= 50Hz


Chiarito il discorso numero elementi ...andiamo a cosa sono gli elementi..

All'interno della tabella devi inserire l'andamento dell'onda
esempio:
int onda[] = {0,0,200,200};

Ho creato un vettore composto da 4 elementi che mi consentiranno di avere 4 step e un andamento a forma quadra

int onda[] = {0,200,0,200};
Anch'esso creerà una forma quadra ...

I valori al suo interno devono essere compatibili con il tipo di gestiono pwm .


Se ad esempio usi il classico Arduino l'istruzione:

analogWrite(pin, valore) dovrai usare un valore compreso da 0 a 255 (vedi LINK )

Se invece usi un Fast Pwm 9bit potrai usare valori compresi da 0 a 9bit .... quindi da 0 a 511 ...
Se invece usi un Pwm a 10bit potrai usare valori da 0 a 10bit ...quindi da 0 a 1023 ..

la mia potrebbe essere cosi'
int onda[] = {0,500,0,500}; ... perchè uso un pwm a 9 bit

Spero di averti chiarito ...

Sperimenta codici più semplici per prendere dimestichezza con la programmazione.
Collega un led e fallo lampeggiare giocando con i timer e le tabelle ...
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:Homemade Inverter "modulo DC/AC"
Reply #1342 - 17.03.15 at 11:31:37
Print Post  
CITAZIONE (inverter90, 17/03/2015 11:30:34 ) Quote:
Stavo facendo un po di calcoli,vedendo il tuo video tu ai un campionamento di 250microse, quidi se il calcolo è giusto 40ms/0,250 = 160 periodi circa nella semionda positiva e altri 160 in quella negativa è giusto?


20ms/0,250 = 80 [strike]periodi[/strike] campionamenti ,di cui 40 nella semionda positiva e 40 nella negativa
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1343 - 17.03.15 at 11:50:44
Print Post  
Grazie grazie:clap.gif: con queste risposte mi ai pienamente chiarito il concetto della campionatura......Cheesy
  
Il niente è impossibile finchè non ci provi!!!
Back to top
 
IP Logged
 
BellaEli
Ex Member
****


--------

Gender: Male
Zodiac sign: Leo
Re:Homemade Inverter "modulo DC/AC"
Reply #1344 - 18.03.15 at 14:31:58
Print Post  
Ciao a tutti, avrei qualche domanda per Elettro:

nelle ultime 2/3 pagine hai scritto dei post che all'inizio mi sono parsi poco comprensibili, in seguito hai chiarito alcuni miei dubbi aggiungendo ulteriori dettagli.

Per esempio in prima battuta non avevo afferrato il concetto dei 313 elementi, chiarito poi nei post successivi.

Tuttavia c'è un post che mi è rimasto oscuro, lo riporto:

Quote:
...
Se si analizzano i modi di funzionamento dei timer (tabelle postate da Inverter90) possiamo vedere che il timer si resetta ad un valore preimpostato o scelto dall'utente.

Nel caso "pwm, phase correct 9bit " il valore e' 511 (0x1FF) , ma in altri è OCR ....

Significa che la frequenza in uscita (o il timer) avrà una frequenza pari a :16000000/prescaler/OCR (il diviso 2 non va' messo se il timet si resetta solo sul fronte di salita) .

A questo punto si sceglie il prescalet giusto per avvicinarsi ai 50Hz e si fa' una regolazione fine con l'OCR ....

La risposta alla tua domanda è OCR , oppure fat ripetere uno step pwm o saltare uno step pwm, ottenendo appunto una variazione di fase di 1/200esimo di periodo.

Differenza tra i due metodi di rifasamento:
-nel primo caso non introduco distorsione ,ma vario la frequenza
-nel secondo introduco distorsione , ma non vario la frequenza .

Quale sia il migliore ?
Bo!!!!
...


Continuo a non capire a quale funzionamento si riferiscono i due metodi e, in ogni caso, perchè mai uno dovrebbe utlizzare il secondo visto che non varia la frequenza ed introduce distorsione !!!

Inoltre, ipotizzando di utilizzare un vettore di 313 elementi, non mi sembra che hai menzionato un metodo per poter aumentare/diminuire la frequenza dei 50 Hz di qualche decimo di Hz...



P.S. inverter90, nell'ultimo post, l'"h" ci voleva !!!


A presto, Eligio.
  
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:Homemade Inverter "modulo DC/AC"
Reply #1345 - 18.03.15 at 15:00:21
Print Post  
I 50Hz li possiamo ottenere :
-Utilizzando due timer e un vettore a scelta (100 200 300) , sarà il secondo timer che cadenza il cambio di duty
-Utilizzando un timer , ma con l'obbligo di usare una tabella in funzione della frequenza pwm (nel caso dei 15Khz 313 elementi)


In entrambi i casi otteniamo in uscita 50Hz , ma nel secondo sfruttiamo al massimo la modulazione perché ad ogni periodo della 15Khz modifichiamo il duty (piccolo punto a favore)

Se dobbiamo a questo punto sincronozzare la nostra onda con quella della rete abbiamo due strade:
-si modifica leggermente la fequenza e su attende la fase
-si fanno saltare qualche elemento al vettore e si aspetta la fase

La variazione di frequenza senza inserire distrorsione è possibile solo nel primo caso , modificando OCR.

Invece saltare un elemento del vettore è possibile sia nel caso di due timer che di uno.

Personalmente preferisco il più completo e versatile , quindi il due timer
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1346 - 18.03.15 at 17:16:06
Print Post  
E si BellaEli quando è da mettere l'h non la metto Cheesy..
Comunque Elettro facendo la prova con i led  mi sto rendendo conto che non funziona niente:crash.gif::crash.gif: ..
Questo è il codice maledetto

#include "avr/pgmspace.h"
#include "avr/io.h"
#include <avr/interrupt.h>
PROGMEM prog_uchar sine256[] =
{
0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,
72,75,78,81,84,87,90,93,96,99,102,105,108,111,114,117,120,123,126,129,
132,135,138,141,144,147,150,153,156,159,162,165,168,171,174,177,180,183,
186,189,192,195,198,201,204,207,210,213,216,219,222,225,228,231,234,237,
240,243,246,249,252,255,258,261,264,267,270,273,276,279,282,285,288,291,
294,297,300,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,
348,351,354,357,360,363,366,369,372,375,378,381,384,387,390,393,396,399,
402,405,408,411,414,417,420,423,426,429,432,435,438,441,444,447,450,453,456,
459,462,465,465,462,459,456,453,450,447,444,441,438,435,432,429,426,423,420,
417,414,411,408,405,402,399,396,393,390,387,384,381,378,375,372,369,366,363,
360,357,354,351,348,345,342,339,336,333,330,327,324,321,318,315,312,309,306,
303,300,297,294,291,288,285,282,279,276,273,270,267,264,261,258,255,252,249,
246,243,240,237,234,231,228,225,222,219,216,213,210,207,204,201,198,195,192,
189,186,183,180,177,174,171,168,165,162,159,156,153,150,147,144,141,138,135,
132,129,126,123,120,117,114,111,108,105,102,99,96,93,90,87,84,81,78,75,72,
69,66,63,60,57,54,51,48,45,42,39,36,33,30,27,24,21,18,15,12,9,6,3,0
};



void setup() {


pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
TCCR1A =  (1 << COM1A1)
  

(1 << WGM21);
OCR2A = 64; //conta 32 microsecondi
TIMSK2 = (1 << OCIE2A);
sei();
}

void loop() {


}

ISR (TIMER2_COMPA_vect){


OCR1A = pgm_read_byte_near(sine256);
delay(10);
OCR1B = pgm_read_byte_near(sine256);
delay(10);




}

Praticamente il led rimane fisso senza eseguire i valori duty della tabella.:(

Altra cosa i led ne funziona solo uno cioè pin 10. Il collegamento è pin 10/gnd e fin qui ci siamo (Attachment deleted)
la cosa strana è che pin9/gnd non va (Attachment deleted)
ma se metto pin9/5v funziona quindi al contrario.
Ricapitolando controllo pwm assente (Attachment deleted)
pin 9 al posto di avere +5v ho gnd e l'istruzione delay non funziona.
Se Hai ancora pazienza di spiegarmi l'errore ti sarei ancora una volta grato... (Attachment deleted)
Il niente è impossibile finchè non ci provi!!!
Back to top
 
IP Logged
 
BellaEli
Ex Member
****


--------

Gender: Male
Zodiac sign: Leo
Re:Homemade Inverter "modulo DC/AC"
Reply #1347 - 18.03.15 at 18:46:36
Print Post  
Quote:
Se Hai ancora pazienza di spiegarmi l'errore ti sarei ancora una volta grato...


No, no, nessun errore, l'"h" ci voleva...
Tongue Tongue Tongue


Il problema è che ci sono troppi errori nel tuo codice, va rivisto tutto non solo un'istruzione...

Sto leggendo la guida indicata da Elettro, sono arrivato a pagina 30, fammi finire in modo che posso districarmi con i Timer e tutto il codice lo rivediamo insieme...
  
Back to top
 
IP Logged
 
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1348 - 18.03.15 at 19:07:40
Print Post  
Ok BellaEli io sono arrivato a pag.62, ma dai rusultati ottenuti misa che non ciò capito niente.. :wacko: Toccherà ripartire da pag.1..
Si c'e poco da fare ti aspetto con grande ansia a presto allora:D
  
Il niente è impossibile finchè non ci provi!!!
Back to top
 
IP Logged
 
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1349 - 20.03.15 at 17:34:04
Print Post  
Una domanda per Elettro o BellaEli. Ho bisogno di togliermi questo dubbio.è normale avere sul pin 9 il positivo e sul pin 10 il negativo?Vuol dire che il timer sta funzionando bene?
  
Il niente è impossibile finchè non ci provi!!!
Back to top
 
IP Logged
 
Page Index Toggle Pages: 1 ... 88 89 [90] 91 92 ... 219
Send TopicPrint
 

TOP100-SOLAR Galleria Immagini EnergiAlternativa