Lab_interaccio/2010/museo/museo.pde
2025-02-25 21:29:42 +01:00

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);
}