Arduino autonom Robot (Land Rover / bil) Stage1Model2 (18 / 23 steg)
Steg 18: Program för autonoma Bot
Programmet - det är ett enkelt program som låter bot att gå framåt i 3 sekunder, stoppa sedan flytta bakåt i 3 sekunder, sväng höger i 3 sekunder och sväng sedan vänster i 3 sekunder. Jag utvecklat detta program efter ca 15 timmar av FoU. Den stora fördelen med detta program är att alla mina subrutiner för att flytta framåt, bakåt, svarvning, stoppa, etc. är redo som skulle hjälpa mig oerhört i kommande modeller.
Jag har bifogat programmet:
void setup() {
pinMode (8, OUTPUT); Input1 av Motor1 på Pin 8 av Arduino
pinMode (9, OUTPUT); Input2 av Motor1 på Pin 9 av Arduino
pinMode (10, OUTPUT); Input1 av Motor2 på Pin 10 av Arduino
pinMode (11, OUTPUT); Input2 av Motor2 på Pin 11 av Arduino
}
void loop() {
Halt(); Stoppa båda motorer. Detta ger mjuk rörelse genom att undvika att hoppa av motorn när du byter rotation omedelbart
Forward(); Kalla fram funktion som i sin tur anropar Forward1 & Forward2 funktioner
Delay(3000); Fördröjning på 3 sekunder
Halt(); Stoppa roboten
Delay(250); Fördröjning på 0.1 sekunder innan du påbörjar någon motor igen för att säkerställa smidig rörelse (ingen kick)
Reverse(); Att vända funktionen som i sin tur anropar Reverse1 & Reverse2 funktioner
Delay(3000); Fördröjning på 3 sekunder
}
void Forward() {/ / flytta roboten framåt dvs båda motorer rör sig framåt
Forward1(); Motor1 rör sig framåt
Delay(150); Fördröjning på 0.15 sekunder innan andra motor startar att undvika att ladda batterierna
Forward2(); Motor2 rör sig framåt
}
Annullera Reverse() {/ / flytta Robot bakåt dvs båda motorer flyttar bakåt
Reverse1(); Motor1 flyttar bakåt
Delay(150); Fördröjning på 0.15 sekunder innan andra motor startar att undvika att ladda batterierna
Reverse2(); Motor2 flyttar bakåt
}
void Halt() {/ / både motorer stoppa (inte bryta som är abrupt stopp)
Halt1();
Halt2(); Stoppa båda motorer. Detta ger mjuk rörelse genom att undvika att hoppa av motorn när du byter rotation omedelbart
}
void Forward1() {/ / Motor1 rör sig framåt (medurs)
digitalWrite 8, hög.
digitalWrite (9, låg).
}
void Forward2() {/ / Motor2 rör sig framåt (medurs)
digitalWrite 10, hög.
digitalWrite (11, låg).
}
void Reverse1() {/ / Motor1 flyttar bakåt (Anti medurs)
digitalWrite 8, låg.
digitalWrite (9, hög).
}
void Reverse2() {/ / Motor2 flyttar bakåt (Anti medurs)
digitalWrite (10, låg).
digitalWrite (11, hög).
}
void Halt1() {/ / Motor1 stoppa (inte bryta som är abrupt stopp)
digitalWrite 8, låg.
digitalWrite (9, låg).
}
void Halt2() {/ / Motor2 stoppa (inte bryta som är abrupt stopp)
digitalWrite (10, låg).
digitalWrite (11, låg).
}
void Stop1() {/ / Motor1 bryta dvs abrupt stoppa
digitalWrite 8, låg.
digitalWrite (9, låg).
}
void Stop2() {/ / Motor2 bryta dvs abrupt stoppa
digitalWrite (10, låg).
digitalWrite (11, låg).
}