Salve a tutti
Ho scritto questo piccolo programma per comandare un ponte H per pilotare una coppia di motori DC
int PWM1 = 5; // output in pwm
int PWM2 = 6; // out in pwm
int valore=0;
void setup()
{
Serial.begin(9600); // inizializzazione seriale
pinMode(PWM1, OUTPUT); // inposta pwm come out
pinMode(PWM2, OUTPUT);
}
void loop(){
if ( Serial.available()) //controllo seriale disponibie
{
char lettura = Serial.read();
if(lettura == '1') //gira sx
{
for(valore=128;valore<=255;valore+=5)
{
analogWrite(PWM1 , valore);
delay(10);
}
for(valore=128;valore>=0;valore-=5)
{
analogWrite(PWM2 ,valore);
delay(10);
}
}
if (lettura=='0') //stop
analogWrite(PWM1 ,127);
analogWrite(PWM2 ,127);
delay(10);
if (lettura =='3')
analogWrite(PWM1 ,0);
analogWrite(PWM2 ,0);
if (lettura =='4')
analogWrite(PWM1 ,255);
analogWrite(PWM2 ,255);
if(lettura=='2') //gira a dx
{
come potete vedere se tramite seriale invio 0 i motori dovrebbero essere fermi perche' PWM a 127 mentre con 3 e 4 dovrebbero andare in un senso o nell'altro.
Diciamo che funziona a meta' perchè il PWM da pin 6 resta sempre a 255 (con multimetro ho sempre 5 volt tranne per un attimo quando do altri comandi) il pin 5 invece si comporta bene.
Non è un problema del ponte perchè scolegando e misurando direttamente sui pin la situazione anomala rimane.
C'è qualcosa di sbagliato nel prog?
Ho provato anche a cambiare coppia ,ma l'anomalia resta.
L'arduino è alimentato a circa 7 V quindi dovrebbe andare bene.
Qualche consiglio?
Grazie