الكود طويل بعض الشيء ولكن هنالك الكثير من الافكار فيه بحيث يجب ان تهتم بسرعة واتجاه حركة الروبوت وايضا وضع حساسات IR من أجل رؤية الخط الاسود على الارض وتتبعه .. والكود هو لحساسين IR من أجل دقة اكبر كالتالي :
int N1=5;
int N2=4;
int N3=2;
int N4=3;
int ENA=9;
int ENB=10;
int x=11;
int y=12;
void setup() {
pinMode (5,OUTPUT);
pinMode (4,OUTPUT);
pinMode (2,OUTPUT);
pinMode (3,OUTPUT);
pinMode (9,OUTPUT);
pinMode (10,OUTPUT);
pinMode(11,INPUT);
pinMode(12,INPUT);
}
void forward() {
digitalWrite(5,1);
digitalWrite(4,0);
digitalWrite(2,1);
digitalWrite(3,0);
analogWrite(9,100);
analogWrite(10,100);
}
void left() {
digitalWrite(5,1);
digitalWrite(4,0);
digitalWrite(2,1);
digitalWrite(3,0);
analogWrite(9,100);
analogWrite(10,20);}
void right() {
digitalWrite(5,1);
digitalWrite(4,0);
digitalWrite(2,1);
digitalWrite(3,0);
analogWrite(9,20);
analogWrite(10,100);}
void reverse() {
digitalWrite(5,0);
digitalWrite(4,1);
digitalWrite(2,0);
digitalWrite(3,1);
analogWrite(9,100);
analogWrite(10,100);}
void loop() {
int z=digitalRead(x);
int k=digitalRead(y);
if(z==1 &&k==1)
forward();
if(z==1 &&k==0)
left();
if (z==0 &&k==1)
right();
}