#define m1 10 #define m2 9 #define led 13 int count=0; int val = 0x00; //Valor entrada serie int s0=14; int s1=15; int s2=16; int flag_avan=0; int flag_retro=0; void setup() { Serial.begin(9600); pinMode(m1, OUTPUT); pinMode(m2, OUTPUT); pinMode(s0, OUTPUT); pinMode(s1, INPUT); pinMode(s2, INPUT); pinMode(led, OUTPUT); digitalWrite(m2, LOW); digitalWrite(m1, LOW); digitalWrite(led, LOW); digitalWrite(s0, LOW); digitalWrite(s1, HIGH); digitalWrite(s2, HIGH); } void loop() //run over and over again { if (Serial.available()) { val = Serial.read(); if (val==0x00) { flag_avan=1; avanza(); } else if (val==0x01) { flag_retro=1; retrocede(); } else if (val==0x02) digitalWrite(led, HIGH); else if (val==0x03) digitalWrite(led, LOW); } if ((flag_retro)&&(!digitalRead(s1))) { flag_retro=0; stop_motores(); } else if ((flag_avan)&&(!digitalRead(s2))) { flag_avan=0; stop_motores(); } //if ((!digitalRead(s1))||(!digitalRead(s2))) stop_motores(); } void stop_motores() { digitalWrite(m2, LOW); digitalWrite(m1, LOW); } void avanza() { digitalWrite(m2, LOW); digitalWrite(m1, HIGH); } void retrocede() { digitalWrite(m2, HIGH); digitalWrite(m1, LOW); }