Saltar para o conteúdo

Função única motor com parâmetro do número do motor

Fonte: Wikiversidade

void motor(int numMotor, int direcao){

 int Pino1, Pino2;
 if (numMotor == 1)
   {
   Pino1 = 4;
   Pino2 = 5;
   }
 else
   {
   Pino1 = 6;
   Pino2 = 7;
   }
 if (direcao > 0) { // Motor no sentido horario
   digitalWrite(Pino1, 1);
   digitalWrite(Pino2, 0);
   }
 else if (direcao <0 ) { // Motor no sentido anti-horario
   digitalWrite(Pino1, 0);
   digitalWrite(Pino2, 1);
   }
 else { // Motor parar
   digitalWrite(Pino1, 0);
   digitalWrite(Pino2, 0);
   }

} void frente(int tempo){

 motor(1,  1);
 motor(2, -1);
 delay(tempo);
 motor(1, 0);
 motor(2, 0);

} void volta(int tempo){

 motor(1, -1);
 motor(2,  1);
 delay(tempo);
 motor(1, 0);
 motor(2, 0);

} void direita(int tempo){

 motor(1, -1);
 motor(2, -1);
 delay(tempo);
 motor(1, 0);
 motor(2, 0);

} void esquerda(int tempo){

 motor(1, 1);
 motor(2, 1);
 delay(tempo);
 motor(1, 0);
 motor(2, 0);

} void setup() {

 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(7, OUTPUT);

} void loop() {

 if (sensorDir>500 && sensorEsq>500)
    frente(50);
 else
 if (sensorDir<=500 && sensorEsq>500)
    direita(50);
 else
 if (sensorDir>500 && sensorEsq<=500)
    esquerda(50);

}