Ljus söker RC bil hacka (med Arduino) (6 / 6 steg)
Steg 6: Föra den alla tillsammans
DEN FINAL KODEN:
Ljus söker robot skiss:
int vänster = 2; lämnade motorisk kontroll kopplad till stift 2
int höger = 4. rätt motorisk kontroll kopplad till stift 4
int framåt = 7. vidarebefordra motorisk kontroll kopplad till stift 7
int bakåt = 8. / / bakåt motorstyrning bifogas till stift 8
int ledleft = A5; vänstra ljus sensing ledde bifogas analoga stift 5
int ledright = A4; just sensing ledde bifogade till analog pinne 4
int lf = 0; lagrar värdet av vänster ledde
int lr = 0; lagrar värdet av just ledde
int x = 0; används för att lagra absolutvärdet av två lysdioder
int jag = 1; bara för att hålla do medan loop öppen
void setup() //does endast en gång när Arduino är aktiverat
{
pinMode (vänster, utdata). ställa in typer av pins för varje motor och ledde
pinMode (höger, produktionen);
pinMode (framåt, produktionen);
pinMode (bakåt, utgång);
pinMode (ledleft, ingång);
pinMode (ledright, ingång);
}
void go_forward() {/ / skapa funktioner för att minska mängden skriva senare
digitalWrite (framåt, hög);
digitalWrite (bakåt, låg);
}
void go_backward() {
digitalWrite (bakåt, hög);
digitalWrite (framåt, låg);
}
void go_left() {
digitalWrite (vänster, hög).
digitalWrite (höger, låg);
}
void go_right () {
digitalWrite (höger, hög);
digitalWrite (vänster, låg).
}
void go_stop() {
digitalWrite (höger, låg);
digitalWrite (vänster, låg).
digitalWrite (framåt, låg);
digitalWrite (bakåt, låg);
}
void loop() {/ / går om och om igen tills avstängd
LF = analogRead (ledleft); uppsättningar lf till värdet av vänster ledde
LR = analogRead (ledright); uppsättningar lr med värdet av rätten ledde
x = abs (lf - lr); Anger x till skillnaden mellan de två lysdioderna Google det om du vill ha mer information om hur det fungerar
göra {
om (x < 10) {//change ten till det belopp som din lysdioder var av av när de var båda i direct / / ljus. Detta är känsligheten för din robot och kommer att ta några försök och misstag att få rätt
go_forward();
Delay(500);
go_stop();
bryta; avslutar gör medan loop och går tillbaka till toppen
}
om (lr > lf) {/ / varv vänster när det finns mer ljus på vänster sida av bilen
go_right();
go_forward();
fördröjning (500).
go_stop();
bryta; går tillbaka till början av slingan och omvärderar värdena lysdioder
}
om (lf > lr) {/ / varv rätt om det finns mer ljus till höger om bilen
go_left();
go_forward();
Delay(500);
go_stop();
bryta; går tillbaka till början av slingan och återutvärderas lysdioder värdena
}
} medan (jag == 1); håller gör samtidigt kontrollerar kretsar öppen
}
SLUTA KOPIERA HÄR
Slutliga saker
Första gummiband på bakbord och Arduino på bilen, nästa bifoga 9v batteri till bilen och koppla in i Arduino med 9v till Arduino kabel. Kom också ihåg att sätta batterier i bilen och slå på den.
Färdiga din RC-bil ska nu söka ljuset. Om inte så dubbelkolla alla anslutningar och se till att ingenting är kortslutning ut. Om din bil går bara rakt då din känslighet är för låg och du måste minska x < __ nummer. Om bilen växlar ständigt riktningar din känsligheten är för hög och x < __ tal måste vara större. Och se till att batterierna inte är död:)
Om du har några problem kommentera dem och vänligen ränta. Tack för läsning (och bygga?)