Почему мой сервопривод и ультразвуковой датчик не работают вместе?
У меня завтра сдача школьного проекта, и я планирую подключить серводвигатель к ультразвуковому датчику. Если расстояние меньше 10 см, серводвигатель должен повернуться на 180 градусов и вернуться к 0 градусам, когда перед датчиком нет объекта. Я пробовал их по отдельности, датчик сам по себе работает и может считывать расстояние как обычно, сервопривод тоже работает. Однако, когда я соединяю два кода вместе, кажется, что они просто нейтрализуют друг друга. Я не особо разбираюсь в кодировании, но почти уверен, что датчик должен печатать расстояние на последовательном мониторе, но он просто перестает работать, я также добавил некоторый код, чтобы попытаться заставить сервопривод вращаться, но это тоже не помогает. работа... Итак, я застрял, пожалуйста, помогите мне, срок сдачи завтра :(
Может ли это быть мой источник энергии? Я использую свой ноутбук для питания... но мой друг выполнил тот же проект, и он хорошо работал, используя ноутбук в качестве источника питания, но я видел подобный пост, который побуждал меня сменить источник питания, но это не так. ноутбук - огромный источник энергии? (искренне спрашиваю)
#include <Servo.h>
#define servopin 9
#define echoPin 4
#define trigPin 5
Servo Myservo;
int long duration;
int distance;
void setup() {
Myservo.attach(servopin);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration * 0.034 / 2);
if (distance < 10)
{
Myservo.write(180);
}
else
{
Myservo.write(0);
}
delay(500);
}
@pinkuro, 👍-1
Обсуждение1 ответ
Я попробовал ваш код на онлайн-симуляторе, и он работает отлично!
Может быть, просто попробуйте еще одну проверку расстояния, например if(distance<30)
(по крайней мере), и посмотрим, что произойдет.
Я не думаю, что использование ноутбука в качестве источника питания — ваша проблема
Я знаю, да, это очень сбивает с толку. Он отлично работает на Tinkercad, но не будет работать в реальной жизни, я попробую ваше предложение. Спасибо большое :D, @pinkuro
- код для автоматической двери
- Управление серводвигателем с помощью сенсорного датчика
- Как использовать фотодиод для arduino?
- Почему задержка более 64 миллисекунд останавливает вращение серводвигателя? Я не использую «Servo.h», вместо этого я просто управляю длиной импульса.
- Как запрограммировать 2 ультразвуковых датчика, один на серводвигателе и один прикрепленный на передней стороне автомобиля?
- Сделать систему с ультразвуковым датчиком и сервоприводом
- Светодиоды Arduino Nano TX и RX не загораются во время загрузки
- Почему я не могу контролировать скорость двигателя? (М1 и Е1)
у вас нет отладочного кода... добавьте его... прямо сейчас у вас нет возможности узнать значение
расстояния
, @jsotola«Но разве ноутбук не является огромным источником питания?» Большинство портов USB должны выдавать только ток 500 мА. Фактически, некоторые из них переходят в режим постоянного тока для защиты компьютера., @st2000