EnergiAlternativa

Page Index Toggle Pages: 1 ... 96 97 [98] 99 100 ... 219 Send TopicPrint
Very Hot Topic (More than 500 Replies) Homemade Inverter (Read 58174 times)
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:Homemade Inverter "modulo DC/AC"
Reply #1455 - 31.03.15 at 14:48:03
Print Post  
CITAZIONE (BellaEli, 31/03/2015 14:42:52 ) Quote:
Ho dei dubbi solo sull' else indice++


Nono perfetto ...mia colpa .
Io di solito incremento e poi controllo ,pardon
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
https://www.romeoegiuliettaeventi.com
Back to top
YouTube  
IP Logged
 
BellaEli
Ex Member
****


--------

Gender: Male
Zodiac sign: Leo
Re:Homemade Inverter "modulo DC/AC"
Reply #1456 - 31.03.15 at 15:06:57
Print Post  
Un'alternativa potrebbe essere campionare a 62,5 µS (320 Campioni per sinusoide), con valori di PWM che andrebbero da 0 a 1.000 e una frequenza PWM di 16 kHz.

Che dici ? Meglio 40 µS con PWM 25 kHz o 62,5 e 16 kHz ?

O devo cercare una via di mezzo ?

Con il metodo implementato nel codice posso scegliere qualsiasi valore...
  
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 #1457 - 31.03.15 at 15:19:37
Print Post  
Io andrei a 16Khz ... mi piace pure come numero Smiley
  

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


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1458 - 31.03.15 at 15:37:11
Print Post  
Quote:
Poichè io voglio ottenere un campionamento di 40 µS, quanti cicli da 62.5 nS occorrono per arrivare a 40 µS ?


Ok quindi ICR1 è l'equivalente di OCRxA in modalità CTC, compara il numero di ICR1 con TCNT1 e quando sono identici scatta l'interrupt..

un'altro mezzo punto mi è oscuro,ad esempio phase correct9 bit massimo valore è 511, fast pwm 9bit 511, invece il fast pwm che stai utilazzando qual'e il massimo valore?
  
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 #1459 - 31.03.15 at 19:08:47
Print Post  
Quote:
Ok quindi ICR1 è l'equivalente di OCRxA in modalità CTC, compara il numero di ICR1 con TCNT1 e quando sono identici scatta l'interrupt..


Esatto...

Quote:
un'altro mezzo punto mi è oscuro,ad esempio phase correct9 bit massimo valore è 511, fast pwm 9bit 511, invece il fast pwm che stai utilazzando qual'e il massimo valore?


ICR1 è a 16 Bit, quindi il massimo è: 65.535 !
  
Back to top
 
IP Logged
 
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1460 - 31.03.15 at 21:15:18
Print Post  
65.535?aspetta mi sto impallando scusa le troppe domande deficienti che pongo, ma se non sono sicuro inutile andare avanti; ricapitolando, quindi per avere un duty al 100% sulle uscite ocr1x sarà 65.535? E a 1000 a che percentuale duty siamo?
  
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 #1461 - 31.03.15 at 21:24:33
Print Post  
Quote:
65.535?aspetta mi sto impallando scusa le troppe domande deficienti che pongo, ma se non sono sicuro inutile andare avanti; ricapitolando, quindi per avere un duty al 100% sulle uscite ocr1x sarà 65.535? E a 1000 a che percentuale duty siamo?


Nono sei fuori strada...

Il valore del Timer1 (TCNT1) conterà da 0 a ICR1 (1.000)

A ICR1 (1.000) genera l'overflow e chiama la ISR, resettando TCNT1 a "0".

ICR1 lo puoi impostare tra 2 e 65.535.

OCR1x lo puoi impostare tra 0 e ICR1 (1.000 nel nostro caso).

Impostando OCR1A a 500 con ICR1 a 1.000 avrai un DutyCycle al 50%.

Impostando OCR1A a 1.000 con ICR1 a 65.535 avrai un DutyCycle pari a:

