problemi con PWM

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

mi sono un po' perso nel tuo codice (vuoi comandare il ponte h da pc, ma non sono un astro della programmazione)

ad occhio cerchi di comandare i du logici del ponte h con dei pwm, analogwrite.

in questo tutorial
http://itp.nyu.edu/physcomp/Labs/DCMotorControl
(che mi sta facendo impazzien per un altro motivo)
spiega che la funzione analogwrite va fatta sull'enable pin, i due pin che gestiscono la direzione del motore sono dei semplici digitalwrite opposti, che vanno entrambi a LOW quando vuo spegnerlo.

sto per replicare ad un mio post sullo stesso argomento, prima mi metto a disegnare la situazione in cui sono arrivato, per magari dagli un occhiata.

spero di esserti stato di aiuto.

d

Il prog che ho scritto non è proprio quello definitivo,ma il mio problema non è nel circuito.Io sto comandando il ponte h in modalita LAP ed è per quello che non mi serve l'enable (che è tenuto alto direttamente dal modello di ponte che ho),i comandi av/in sono gestiti mandando il pwm su un ing ed invertito (tramite un 74hc04 )sull'altro.
per chiarire lggi qui: PWM TUTORIAL PAGINA 2
Il mio problema è che per pilotare due motori ho bisogno di 2 pwm ed effettivamente arduino non mi gestisce il secondo (che mi serve per i due ingressi del secondo ramo del ponte h)
In giornata proverò a mettere due led sui pin 5 e 6 ma sembra che il pwm si comporti bene solo sul pin 5 e cosi anche pr le altre coppie pwm 9/10 e 11/3