Stap 6: Arduino Code
#include < LiquidCrystal.h >
int i = 0;
int z = 0;
LCD met behulp van de LiquidCrystal-bibliotheek instellen
LiquidCrystal lcd(2,3,4,5,6,7);
motor pinnen
int m1 = 8;
int m2 = 9;
int m3 = 10;
int m4 = 11;
VOID Setup
{
motor pinnen instellen als uitgang
pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
pinMode(m3,OUTPUT);
pinMode(m4,OUTPUT);
definiëren van een LCD-scherm voor 16 * 2
LCD.begin (16, 2);
startende seriële verbinding
Serial.begin(115200);
}
/ * de draden kunnen hebben gekregen uitgewisseld een beetje dus viool rond met welke pin hoog wanneer gaat om de
juiste code voor beweging in alle richting * /
functie voor voorwaartse beweging
VOID vooruit()
{
digitalWrite(m1,HIGH);
digitalWrite(m4,HIGH);
digitalWrite(m2,LOW);
digitalWrite(m3,LOW);
}
functie voor achterwaartse beweging
VOID backward()
{
digitalWrite(m1,LOW);
digitalWrite(m4,LOW);
digitalWrite(m2,HIGH);
digitalWrite(m3,HIGH);
}
functie voor het draaien van links op de as
VOID datumwaarde
{
digitalWrite(m1,LOW);
digitalWrite(m4,HIGH);
digitalWrite(m2,HIGH);
digitalWrite(m3,LOW);
}
functie voor het recht om zijn as draaien
VOID rechts()
{
digitalWrite(m1,HIGH);
digitalWrite(m4,LOW);
digitalWrite(m2,LOW);
digitalWrite(m3,HIGH);
}
functie voor het stoppen van alle beweging
VOID stop1()
{
digitalWrite(m1,LOW);
digitalWrite(m4,LOW);
digitalWrite(m2,LOW);
digitalWrite(m3,LOW);
}
VOID move_code(char x)
{
if(x=='w')
vooruit();
anders if(x=='x')
backward();
anders if(x=='a')
datumwaarde;
anders if(x=='d')
rechts();
anders if(x=='s')
stop1();
}
functie voor het weergeven van bericht terwijl in beweging en de beweging van bot
VOID display_move()
{
if(z==0)
{
LCD.Clear();
LCD.Print("Moving...");
z ++;
}
if(Serial.available())
{
in=Serial.Read();
Als (in == 'w' || == in de ' || in == 'a' || in == had'|| == in 'x')
move_code(in);
anders if(in=='%')
lcd_display();
anders
{
LCD.Clear();
LCD.Print ("u hebt getypt shit..");
delay(3000);
z = 0;
}
}
}
functie voor het weergeven van bericht getypt
VOID lcd_display()
{
LCD.Clear();
stop1();
in = 0;
Ik = 0;
LCD.cursor();
while(in!='%')
{
if(i>32)
{
LCD.Clear();
Ik = 0;
}
Als (Serial.available())
{
char in=Serial.read();
i ++;
Als (ik > 16 & & ik < = 32 & & in! = '%')
{
lcd.setCursor((i-17),1);
LCD.Print(in);
}
anders if(in=='%')
{
z = 0;
in = 0;
breken;
}
anders
LCD.Print(in);
}
}
}
hoofdfunctie
void loop
{
display_move();
}