Доработать код программы
- Войдите на сайт для отправки комментариев
Втр, 04/06/2019 - 11:12
Нужно добавить в программу еще один ультразвуковой датчик и сервопривод,чтобы использовались два датчика и два сервопривода.Программа должна при приближении препятствия с одной стороны поворачивать сервопривод и приближении с другой стороны поворачивать другой сервопривод .Заранее спасибо.Очень надо сделать. два датчика HC-SR04 и два серво SG90
#include <Servo.h> #define coef 10 //(коэффициент соответствия 10 градусов на 1см) #define dead_zone 4 #define max_value 22 #define servoPin1 7 #define Trig 2 #define Echo 3 #define ledPin 13 Servo myservo; void setup() { pinMode(Trig, OUTPUT); //инициируем как выход pinMode(Echo, INPUT); //инициируем как вход pinMode(ledPin, OUTPUT); myservo.attach(servoPin1); myservo.write(0); } unsigned int impulseTime=0; unsigned int distance_sm=0; void loop() { digitalWrite(Trig, HIGH); /* Подаем импульс на вход trig дальномера */ delayMicroseconds(10); // равный 10 микросекундам digitalWrite(Trig, LOW); // Отключаем impulseTime = pulseIn(Echo, HIGH); // Замеряем длину импульса distance_sm = impulseTime/58; // Пересчитываем в сантиметры if (distance_sm >= dead_zone && distance_sm <= max_value) { myservo.write(coef * (distance_sm - dead_zone)); } else if (distance_sm < dead_zone)// если дистанция менее 4 см, серва в положении ноль градусов { myservo.write(0); } else { myservo.write(180); } delay(100); /* ждем 0.1 секунды, Следующий импульс может быть излучён, только после исчезновения эха от предыдущего. Это время называется периодом цикла (cycle period). Рекомендованный период между импульсами должен быть не менее 50 мс. */ }
Пишите gas31a@mail.ru
Ну, Скиф! Даже карамзин не берётся...
Наскольно - Очень надо сделать?
Когда нужно?
вчера
Ну, Скиф! Даже карамзин не берётся...
взяться жеж не значит сделать )))
Р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии имеются
Ну, Скиф! Даже карамзин не берётся...
Берётся :)
Ну скиф с карамзиным всё могут