Problema sketch motore DC con L298N MotoMama H-Bridge Motor Driver Shield

Salve a tutti
Ho acquistato Arduino UNO da qualche mesetto e mi sono inbattuto in un piccolo progetto abbastanza elementare e non troppo complicato. Vorrei fare un piccolo robottino che possa andare avanti e indietro destra e sinistra utilizzando un sensore ultrasuoni HC-SR04. Ho preso 2 motori DC da una vecchia stampante e sono riuscito a farli partire. Ora arriva il mio problema, non essendo molto abile a scrivere sketch ho cercato di unire quello dei motori e quello del sensore ma non ho riscosso nessun risultato. Chiedo a voi aiuto
Francesco

Qui troviamo lo sketch

// connect motor controller pins to Arduino digital pins
// motor one
int enA = 10;
int in1 = 9;
int in2 = 8;
// motor two
int enB = 5;
int in3 = 7;
int in4 = 6;
float cm;                      
// variabile in cui verra' inserita la distanza dall'ostacolo, in centimetri
long tempotrascorso = 0;       
// variabile utilizzata per misurare il tempo trascorso dal momento di
// accensione della scheda
long precedente = 0;           
// variabile utilizzata per memorizzare il momento della precedente
// accensione del led e del buzzer
long durata; 
void lucesuono (void)          
{
tempotrascorso = millis(); 
if(tempotrascorso -precedente > durata)   
{
  precedente = tempotrascorso;
digitalWrite(13, HIGH);                   
digitalWrite(10, HIGH);                   
delay (50);                          
digitalWrite(13, LOW);                    
digitalWrite(10, LOW);                     
 }
}
void setup()
{
  // set all the motor control pins to outputs
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  pinMode(2, OUTPUT);    //sensore pin
  pinMode(3, INPUT);     //sensore pin   
  pinMode(13, OUTPUT);    //buzzer
  pinMode(10, OUTPUT);     //buzzer
}
void demoOne()
{
  // this function will run the motors in both directions at a fixed speed
  // turn on motor A
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  // set speed to 200 out of possible range 0~255
  analogWrite(enA, 200);
  // turn on motor B
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
  // set speed to 200 out of possible range 0~255
  analogWrite(enB, 200);
  delay(2000);
  // now turn off motors
 if (cm < 20) 
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
  delay(1000);
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  
}
void loop()
{
  {
digitalWrite(2, LOW);  
delayMicroseconds(2);  
digitalWrite(2, HIGH); 
delayMicroseconds(10); 
digitalWrite(2, LOW);  
cm = pulseIn(3, HIGH) / 58.0; 
if (cm < 200)
{    
durata = cm*5; 
lucesuono ();
}
delay(50); 
}
  demoOne();
  delay(1000);
  }

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema: