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
|