Função única motor com parâmetro do número do motor
Aspeto
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);
}