inverter90
| Inviato il: 05/02/2015 20:05:22
|
buona sera a tutti;
BellaEli che ne pensi? sono sulla buona strada?
byte 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,0
};
#define pwmA 9
#define pwmB 10
int PWM_Out;
int pwm;
void setup()
{
// PWM sui pin 9 e 10 a 31,2KHz
setPwmFrequency(pwmA, 1);
setPwmFrequency(pwmB, 1);
}
void loop()
{
analogWrite(pwmA, PWM_Out);
delayMicroseconds();//settare in base agli igbt usati
analogWrite(pwmB, PWM_Out);
delayMicroseconds();//settare in base agli igbt usati
// 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
pwm= pgm_read_byte_near(sine256);
PWM_Out= pwm * (1 + ((pwm / 50) - feedback)); // 200*(1+((200/50)-feedback));
}
void setPwmFrequency(int pin, int divisor)
{
byte mode;
if(pin == 5 || pin == 6 || pin == 9 || pin == 10) {
switch(divisor) {
case 1: mode = 0x01; break;
case 8: mode = 0x02; break;
case 64: mode = 0x03; break;
case 256: mode = 0x04; break;
case 1024: mode = 0x05; break;
default: return;
}
if(pin == 5 || pin == 6) {
TCCR0B = TCCR0B & 0b11111000 | mode;
} else {
TCCR1B = TCCR1B & 0b11111000 | mode;
}
} else if(pin == 3 || pin == 11) {
switch(divisor) {
case 1: mode = 0x01; break;
case 8: mode = 0x02; break;
case 32: mode = 0x03; break;
case 64: mode = 0x04; break;
case 128: mode = 0x05; break;
case 256: mode = 0x06; break;
case 1024: mode = 0x7; break;
default: return;
}
TCCR2B = TCCR2B & 0b11111000 | mode;
}
}
--------------- Il niente è impossibile finchè non ci provi!!!
|