Arduino L293D hinder undvika Robot (2 / 3 steg)
Steg 2: kod
< p > dint pwm_speed
Trig ultrasonic sensor
int trig = 12.
eko av ultrasonic sensor
int echo = 13. < /p >< p > //int röd = 2;
int blå = 4;
int grön = 7; < /p >< p > int potpin = A0; < /p >< p > void setup() {
stift för motor controller
pinMode (11, OUTPUT);
pinMode (10, OUTPUT);
pinMode (9, OUTPUT);
pinMode (6, OUTPUT); < /p >< p > / / pinMode(red,OUTPUT);
pinMode(blue,OUTPUT);
pinMode(green,OUTPUT); < /p >< p > //set trig som output och echo som indata för ultrasonic sensor
pinMode (trig, OUTPUT);
pinMode(echo,INPUT);
} < /p >< p > void loop() {
pwm_speed = analogRead(potpin);
pwm_speed = karta (pwm_speed, 0, 1028, 0, 225); < /p >< p > scan(); < /p >< p > int längd = pulseIn (echo, hög);
int avstånd = varaktighet / 29 / 2; < /p >< p > om (avstånd > 15) {
Forward(100);
} else om (avstånd < 15) {
Backward(700);
Left(500);
{} < /p >< p >} < /p >< p > / / funktion för att köra raka
utan laga kraft framåt (int delay_time) {
analogWrite (11, pwm_speed);
analogWrite (10, 0);
analogWrite (9, 0);
analogWrite (6, pwm_speed);
Delay(delay_time);
} < /p >< p > //function för återföring
void backward(int delay_time) {
analogWrite (11, 0);
analogWrite (10, pwm_speed);
analogWrite (9, pwm_speed);
analogWrite (6, 0);
Delay(delay_time);
} < /p >< p > //function för att vrida vänster
tomrummet (int delay_time) {
analogWrite (11, 0);
analogWrite (10, pwm_speed);
analogWrite (9, 0);
analogWrite (6, pwm_speed);
Delay(delay_time);
} < /p >< p > //function för att vrida rätt
void höger (int delay_time) {
analogWrite (11, pwm_speed);
analogWrite (10, 0);
analogWrite (9, pwm_speed);
analogWrite (6, 0);
Delay(delay_time);
} < /p >< p > //function för att stoppa motorer
void motors_stop (int delay_time) {
analogWrite (11, 0);
analogWrite (10, 0);
analogWrite (9, 0);
analogWrite (6, 0);
Delay(delay_time);
}
void scan() {
digitalWrite (trig, låg);
delayMicroseconds(2);
digitalWrite (trig, hög);
delayMicroseconds(5);
digitalWrite (trig, låg);
} < /p >