Étape 4: Code
Nous avons voulu notre robo aller inverse et puis à droite lorsqu’il heurta. C’est donc le code :
(Écrit pour 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()
{
mémoire ;
}
Sub bump()
{
pour (longtemps j’ai = 0; i < 10000; i ++) {}
Pause() ;
}
pour (longtemps j’ai = 0; i < 30000; i ++) {}
reverse2() ;
}
pour (longtemps j’ai = 0; i < 60000; i ++) {}
Right() ;
}
}
mémoire vide
{
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) ;
}
Sub 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) ;
}