Mycket enkel robot för nybörjare (4 / 5 steg)
Steg 4: Program
I kommentarer förklarade jag vad varje rad gör. Detta är mycket enkel kod jag har hoppas att du förstår den.
/*
-Kod wrtitten av Nikodem Bartnk
* Besök:
*
* http://arduinopolska.cba.pl/
* https://spongepie.com/
*
* C av Nikodem Bartnik
* Om du har frågor kan du skriva här:
* nikodem.bartnik
*/
motors hastighet mellan 0 och 255, om du gillar du kan ändra det
int pwm_speed = 255;
Trig ultrasonic sensor
int trig = 12.
eko av ultrasonic sensor
int echo = 13.
void setup() {
stift för motor controller
pinMode (11, OUTPUT);
pinMode (10, OUTPUT);
pinMode (9, OUTPUT);
pinMode (6, OUTPUT);
pinMode (5, OUTPUT);
pinMode (3, OUTPUT);
Ange trig som output och echo som indata för ultrasonic sensor
pinMode (trig, OUTPUT);
pinMode(echo,INPUT);
}
void loop() {
digitalWrite (trig, låg);
delayMicroseconds(2);
digitalWrite (trig, hög);
delayMicroseconds(5);
digitalWrite (trig, låg);
int längd = pulseIn (echo, hög);
int avstånd = varaktighet / 29 / 2;
om (avstånd > 10) {
gå vidare genom 100 ms
Forward(100);
} else om (avstånd < 10) {
bakåt med 1000ms = 1 sekund
Backward(1000);
kvar av 1000ms = 1 andra
Left(1000);
}
}
funktion för att köra raka
utan laga kraft framåt (int delay_time) {
digitalWrite (11, hög).
digitalWrite (10, låg).
digitalWrite (9, hög).
digitalWrite (6, låg).
analogWrite (5, pwm_speed);
analogWrite (3, pwm_speed);
Delay(delay_time);
}
funktion för att vända
void backward(int delay_time) {
digitalWrite (11, låg).
digitalWrite 10, hög.
digitalWrite (9, låg).
digitalWrite (6, hög).
analogWrite (5, pwm_speed);
analogWrite (3, pwm_speed);
Delay(delay_time);
}
funktion för svänger vänster
tomrummet (int delay_time) {
digitalWrite (11, hög).
digitalWrite (10, låg).
digitalWrite (9, låg).
digitalWrite (6, låg).
analogWrite (5, pwm_speed);
analogWrite (3, 0);
Delay(delay_time);
}
funktion för att vrida rätt
void höger (int delay_time) {
digitalWrite (11, låg).
digitalWrite (10, låg).
digitalWrite (9, hög).
digitalWrite (6, låg).
analogWrite (5, 0);
analogWrite (3, pwm_speed);
Delay(delay_time);
}
funktion för att stoppa motorer
void motors_stop (int delay_time) {
digitalWrite (11, låg).
digitalWrite (10, låg).
digitalWrite(9,LOW);
digitalWrite (6, låg).
analogWrite (5, 0);
analogWrite (3, 0);
Delay(delay_time);
}