[Risolto] Problema robot cingolato

salve ragazzi, mi sto cimentando a realizzare un piccolo robot cingolato che comando tramite pulsanti il robot ha 2 motori dc che ho deciso di comandare tramite un l293d, il robot sara in grado di andare avanti dietro destra e sinistra, ho scritto il programma e montato il circuito... il problema è che se carico il programma tutto insieme non funziona se invece carico 1 movimento per volta (es. carico solo avanti) allora va... già se metto il secondo tasto con il secondo movimento la potenza dimezza con tutti e quattro non si muove proprio. quale può essere il problema?

ecco il programma:

int switchPin = 2;   
int switchPin1 = 5;
int switchPin2 = 6;
int switchPin3 = 7;
int motor1Pin1 = 3;   
int motor1Pin2 = 4;    
int motor2Pin1 = 8;
int motor2Pin2 = 11;
int enablePin = 9;    
int enablePin2= 10;
void setup() {
 
  pinMode(switchPin, INPUT);
  pinMode(switchPin1, INPUT);
  pinMode(switchPin2, INPUT);
  pinMode(switchPin3, INPUT); 

 
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);
  pinMode(motor2Pin1, OUTPUT);
  pinMode(motor2Pin2, OUTPUT);
  pinMode(enablePin, OUTPUT);
  pinMode(enablePin2, OUTPUT);


  digitalWrite(enablePin, HIGH);
  digitalWrite(enablePin2, HIGH);
}

void loop() {
  if (digitalRead(switchPin) == LOW) {
    digitalWrite(motor1Pin1, LOW);   
    digitalWrite(motor1Pin2, LOW);  
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, LOW);
  }
 
  else {
    digitalWrite(motor1Pin1, HIGH);  
    digitalWrite(motor1Pin2, LOW);   
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
  }

 if (digitalRead(switchPin1) == LOW) {
    digitalWrite(motor1Pin1, LOW);   
    digitalWrite(motor1Pin2, LOW);  
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, LOW);
  }
  else {
    digitalWrite(motor1Pin1, LOW);  
    digitalWrite(motor1Pin2, HIGH);  
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
  }

 if (digitalRead(switchPin2) == LOW) {
    digitalWrite(motor1Pin1, LOW);   
    digitalWrite(motor1Pin2, LOW);  
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, LOW);
  }
  else {
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
    }

 if (digitalRead(switchPin3) == LOW) {
    digitalWrite(motor1Pin1, LOW);   
    digitalWrite(motor1Pin2, LOW);  
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, LOW);
  }
  else {
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    }
}

collegamenti:
(non riesco a caricare lo schema dei collegamenti spiegatemi come fare)
i collegamenti dell' l293d sono quelli base con i pin enable collegati al pin 9 e 10 di arduino che poi setta a livello alto,

GRAZIE DELL'AIUTO.

Foto, e di quale Arduino stai usando.
Ciao Uwe

USO ARDUINO UNO ... LA FOTO NON SO COME CARICARLA

lello95:
USO ARDUINO UNO … LA FOTO NON SO COME CARICARLA

perché urli?
clicca su Additional Options sotto la finestra del editore.
Ciao Uwe

p.s. avevo il bloc maiusc attivo

problema risolto era l'alimentazione eccessivamente bassa...

bene, Visto che esponendo il Tuo problema hai trovato una soluzione :wink: :wink:
Ciao Uwe

lello95:
p.s. avevo il bloc maiusc attivo

Puoi modificare il primo tuo post e rimettere il titolo in minuscolo.
Anzi puoi anche aggiungere [Risolto] all'inizio del titolo. :smiley: