Se sei già registrato           oppure    

Orario: 08/05/2024 05:09:25  

 

Energia Alternativa ed Energia Fai Da Te > Applicazioni E Realizzazioni Pratiche

VISUALIZZA L'ALBUM

Pagine: (167)  < ...  79   80   81   82   83   84   85   86   87   88   [89]   90   91   92   93   94   95   96   97   98   99  ...>    (Ultimo Msg)


Homemade Inverter "modulo DC/AC"
FinePagina

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 15/03/2015 09:38:58

Cmq il corso è scritto bene ,ti consiglio di leggerlo senza saltare niente

 

inverter90

Avatar
MegaWatt


Gruppo:Utente
Messaggi:323

Stato:



Inviato il: 15/03/2015 09:40:40

Caspita voi sapete sempre darmi un ottima risposta per ciò che voglio sapere..

Sono contento di essermi inscritto su sto magnifico forum... Prima o poi andremo sulla luna anche cont atmega..



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

 

inverter90

Avatar
MegaWatt


Gruppo:Utente
Messaggi:323

Stato:



Inviato il: 15/03/2015 09:42:29

CITAZIONE (ElettroshockNow, 15/03/2015 09:40:40 ) Discussione.php?55031252&89#MSG1353

Cmq il corso è scritto bene ,ti consiglio di leggerlo senza saltare niente


Si si Elettro, ma essendo anche quello un nuovo mondo per me voglio associare quel poco che so con quello che leggo giusto per essere sicuro di quello che sto capendo...



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

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 15/03/2015 10:07:22

Vai di pratica .
Collega un led con resistenza da 1K sul pin OC1A e divertiti anche senza oscilloscopio facendolo prima lampeggiare con l'interrupt e poi variandogli la sua luminosità con il pwm ,magari con la tabella

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 15/03/2015 10:33:16

CITAZIONE (inverter90, 15/03/2015 10:07:22 ) Discussione.php?55031252&89#MSG1354

Sono contento di essermi inscritto su sto magnifico forum... Prima o poi andremo sulla luna anche cont atmega..

Fai passi da gigante ... me lo aspetto

 

inverter90

Avatar
MegaWatt


Gruppo:Utente
Messaggi:323

Stato:



Inviato il: 15/03/2015 10:39:03

Grazie Elettro in particolar modo a te e BellaEli della pazienza mostratami. Ok quella del led è una buona cosa per capire intanto se qualcosa funziona, ma prima voglio finire di studiare quel corso per capire ciò che andrò a fare..A presto allora con gli aggiornamenti



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

 

inverter90

Avatar
MegaWatt


Gruppo:Utente
Messaggi:323

Stato:



Inviato il: 15/03/2015 16:21:24

gentilmente Elettro mi puoi confermare quest'altra teoria se è piu meno giusta?

in base alle formule del corso ho capito questo. Per creare il nostro interrupt imposterò timer0 per conteggiare gli impulsi.sapendo che a una frequenza di 15625hz (prescaler 1024,ma sicuramente da cambiare per ottenere un numero intero) un impulso è 64us (1/15625).Noi vogliamo che scatti l'interrupt a 100us quindi faremo 100/64=1,5625 impulsi.. Sempre se questa teoria è giusta timer0 conterà 1,5625 impostando (OCR0A=1,5625) e richiamerà la funzione
ISR (TIMER0_COMPA_vect)
OCR1=PWM_OUT;

In questo caso noi dobbiamo impostare timer1 per il pwm e timer0 per gl'interrupt. Giusto o ancora sono fuori strada?Se è giusto timer1 sara pwm 9 bit phase correct e timer0 fast pwm normale?.. L'impostazione di timer 0 va nel void loop?



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

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 15/03/2015 16:34:21

Giusto ...
Meglio però per il timer0 il modo CTC

