Étape 6: Arduino Code
#include < LiquidCrystal.h >
int i = 0 ;
int z = 0 ;
mise en place d’écran LCD à l’aide de la bibliothèque innovente
Innovente lcd(2,3,4,5,6,7) ;
broches de moteurs
int m1 = 8 ;
int m2 = 9 ;
int m3 = 10 ;
int m4 = 11 ;
void setup()
{
mise en place des goupilles moteurs en sortie
pinMode(m1,OUTPUT) ;
pinMode(m2,OUTPUT) ;
pinMode(m3,OUTPUT) ;
pinMode(m4,OUTPUT) ;
définition d’un écran lcd de 16 * 2
LCD.Begin (16, 2) ;
à partir de liaison série
Serial.Begin(115200) ;
}
/ * les fils pourraient avoir obtenu interchangés un peu ainsi jouer autour avec quelle broche va élevé quand obtenir le
bon code pour le mouvement dans une direction * /
fonction de mouvement vers l’avant
mémoire vide
{
digitalWrite(m1,HIGH) ;
digitalWrite(m4,HIGH) ;
digitalWrite(m2,LOW) ;
digitalWrite(m3,LOW) ;
}
fonction de déplacement vers l’arrière
Sub backward()
{
digitalWrite(m1,LOW) ;
digitalWrite(m4,LOW) ;
digitalWrite(m2,HIGH) ;
digitalWrite(m3,HIGH) ;
}
fonction pour tourner à gauche sur son axe
left() Sub
{
digitalWrite(m1,LOW) ;
digitalWrite(m4,HIGH) ;
digitalWrite(m2,HIGH) ;
digitalWrite(m3,LOW) ;
}
fonction pour tourner sur son axe
right() Sub
{
digitalWrite(m1,HIGH) ;
digitalWrite(m4,LOW) ;
digitalWrite(m2,LOW) ;
digitalWrite(m3,HIGH) ;
}
fonction pour arrêter tous les mouvements
Sub stop1()
{
digitalWrite(m1,LOW) ;
digitalWrite(m4,LOW) ;
digitalWrite(m2,LOW) ;
digitalWrite(m3,LOW) ;
}
Sub move_code(char x)
{
if(x=='w')
mémoire ;
d’autre if(x=='x')
Backward() ;
d’autre if(x=='a')
Left() ;
d’autre if(x=='d')
Right() ;
d’autre if(x=='s')
STOP1() ;
}
fonction permettant d’afficher des message tout en mouvement et de contrôler le mouvement des bot
Sub display_move()
{
if(z==0)
{
LCD.Clear() ;
LCD.Print("Moving...") ;
z ++ ;
}
if(Serial.available())
{
in=Serial.Read() ;
Si (en == « w » || == en de ' || en == « a » || == en avait ' || en == 'x')
move_code(in) ;
d’autre if(in=='%')
lcd_display() ;
d’autre
{
LCD.Clear() ;
LCD.Print ("vous avez tapé la merde..") ;
Delay(3000) ;
z = 0 ;
}
}
}
fonction d’affichage message tapé
Sub lcd_display()
{
LCD.Clear() ;
STOP1() ;
in = 0 ;
i = 0 ;
LCD.Cursor() ;
while(in!='%')
{
if(i>32)
{
LCD.Clear() ;
i = 0 ;
}
Si (Serial.available())
{
char in=Serial.read() ;
i ++ ;
Si (j’ai > 16 & & j’ai < = 32 & &! = « % »)
{
lcd.setCursor((i-17),1) ;
LCD.Print(in) ;
}
d’autre if(in=='%')
{
z = 0 ;
in = 0 ;
rupture ;
}
d’autre
LCD.Print(in) ;
}
}
}
fonction principale
void loop()
{
display_move() ;
}