Applicazioni E Realizzazioni Pratiche
Homemade Inverter "modulo DC/AC"

VISUALIZZA L'ALBUM

Pag: (167)  < ...  89   90   91   [92]   93   94   95  ...>    (Ultimo Msg)


FinePagina

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 25/03/2015 12:46:39

O appena trovato anche questo programmino può essere utile?

Scarica allegato

Smart Sine.zip ( Numero download: 239 )



---------------
Il niente è impossibile finchè non ci provi!!!


 

BellaEli

Avatar
GigaWatt


MODERATORE
Msg:3286

Stato:



Inviato il: 25/03/2015 12:51:28


CITAZIONE

per la semionda positiva, ma per la negativa dobbiamo mettere sempre nella stessa tabella -13,-200,-13?o come?


Il valore del PWM deve essere un valore positivo, non puoi utilizzare -13 o -200.

A dire il vero a me non sembra una buona idea far funzionare il piedino della semionda negativa in logica negata, mi sembra più semplice gestire alternativamente l'attivazione del PWM sul relativo piedino da codice.

E per questo che credo che basti un solo vettore, ma al momento non so risponderti...

Devo completare gli studi, crearmi una mappa mentale di ciò che voglio fare e buttare giù un po di codice per vedere qual'è la soluzione migliore...



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!






 

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 25/03/2015 12:56:53

Ok BellaEli ti ringrazio per l'impegno mostratomi. Ti aspetto perche per il momento sono bloccato è non so piu come procedere... A presto alloraa con gli aggiornamenti.......



---------------
Il niente è impossibile finchè non ci provi!!!


 

BellaEli

Avatar
GigaWatt


MODERATORE
Msg:3286

Stato:



Inviato il: 25/03/2015 13:03:12

E' simpatico il programmino linkato, fa la stessa cosa del mio foglio Excel (appena comparato i valori è sono identici) solo che si appoggia a NetFramwork.

C'è una cosa che forse è più corretta nel programma rispetto al mio foglio Excel: lui non considera l'ultimo valore della serie, poichè corrisponde all'inizio del nuovo ciclo.

Magari modificherò il file Excel...

Infine nel programma c'è anche l'offset, anche se non so a cosa possa servire, tuttavia implementarlo non è un problema...



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!






 

BellaEli

Avatar
GigaWatt


MODERATORE
Msg:3286

Stato:



Inviato il: 25/03/2015 13:21:19

Ecco il nuovo file aggiornato:
1) Eliminato l'ultimo valore;
2) Aggiunta gestione dell'offset.

Se c'è bisogno di altro sono qui...

Nota:
Rev. 3: Apportata piccola modifica ai titoli del grafico...

Scarica allegato

Sinusoide.Xlsx ( Numero download: 188 )



Modificato da BellaEli - 25/03/2015, 13:24:27


---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!






 

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 25/03/2015 13:21:43

caspita ooo con quale semplicità risolvi le cose.. Ci avrò perso 5 giorni su you tube ed excel per riuscire a capire come fare e senza avere i risultati....



---------------
Il niente è impossibile finchè non ci provi!!!


 

BellaEli

Avatar
GigaWatt


MODERATORE
Msg:3286

Stato:



Inviato il: 25/03/2015 13:30:58

Correzione piccoli errori: Rev. 04

Scarica allegato

Sinusoide.Xlsx ( Numero download: 181 )



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!






 

BellaEli

Avatar
GigaWatt


MODERATORE
Msg:3286

Stato:



Inviato il: 25/03/2015 14:53:23

Aggiunta Tabellina per i Calcoli.

Rev. 05

Scarica allegato

Sinusoide.Xlsx ( Numero download: 193 )



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!






 

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 25/03/2015 15:49:45

CITAZIONE (BellaEli, 25/03/2015 14:53:23 ) Discussione.php?55031252&92#MSG1407

Aggiunta Tabellina per i Calcoli.

Rev. 05


Questo è il TOP!



---------------
Il niente è impossibile finchè non ci provi!!!


 

BellaEli

Avatar
GigaWatt


MODERATORE
Msg:3286

Stato:



Inviato il: 25/03/2015 20:20:42

Rev. 06:
- Aggiunta Cella contenente i valori da copiare e incollare sul codice;
- Correzione piccoli errori (nelle descrizioni).

Giocherellando con il foglio, mi sono accorto che se si vogliono ottenere dei valori simmetrici occorre impostare un numero di campioni pari !

Esempio:
10 Campioni: 0, 235, 380, 380, 235, 0
11 Campioni: 0, 216, 364, 396, 302, 113 (Prossimo -113)

