Проверьте, подключен ли сервопривод к Arduino.
#include <Servo.h>
Servo esc;
void setup(void) {
esc.attach(7, 1000, 2000);
if (esc.attached()) {
// это всегда выполняется
// даже если к контакту 7 не подключен сервопривод
}
}
Я написал код, похожий на тот, что приведен выше.
Проблема в том, что после использования Servo.attach метод Servo.attached всегда возвращает true, даже если на выводе, к которому я прикрепился, ничего нет.
Как проверить, есть ли в контакте, в данном случае 7, действительно провод?
@, 👍1
1 ответ
Проверить, подключен ли сервопривод или провод физически к контакту, без дополнительных усилий невозможно. Библиотека Servo использует прерывания по таймеру для создания ШИМ-сигнала для сервопривода на используемом контакте. Для этого контакт настроен как ВЫХОД и не может измерять ничего, кроме записанного на него значения. В большинстве серводвигателей вход ШИМ имеет высокое сопротивление, поэтому ток, потребляемый от контакта ШИМ, очень мал.
Чтобы решить вашу проблему, у вас есть 2 возможности:
- Используйте специальный разъём, имеющий 2 дополнительных контакта с механическим переключателем, который замыкается при сборке разъёма. (Тот же принцип, что и в держателях SD-карт)
- Измерьте ток, который сервопривод потребляет через контакты источника питания, с помощью подходящей схемы.
- Как заставить сервопривод вращаться на угол больше 180°
- Подключение Arduino к сервоприводу с внешним источником питания
- Мой сервопривод не работает плавно
- Что означает термин «9g» в рейтинге сервопривода?
- Бесполезная проводка коробки и код
- Почему сервопривод не перемещается по углам должным образом
- Как заставить сервопривод замедлить движение
- поворот позиционного серводвигателя более чем на 180 градусов