87 lines
1.3 KiB
Plaintext
87 lines
1.3 KiB
Plaintext
|
#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);
|
||
|
}
|