Paso 4: código
Queríamos que nuestro robo inverso y luego a la derecha cada vez que golpea. Así que este es el código:
(Escrito para Arduino)
#define mota1 4
#define mota2 53
#define motb1 7
#define motb2 6
#define en1 3
#define en2 5
void forward(void);
void reverse2(void);
void pause(void);
void right(void);
void setup()
{
Serial.Begin(9600);
pinMode(19,INPUT);
attachInterrupt(4,bump,LOW);
pinMode(mota1,OUTPUT);
pinMode(mota2,OUTPUT);
pinMode(motb1,OUTPUT);
pinMode(motb2,OUTPUT);
pinMode(en1,OUTPUT);
pinMode(en2,OUTPUT);
}
void loop()
{
Forward();
}
void bump()
{
para (largo i = 0; i < 10000; i ++) {}
PAUSE();
}
para (largo i = 0; i < 30000; i ++) {}
reverse2();
}
para (largo i = 0; i < 60000; i ++) {}
Right();
}
}
forward() vacío
{
analogWrite(en1,125);
analogWrite(en2,125);
digitalWrite(mota1,HIGH);
digitalWrite(mota2,LOW);
digitalWrite(motb1,HIGH);
digitalWrite(motb2,LOW);
}
void reverse2(void) {}
analogWrite(en1,255);
analogWrite(en2,255);
digitalWrite(mota1,LOW);
digitalWrite(mota2,HIGH);
digitalWrite(motb1,LOW);
digitalWrite(motb2,HIGH);
}
void right(void)
{
analogWrite(en1,0);
analogWrite(en2,255);
digitalWrite(mota1,HIGH);
digitalWrite(mota2,LOW);
digitalWrite(motb1,HIGH);
digitalWrite(motb2,LOW);
}
void pause()
{
analogWrite(en1,0);
analogWrite(en2,0);
}