Lab_interaccio/2010/Ricardo/robot_v1_1/robot_v1_1.pde

119 lines
2.1 KiB
Plaintext
Raw Normal View History

2025-02-25 21:29:42 +01:00
byte val = 0;
int speed1 = 9;
int speed2 = 10;
int g1a = 4;
int g1b = 5;
int g2a = 7;
int g2b = 6;
void stop()
{
digitalWrite(g1a, LOW);
digitalWrite(g1b, LOW);
analogWrite(speed1, 0);
digitalWrite(g2a, LOW);
digitalWrite(g2b, LOW);
analogWrite(speed2, 0);
}
void izquierda(int iz)
{
//stop();
//delay(100);
digitalWrite(g1a, HIGH);
digitalWrite(g1b, LOW);
//digitalWrite(g2a, LOW);
//digitalWrite(g2b, LOW);
analogWrite(speed2, 0);
/*for (int i=64; i <= iz; i=i+10){
analogWrite(speed1, i);
delay(100);
} */
analogWrite(speed1, iz);
}
void derecha(int der)
{
//stop();
//delay(100);
digitalWrite(g2a, HIGH);
digitalWrite(g2b, LOW);
//digitalWrite(g1a, LOW);
//digitalWrite(g1b, LOW);
analogWrite(speed1, 0);
/*for (int i=64; i <= der; i=i+10){
analogWrite(speed2, i);
delay(100);
} */
analogWrite(speed2, der);
}
void retrocede(int re)
{
stop();
//delay(100);
digitalWrite(g2a, HIGH);
digitalWrite(g2b, LOW);
digitalWrite(g1a, HIGH);
digitalWrite(g1b, LOW);
/*for (int i=64; i <= re; i=i+10){
analogWrite(speed1, i);
analogWrite(speed2, i);
delay(100);
} */
analogWrite(speed2, re);
analogWrite(speed1, re);
}
void avanza(int av)
{
stop();
//delay(100);
digitalWrite(g2a, LOW);
digitalWrite(g2b, HIGH);
digitalWrite(g1a, LOW);
digitalWrite(g1b, HIGH);
/*for (int i=64; i <= av; i=i+10){
analogWrite(speed1, i);
analogWrite(speed2, i);
delay(100);
} */
analogWrite(speed2, av);
analogWrite(speed1, av);
}
void setup()
{
Serial.begin(9600);
delay(100);
pinMode(g2a, OUTPUT);
pinMode(g2b, OUTPUT);
pinMode(g1a, OUTPUT);
pinMode(g1b, OUTPUT);
}
void loop()
{
if (Serial.available()) {
val = Serial.read();
switch (val) {
case 0x80:
avanza(255);
break;
case 0x81:
retrocede(255);
break;
case 0x82:
izquierda(255);
break;
case 0x83:
derecha(255);
break;
case 0x84:
stop();
break;
}
}
}