Altro piccolo suggerimento .....
Per far tornare numeri interi di OCR0A (che ti ricordo e' a 8bit quindi da 0 a 255) , puoi ridurre il prescaler e aumentare OCR0A .

 

inverter90

Avatar
MegaWatt


Gruppo:Utente
Messaggi:323

Stato:



Inviato il: 15/03/2015 16:45:07

O che ben inizio a vedere un po di luce



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

 

inverter90

Avatar
MegaWatt


Gruppo:Utente
Messaggi:323

Stato:



Inviato il: 15/03/2015 17:07:20

Ma c'e sempre qualche problema!!!
Se nella funzione
ISR (TIMER1_COMPA_vect){
OC1A=PWM_OUT;
}

Mi dice che OC1A non ha scopo...



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

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 15/03/2015 17:15:22

CITAZIONE (inverter90, 15/03/2015 17:07:20 ) Discussione.php?55031252&89#MSG1359

L'impostazione di timer 0 va nel void loop?

Le impostazioni vanno tutte nel setup :
-prescaler dei due timer
-modalità di funzionamendo
-impostazioni uscite
-eventuali valori di OCRn
e
-abilitaz. int. Su Out Compare Match( TIMSK2 = (1 << OCIE2A); )
-abilita la CPU a ricevere le interruzioni ( sei(); )

Ciao
Elettro

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 15/03/2015 17:17:24

CITAZIONE (inverter90, 15/03/2015 17:15:22 ) Discussione.php?55031252&89#MSG1362


Mi dice che OC1A non ha scopo...

Non puoi comandare direttamente OC1A .... ci pensa il micro secondo quello da te imposto ....

Devi variare OCR1A per variare il duty cycle

 

inverter90

Avatar
MegaWatt


Gruppo:Utente
Messaggi:323

Stato:



Inviato il: 15/03/2015 17:38:21

CITAZIONE (ElettroshockNow, 15/03/2015 17:17:24 ) Discussione.php?55031252&89#MSG1363

CITAZIONE (inverter90, 15/03/2015 17:07:20 ) Discussione.php?55031252&89#MSG1359
L'impostazione di timer 0 va nel void loop?

-abilitaz. int. Su Out Compare Match( TIMSK2 = (1 << OCIE2A); )


Era questo il problema...

Provato con il led e mettendo un potenziometro su A1 (retroazione) il led in base alla rotazione si stabilizza o lampeggia. Il codice è questo.

#include "avr/pgmspace.h"
#include "avr/io.h"
#include
PROGMEM prog_uchar sine256[] =
{
0,0,0,1,1,1,2,2,3,4,5,5,6,7,9,10,11,12,14,15,16,
18,20,21,23,25,27,29,31,33,35,37,39,42,44,46,49,51,54,56,59,
62,64,67,70,73,76,78,81,84,87,90,93,96,99,102,105,108,111,115,118,
121,124,127,130,133,136,139,143,146,149,152,155,158,161,164,167,170,173,176,178,
181,184,187,190,192,195,198,200,200,198,195,192,190,187,184,181,178,176,173,170,167,164,161,
158,155,152,149,146,143,139,136,133,130,127,124,121,118,115,111,108,105,102,99,
96,93,90,87,84,81,78,76,73,70,67,64,62,59,56,54,51,49,46,44,
42,39,37,35,33,31,29,27,25,23,21,20,18,16,15,14,12,11,10,9,
7,6,5,5,4,3,2,2,1,1,1,0,0,0
};
int PWM_Out;
int pwm;
int valore=4;//valore feedback desiderato
int err; //errore rilevato
int deadTime=5;
int t=1; //tempo di campionamento
int Kp=10; // Guadagno proporzionale
int Ki=10; // Guadagno Integrale
int Kd=0; // Guadagno Derivata
int P; //PROPORZIONALE
int D; //derivata
int I; //INTEGRALE





void setup() {


pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
TCCR1A = _BV (COM1A1) | _BV (COM1B1)| _BV (COM1B0) | _BV (WGM11);
TCCR1B = _BV (CS10);

TCCR0A=0X00;
TCCR0B = _BV (CS11) | _BV(WGM12);
OCR0A = 25;
sei();
TIMSK0 = (1 << OCIE0A);


}

void loop() {



// lettura partitore su A1
int val = analogRead(A1);//leggi da pin analogico 1
float feedback = val * (5.0 / 1023.0); //converti nella variabile feedback il valore letto su A1

err=valore-feedback;
pwm= pgm_read_byte_near(sine256);

P=err * Kp;
I=I+(err * t)*Ki;
D=((err-err)/t)*Kd;
pwm=pwm*(1+((pwm/50)-feedback));
PWM_Out= P+I+D+pwm;



}

ISR (TIMER0_COMPA_vect){


OCR1A = (PWM_Out );
delayMicroseconds(deadTime);
OCR1B = (PWM_Out );
delayMicroseconds(deadTime);




}



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

 

inverter90

Avatar
MegaWatt


Gruppo:Utente
Messaggi:323

Stato:



Inviato il: 16/03/2015 09:37:15

Sto facendo qualche prova con componenti volatili in uscita del trasformatore arriva 180v poi 100v a 40v risale, insomma oscilla di brutto a parte che fischia di brutto sarà che manca il filtro.. Secondo voi puo dipendere che la tabella sinusiodale non è campionata bene?I mosfet riscaldano relativamente poco..



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

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 16/03/2015 15:05:29


CITAZIONE

Sto facendo qualche prova con componenti volatili in uscita del trasformatore arriva 180v poi 100v a 40v risale, insomma oscilla di brutto a parte che fischia di brutto sarà che manca il filtro.. Secondo voi puo dipendere che la tabella sinusiodale non è campionata bene?I mosfet riscaldano relativamente poco..


Occhio a giocare con quelle tensioni... Un errore e sei fritto !!! Anche se in gioco ci sono basse potenze, non dimenticare che per inibire il funzionamento del cuore basta qualche Watt !!!

In ogni caso è ancora presto per sperimentare con un ponte ad H, ok per l'oscilloscopio per vedere cosa succede ma per il resto è troppo presto.

Il problema che oscilla non è dettato dalla tabella ma dal codice.

Io, come te, sto studiando la guida indicata da Elettro, diversamente non sarei in grado di seguire il discorso sui timer e tutto il resto, dammi qualche settimana così mettiamo mani al codice per correggere alcuni errori.

A presto, Eligio.



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

 
 InizioPagina
 

Pagine: (167)  < ...  79   80   81   82   83   84   85   86   87   88   [89]   90   91   92   93   94   95   96   97   98   99  ...>    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum