Motores DC e sensores

Deixo un código derivado do que usamos o curso pasado co renacuajobot. Debera funcionar cos motores de continua, pero según se poñan os cables dos motores pode ser que haxa que cambiar algún HIGH por LOW.

Deixo o código e comento os cambios que se deberan facer:

// variables para gardar o valor dos sensores

int colorSensorE;

int colorSensorD;

// variables para os pines

int pinSensorE=2;

int pinSensorD=3;

int motEsqA=6;

int motEsqB=7;

int motDerA=8;

int motDerB=9;

void setup(){

//pines de saida e entrada

pinMode(2,INPUT);

pinMode(3,INPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

pinMode(8,OUTPUT);

pinMode(9,OUTPUT);

}

void loop() {

//lemos os sensores

ler();

// comprobo o estado dos sensores e fago que o robot actue en consecuencia

if (colorSensorE==1 && colorSensorD==1){

adiante();

}

else if(colorSensorE==0 && colorSensorD==1){

xiraE();

}

else if(colorSensorE==1 && colorSensorD==0){

xiraD();

}

delay(10);

}

void adiante(){

digitalWrite(motEsqA,LOW);

digitalWrite(motEsqB,HIGH);

digitalWrite(motDerA,LOW);

digitalWrite(motDerB,HIGH);

}

void atras(){

digitalWrite(motEsqA,HIGH);

digitalWrite(motEsqB,LOW);

digitalWrite(motDerA,HIGH);

digitalWrite(motDerB,LOW);

}

void xiraE(){

digitalWrite(motEsqA,HIGH);

digitalWrite(motEsqB,LOW);

digitalWrite(motDerA,HIGH);

digitalWrite(motDerB,LOW);

}

void xiraD(){

digitalWrite(motEsqA,LOW);

digitalWrite(motEsqB,HIGH);

digitalWrite(motDerA,LOW);

digitalWrite(motDerB,HIGH);

}

void para(){

digitalWrite(motEsqA,LOW);

digitalWrite(motEsqB,LOW);

digitalWrite(motDerA,LOW);

digitalWrite(motDerB,LOW);

}

void ler(){

colorSensorE=digitalRead(pinSensorE);

colorSensorD=digitalRead(pinSensorD);

}