aumentare diminuire velocità motore dc

Marco3615:
...in modo che dopo aver colpito un ostacolo si fermi per un secondo...

paulus1969:
gli stai dicendo che se uno dei sensori è attivo deve aspettare un secondo prima di fare altro

Esatto è quel delay_ms(1000);
@Marco3615:Dovresti provare tu a modificarlo. Devi imparare un pezzetto alla volta e poi metterli insieme come un puzzle...
comunque occhio e croce dovrebbe essere così. Controllalo al limite lo correggi
Il FOR lo elimini , sfrutti il loop per creare un ciclo dove includere tutto il tuo codice
Raggiunta la velocità massima mantiene quel valore fino al prossimo ostacolo dove partirà nuovamente da zero.

 if (pwm_value<speed)  
 {
 pwm_value=pwm_value+5;

        analogWrite(pwm_2,pwm_value);
        analogWrite(pwm_1,pwm_value);
 delay(100);
 } 
   
    if (val1 ^ val3) 
    {

//       delay(1000);  /* Si ferma per un secondo solo una volta dopo aver rilevato un ostacolo. */
   
   if (val1==LOW) /* Se è stato il sensore val1 ad attivarsi allora configura la scheda motore per andare indietro. */
       {
        digitalWrite(dir_1,HIGH);
        digitalWrite(dir_2,LOW);
    pwm_value=0; /* contatore a zero per nuova velocità.*/ 
       } 
    
       if (val3==LOW) 
       {
        digitalWrite(dir_1,LOW);
        digitalWrite(dir_2,HIGH);
    pwm_value=0; /* contatore a zero per nuova velocità */
       } 
 }
  }