srgts
ggdh
Рис. 1. Принципиальная электрическая схема.
#include <Servo.h>
Servo servo;
int trig = 14, echo = 16 ;
const int motorA = 4;
const int motorB = 5;
const int servoPin = 12;
int delta = 100;
void setSpeed(int power) { // power -255 ... 255
digitalWrite(motorB, power < 0);
analogWrite(motorA, (power < 0) ? (255 + power) : power);
}
void setTurn(int turn) { // power -100 ... 100
servo.write(map(turn, -100, 100, 20, 130)); //Корректировка прямо и диапазон углов поворота
}
void setup() {
pinMode(motorA, OUTPUT);
pinMode(motorB, OUTPUT);
setSpeed(0);
servo.attach(servoPin);
servo.write(90);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
}
void loop() {
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
int duration = pulseIn(echo, HIGH) / 5.8;
if (duration > 400 - delta) {
setTurn(0);
setSpeed(150);
delta = 200;
}
else {
delta = 0;
setTurn(-100);
setSpeed(-150);
delay(1400);
}
delay(50);
}
Лист. 1. Программа автоматизации движения робота с предотвращением столкновений