65.535 : 100% = 1000 : X%

X = 100*1000/65.535 = 1,53% circa

Ok ?
  
Back to top
 
IP Logged
 
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1462 - 31.03.15 at 21:42:07
Print Post  
ok ok stavo facendo confusione perche mi stavo basando sulle altre modalità a valori fissi dimenticando che FastPWM ISR decidiamo noi frequenza e duty, quindi se noi ad esempio impostiamo un valore ISR 2000 il duty su OCR1X sarà da 0 a 2000 quindi 1000 sarà 50%..
  
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 #1463 - 01.04.15 at 00:00:10
Print Post  
Allora ragazzi,

ora che abbiamo una base di partenza possiamo iniziare ad aggiungere i vari pezzi di codice per ampliare le funzionalità del nostro firmware...

Prima di proseguire, riepiloghiamo  i dati di partenza:

- Onda campionata ogni 62,5 µS con 320 campioni per sinusoide (16.000 campioni al Secondo);

- Frequenza di uscita di 50,00 Hz, regolabile linearmente in un range compreso tra 45,00 e 55,00 Hz circa, con una risoluzione di circa 0,05 Hz;

- Frequenza PWM centrale di 16.000 Hz, che varia, in funzione della frequenza dei 50 Hz, da circa 14,40 kHz a circa 17,60 kHz;

- Risoluzione PWM di 1.000 valori (variabili in funzione dei 50 Hz da 910 a 1.110);

- Algoritmo DeadTime-Free (DeadTime nel passaggio per lo 0 > 30 µS);

- Uscite PWM (2 Pin) e segnali di abilitazione (altri 2 Pin, onda quadra a 50 Hz).

Mi sembra un ottimo inizio...

Ho un piccolo dubbio: come mai siamo rimasti solo in 3 a scrivere su questo topic ?
Possibile che l'argomento non interessa a nessuno  ?

Per il momento sto lavorando alla variazione della frequenza in uscita, appena pronto posterò il codice.

Per ogni suggerimento, critica, spiegazione, come sempre sono a disposizione !!!

Se continuiamo così faremo la scheda EAL001 (Energia ALternativa 001) !!!

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 #1464 - 01.04.15 at 00:32:43
Print Post  
Le 107000 visite dicono che questa discussione è interessante :lol:

La schedina è un bel obiettivo , alla nostra portata.
  

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


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1465 - 01.04.15 at 06:48:50
Print Post  
Quote:
Se continuiamo così faremo la scheda EAL001 (Energia ALternativa 001) !!!


Mi PIACE!!!!!

Quote:
- Onda campionata ogni 62,5 µS con 320 campioni per sinusoide (16.000 campioni al Secondo);

- Frequenza di uscita di 50,00 Hz, regolabile linearmente in un range compreso tra 45,00 e 55,00 Hz circa, con una risoluzione di circa 0,05 Hz;

- Frequenza PWM centrale di 16.000 Hz, che varia, in funzione della frequenza dei 50 Hz, da circa 14,40 kHz a circa 17,60 kHz;

- Risoluzione PWM di 1.000 valori (variabili in funzione dei 50 Hz da 910 a 1.110);

- Algoritmo DeadTime-Free (DeadTime nel passaggio per lo 0 > 30 µS);

- Uscite PWM (2 Pin) e segnali di abilitazione (altri 2 Pin, onda quadra a 50 Hz).


Caspita se ci riusciamo è veremente figo!!! Ma secondo voi è abbastanza stabile atmega328 per subire tutte queste sofferenze?Cheesy

Quote:
- Algoritmo DeadTime-Free


Ps. questa frase mi da energia....:clap.gif:
  
Il niente è impossibile finchè non ci provi!!!
Back to top
 
IP Logged
 
