В этом руководстве мы покажем как управлять серводвигателем Tower Pro MD90S посредством веб-сервера на ESP32 через Arduino IDE. Этот серводвигатель имеет следующую маркировку выводов: ШИМ – жёлтый, питание – красный, коричневый – масса. Также угол поворота у него составляет 180 градусов (по 90 в каждом направлении).
Управление углом поворота серводвигателя осуществляется подачей импульсов на вывод PWM. Длительность импульсов находится в диапазоне 0,6–2.4 мс, а период сигнала ШИМ — 20 мс (50 Гц).
Например, если подаём импульсы с длительностью 0,6 мс, то угол поворота серводвигателя будет 0 градусов, 1,5 мс соответствуют 90 градусам, а 2,4 мс — 180 градусам.
Для определения соответствия между углами поворота и длительностью импульсов воспользуемся функцией map(angleDegrees, 0,180,600,2400). Эта функция возвращает длительность импульса в микросекундах.
В этом примере 0 представляет минимальный угол при длине импульса 600 микросекунд, а 180 представляет максимальный угол при длине импульса 2400 микросекунд.
2 комментария. Оставить новый
Не работает.
1. Ссылка на ESP32WebServer ведет на старую библиотеку WebServer
2. ESPmDNS на ESP8266 ESPmDNS
Но, даже с новой ESP32WebServer куча ошибок после прошивки.
А конструкция, скопированная из типовых проектов
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}
В принципе вызывает бесконечный цикл.
Здравствуйте!
Эта статья была написана давно. В современной Arduino IDE есть встроенный менеджер библиотек, который содержит последние версии необходимых библиотек.
Конструкция
while (WiFi.status() != WL_CONNECTED)
ожидает, пока установиться соединение с Wi-Fi.