Come si vede, con un numero pari di campioni i primi 3 valori sono simmetrici rispetto ai secondi 3.
Utilizzando un numero di campioni dispari, giustamente i primi 3 campioni non sono simmetrici rispetto ai secondi 3 !!!

Scarica allegato

Sinusoide.Xlsx ( Numero download: 193 )



Modificato da BellaEli - 25/03/2015, 20:28:30


---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!






 

ElettroshockNow

Avatar
GigaWatt


Utente
Msg:4656

Stato:



Inviato il: 25/03/2015 20:39:59

....

 

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 26/03/2015 13:28:49

BellaEli forse è la volta buona che dici?

-TOP CODE-

-BOTTOM CODE-



Modificato da NonSoloBolleDiAcqua - 04/09/2015, 11:16:09


---------------
Il niente è impossibile finchè non ci provi!!!


 

BellaEli

Avatar
GigaWatt


MODERATORE
Msg:3286

Stato:



Inviato il: 26/03/2015 23:29:06


CITAZIONE

BellaEli forse è la volta buona che dici?


Assolutamente NO !!!!!



Comunque i post si modificano per aggiungere qualche "h" non per modificare il codice...


Vediamo un po' di correggere qualche errore...

CITAZIONE
TCCR1A = (1 << COM1A1)|(1 << COM1B1)|(1 << COM1B0);
TCCR1A = (1 << WGM11);


Non sono particolarmente esperto sulla sintassi ma, a occhio, la seconda riga annulla e sostituisce la prima !

La sintassi corretta dovrebbe essere la seguente:

TCCR1A = (1 << COM1A1) | (1 << COM1B1) | (1 << COM1B0) | (1 << WGM11);

Tutto su un'unica riga.

La correzione riguarda solo la sintassi, il contenuto della formula ancora non so giudicarlo...


CITAZIONE
OCR2A = 8; // con 8 il timer scatta ogni 4 mICROs circa */


Vuoi dire che intendi campionare ogni 4 µS ???

Direi che il micro scelto non è capace di andare così veloce... in ogni caso dovresti usare un vettore da 2.500 elementi, non 250 !

Per iniziare, credo che non dobbiamo scendere sotto i 50 µS.

Ora vediamo di correggere la struttura del codice...

Il codice postato serve a correggere solo gli errori concettuali, non so ancora se ci sono errori sui registri, ok ?

-TOP CODE-

-BOTTOM CODE-


Ora vediamo se le tue idee si schiariscono un po'...

Ciao !



Modificato da BellaEli - 27/03/2015, 01:03:49


---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!






 

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 27/03/2015 06:36:26


CITAZIONE

Vediamo un po' di correggere qualche errore...

CITAZIONE
TCCR1A = (1 << COM1A1)|(1 << COM1B1)|(1 << COM1B0);
TCCR1A = (1 << WGM11);


Non sono particolarmente esperto sulla sintassi ma, a occhio, la seconda riga annulla e sostituisce la prima !


sono pienamente d'accordo, ma pultroppo era l'unico modo per farmi postare il codice, dopo mi sono accorto che il problema erano questi segni << che messi attaccati senza lo spazio a WGM11 quando postavo mi cancellava l'intera riga..

CITAZIONE
Vuoi dire che intendi campionare ogni 4 µS ???


Ma 10/250= 0,04 che corrispondono a 4 microsecondi o no?
No è vero ho sbagliato la conversione sono 40micro!
Quindi sarà 16000000/8=2000000; 1/2000000=0,5; 40/0,5=80;

CITAZIONE

ISR (TIMER2_COMPA_vect){

if (Indice < 250) {
OCR1A = pgm_read_byte(&onda[Indice]);
}
else {
OCR1B = pgm_read_byte(&onda[Indice - 250]);
}

Indice++;

if (Indice > 499) {
Indice = 0;
}

}



Ma quindi OCR1A dovrà eseguire l'indice da > 0 a 250 e invece OCR1B dovrà < da 250 a 0?E giusto?
Io pensavo che OCR1A va da >0 a 250 , poi l'indice di nuovo a 0, OCR1B da >0 a 250.

CITAZIONE
Ora vediamo se le tue idee si schiariscono un po'...


Speriamo di si BellaEli sta diventando piu complicato di quanto pensassi!
A presto



---------------
Il niente è impossibile finchè non ci provi!!!


 

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 27/03/2015 07:07:21


CITAZIONE

if (Indice > 499) {
Indice = 0;


Perche 499?

Perche incrementa da
0>249
250>499

??



---------------
Il niente è impossibile finchè non ci provi!!!


 
 InizioPagina
 

Pag: (167)  < ...  89   90   91   [92]   93   94   95  ...>    (Ultimo Msg)

Versione Completa!

Home page     TOP100-SOLAR    Home page forum