farstar1965
Ex Member
**


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1466 - 01.04.15 at 07:47:32
Print Post  
Questa discussione non è interessante, è interessantissima !
Mi raccomando continuate così.
Per capacità e poco tempo per studiare sono costretto a seguirvi solamente è inutile che intervenga, sporcherei solo il tread, ma seguo questa discussione dal primo post e ultimamente controllo piu volte al giorno se ci sono novita.
Siete fantastici andate avanti così che oltre a scrivere cose interessanti siete anche belli da leggere.
Questo è il mio contributo se vi venisse qualche dubbio in merito all'interesse per il tread.

Grazie, Marco
  
Più impari più ti rendi conto di quanto sei ignorante.
Back to top
 
IP Logged
 
NonSoloBolleDiAcqua
Ex Member
*****


--------

Gender: Male
Zodiac sign: Scorpio
Re:Homemade Inverter "modulo DC/AC"
Reply #1467 - 01.04.15 at 07:58:50
Print Post  
CITAZIONE (BellaEli, 01/04/2015 07:47:32 ) Quote:
Ho un piccolo dubbio: come mai siamo rimasti solo in 3 a scrivere su questo topic ?

Si legge...ma non è detto che si scriva!Smiley
  
Back to top
 
IP Logged
 
BellaEli
Ex Member
****


--------

Gender: Male
Zodiac sign: Leo
Re:Homemade Inverter "modulo DC/AC"
Reply #1468 - 01.04.15 at 13:17:32
Print Post  
Grazie a tutti mi fa piacere non siamo i soli... Pazzi !!!

Allora approfitto per chiedere qualche suggerimento...

Vediamo se riesco a spiegare...

Ipotizziamo che Timer conta da 0 a 1.000 e che a OCRx è settato a 500.

Fino a 500 il Pin di uscita è 5 V, a 501 va a 0 V.

Ora, per variare la frequenza (da 45 a 55 Hz) vario il valore 1.000, e ipotizziamo che lo imposto a 900

Tuttavia tale variazione non deve influenzare la % del DutyCycle che deve rimanere al 50%.

Quindi bisogna diminuire il valore 500 e portarlo a 450.

Tuttavia il valore 500 non è fisso ma varia ad ogni campionamento e tale valore corrisponde al contenuto del vettore.

Quindi devo trovare un coefficiente che mi mantenga costante il rapporto. Come lo trovo ?

k = 900 / 1.000 = 0.9

infatti moltiplicando

500 * k = 500 * 0.9 = 450

Fin qui tutto bene

Ma ora sorgono i problemi a cui non ho ancora trovato una soluzione...

Sappiamo che l'Atmega non dispone di una ALU per calcoli in virgola mobile, quindi il calcoletto sopra all'apparenza semplice impiega troppo tempo per essere inserito nella ISR.

Come risovere ?

Nell'impostazione di OCR1A abbiamo:

OCR1A = ICR1 - onda[Indice];

che dovrebbe diventare:

OCR1A = ICR1 - (onda[Indice] * k);

Ma onda è un intero, quindi dovrebbe essere prima trasformato in float, quindi:

OCR1A = ICR1 - float((onda[Indice]) * k);

Ma il risultato di "float((onda[Indice]) * k" deve essere di nuovo trasformato in int, quindi:

OCR1A = ICR1 - int(float((onda[Indice]) * k));

Così è corretto ma impiega troppo tempo...

Idee ? Suggerimenti ?

Mi vengono in mente idee troppo complicate, meglio vedere se si riesce a trovare una soluzione + sempplice...
  
Back to top
 
IP Logged
 
inverter90
Ex Member
****


--------

Gender: Male
Re:Homemade Inverter "modulo DC/AC"
Reply #1469 - 01.04.15 at 15:31:33
Print Post  
Qualcosa del genere è le stesso? 500*9=4500  4500/10=450
  
Il niente è impossibile finchè non ci provi!!!
Back to top
 
IP Logged
 
Page Index Toggle Pages: 1 ... 96 97 [98] 99 100 ... 219
Send TopicPrint
 

TOP100-SOLAR Galleria Immagini EnergiAlternativa