Uno D1 8266 не работает управление сервоприводом SG90
- Войдите на сайт для отправки комментариев
Вс, 13/03/2022 - 13:45
Добрый день! Столкнулся с проблемой, не могу заставить работать сервопривод SG90 c платой ESP8266 D1 Wifi(вот такая: https://aliexpi.com/B1EH)., при загрузке скетча серво стоит на месте и никак не реагирует., другие пины для управления тоже пробовал - без результатно.
Вот скетч:
#include <Servo.h> Servo myservo; // create servo object to control a servo // twelve servo objects can be created on most boards int pos = 0; // variable to store the servo position void setup() { myservo.attach(0); // attaches the servo on GPIO 0 to the servo object } void loop() { for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees // in steps of 1 degree myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } }
Вот схема:
SG90 ESP8266 Gnd - Gnd Vcc - 5v Signal - GPIO 0 (это пин D8)
Этот же самый скетч загружаю на ардуино нано и подключаю туже самую серву SG90 - все работает отлично!!! Питание подается через USB компьютера., пробовал и внешнее питание подключать (LIPO 3s) резульататов не дало...
Подскажите пожалуйста в чем может быть проблема?
Проверьте пины с помощью светодиода - я думаю вы путаете номер.
попробуйте к этому же пину подключить светодиод и просто дать digitalWrite(0, HIGH)
Проверьте пины с помощью светодиода - я думаю вы путаете номер.
попробуйте к этому же пину подключить светодиод и просто дать digitalWrite(0, HIGH)
Благодарю за комментарии., диода под руками к сожалению не оказалось., вместо диода использовал мультиметр и вот что заметил., в момент когда digitalWrite дает HIGH, показания мультиметра не превышают 3.3v, очевидно что этого вольтажа не хватает чтобы сдвинуть с места серву., запустил тот же самый тестовый код на ардуино нано., получается что мультиметром снимаю с пина почти 5 v.
С пином не напутал., все правильно GPIO 0 сидит на D8
Что это может означать? Что плата работает только с управляющей логикой 3.3v?
Вот код для теста который я использовал:
Для WEMOS D1 надо посмотреть
эта распиновка не подходит к моей плате., у меня пины соответствуют как на фото по ссылке на алиэкспресс которую я привел в начале поста., относительно ваших получается:
А если прямо обозначить цифровой пин:
плату эту выбираете?

А если прямо обозначить цифровой пин:
плату эту выбираете?

Прямо обозначать цифровой пин тоже пробовал., результатов не дало
плату вот эту выбираю при загрузке скетча (выбрать LOLIN Wemos d1 r1 попробовал не помогло):
для Nodemcu GPIO0 это D3
для Nodemcu GPIO0 это D3
у меня не NodeMCU, а ESP8266 - вот такая https://ali.onl/1Z9Q
при загруке выбираю NodeMCU потомучто у китайцев в туториале по сборке робота именно так прописано., вообще делал все по туториалу., моторы работают, SR-04 работает., а вот сервопривод SG90 никак не хочет работать
не поленился, загрузил твой скетч в NODEMCU - всё работает, пин D3
не поленился, загрузил твой скетч в NODEMCU - всё работает, пин D3
спасибо за тест., у меня так ничего и не получается (( больше склоняюсь к проблеме с самой платой., на нанке работает, на уно запускал работает., а на ESP8266 D1 WI-FI плате не хочет работать!
нечему там не получаться, запитываешь серву надеюсь от +5 вольт
нечему там не получаться, запитываешь серву надеюсь от +5 вольт
Согласен полностью., скетч простой как дважды два... да конечно серву от +5 вольт запитываю!!!
Но увы имею то что имею., не работает гадость такая (((
прозвони, кроме неправильных ног подключения нечему там не работать
прозвони, кроме неправильных ног подключения нечему там не работать
Как именно прозвонить? Я вроде убедился с помощью мультиметра что названия пинов соответствуют., + в качестве имени использовал прямое обозначение D7 (GPIO 0), пробовал посадить сигнальный провод от сервы и на другие пины., но увы безрезультатно
прозвони, кроме неправильных ног подключения нечему там не работать
Как именно прозвонить? Я вроде убедился с помощью мультиметра что названия пинов соответствуют., + в качестве имени использовал прямое обозначение D7 (GPIO 0), пробовал посадить сигнальный провод от сервы и на другие пины., но увы безрезультатно
GPIO0 это в коде выбранной тобой платы - D3, а физически подключать видимо на D8
На плате Wemos D1 Wi-Fi UNO (ESP-12E), которая указана в заголовочном посте данной темы, GPIO0 - это D8:
https://radioprog.ru/shop/merch/57 (очень рекомендую ознакомиться ТС).
ТС выбирает не WEMOS, а NODEMCU при компиляции, со всеми вытекающими, говорит, что с WEMOS тоже не взлетело
Поставил я себе поддержку ESP8266 и у меня тоже для ESP-12E только такое подходит: NodeMCU 1.0 (ESP-12E Module).
А если на другую "лапу" назначить? Может сама "лапа" не рабочая?
наиболее подходит всё же такая (WEMOS D1/R1):
GPIO0 это в коде выбранной тобой платы - D3, а физически подключать видимо на D8
В коде поставил myservo.attach(D3); // attaches the servo on GPIO 0 to the servo object
физически посадил на пин D8 - результат нулевой ((
Поставил я себе поддержку ESP8266 и у меня тоже для ESP-12E только такое подходит: NodeMCU 1.0 (ESP-12E Module).
А если на другую "лапу" назначить? Может сама "лапа" не рабочая?
Перебрал все лапы с PWM, тишина... серво стоит на месте
наиболее подходит всё же такая (WEMOS D1/R1):
Спасибо за распиновку., именно такая у меня судя по буквенным обозначениям на плате., но результата не дает(( Заказал себе еще одну плату такуюже на OZON, c нетерпением жду., надеюсь что запуститься с первого пинка., у меня больше нет объяснений кроме как возможно не работает PWM модуляция или еще какие-то аппаратные косяки., скетч простой как дважды два., работает на остальных моих платах с тойже сервой., а на этой плате как в анекдоте - это не руки кривые , а место заколдованное (хотя может и кривые)
На плате Wemos D1 Wi-Fi UNO (ESP-12E), которая указана в заголовочном посте данной темы, GPIO0 - это D8:
Вы правы так и есть!!! Благодарю за ссылки., обязательно ознакомлюсь
На плате Wemos D1 Wi-Fi UNO (ESP-12E), которая указана в заголовочном посте данной темы, GPIO0 - это D8:
Вы правы так и есть!!! Благодарю за ссылки., обязательно ознакомлюсь
да, но если выбираешь nodemcu указывать надо как D3 )))
ЗЫ вообще-то wemos весьма своеобразная плата, после загрузки некоторых скетчей для восстановления работоспособности надо залить скетч восстановления, где-то тут на сайте писал на эту тему, но, что, где и как уже не вспомню
Друзья., вынужден вернуться с проблемой! Вопрос не закрыт., сегодня мне приехала новая плата esp8266 D1 (заказал специально в надежде что проблема была именно в плате)., но надежды не оправдались... Делаю все тоже самое., пробую запустить скетч и тишина., серво как вкопанный стоит мертвый... может еще какие-то советы будут? Может кто-нибудь попробовать запустить скетч на такойже плате с таким же сервоприводом? я уже не знаю что делать...
Проблему с платой вроде отсек (путем покупки новой., вероятность надеюсь небольшая что две платы из разных мет и обе не рабочие)., не работоспособность сервопривода тоже отсекаю (один и тот же серво на Ардуино Нано работает., а на этих платах отказывается)., проблему с нехваткой питания тоже исключаю (подключал и через плату и также отдельное питание давал на серво)... ну что еще может быть???
На указанном в программе выводе что-то появляется? Проверял?
Друзья., вынужден вернуться с проблемой! Вопрос не закрыт., сегодня мне приехала новая плата esp8266 D1 (заказал специально в надежде что проблема была именно в плате)., но надежды не оправдались... Делаю все тоже самое., пробую запустить скетч и тишина., серво как вкопанный стоит мертвый... может еще какие-то советы будут? Может кто-нибудь попробовать запустить скетч на такойже плате с таким же сервоприводом? я уже не знаю что делать...
Проблему с платой вроде отсек (путем покупки новой., вероятность надеюсь небольшая что две платы из разных мет и обе не рабочие)., не работоспособность сервопривода тоже отсекаю (один и тот же серво на Ардуино Нано работает., а на этих платах отказывается)., проблему с нехваткой питания тоже исключаю (подключал и через плату и также отдельное питание давал на серво)... ну что еще может быть???
приведи скетч и выбор платы в IDE
На указанном в программе выводе что-то появляется? Проверял?
не совсем понял вопрос., можете объяснить о каком выводе идет речь?
приведи скетч и выбор платы в IDE
Скетч:
Выбор платы в IDE:
чего ты дурака из себя строишь? вывод надо указывать как D3 подключая к D8
На указанном в программе выводе что-то появляется? Проверял?
не совсем понял вопрос., можете объяснить о каком выводе идет речь?
О том выводе, с которого пытаешься управлять сервой.
чего ты дурака из себя строишь? вывод надо указывать как D3 подключая к D8
слушай давай полегче с выражениями... я уже пробовал в скетче выставлять D3, а физически пин подключать на D8 - ЭТО НЕ РАБОТАЕТ
На указанном в программе выводе что-то появляется? Проверял?
Появляется максимум 3.3v нарастающим итогом (мультиметром садился на пин и мерял)
я уже пробовал в скетче выставлять D3, а физически пин подключать на D8 - ЭТО НЕ РАБОТАЕТ
значит проблема в серве, такая плата у меня в работе попробовать не могу, на нодемсу всё работает, проверено, подключение там может быть только одно в скетче выставить D3 физически подключить D8, попробуй сделать analogWrite(D3, от 0 до 255) подключив на D8 светодиод, работает?
Появляется максимум 3.3v нарастающим итогом (мультиметром садился на пин и мерял)
а что ты там ждал на плате с напряжением 3.3в? пять вольт? а почему не 500?
Вот такой код залей в плату
и подбирай servo_pin, пока не начнет поворачиваться на 90 градусов
И пока это не заработает - больше не приходи и не пудри никому мозг
al072
добавлю
для проверки, что ты выбрал правильный пин - запусти просто блинк 3-5 гц на выбранном пине и убедись мультиметром или светодиодом. что на нужном выходе есть сигнал.
С написанием скетча блин сам справишься, надеюсь?
и твоя WEMOS D1 если правильно указать:
я уже пробовал в скетче выставлять D3, а физически пин подключать на D8 - ЭТО НЕ РАБОТАЕТ
значит проблема в серве, такая плата у меня в работе попробовать не могу, на нодемсу всё работает, проверено, подключение там может быть только одно в скетче выставить D3 физически подключить D8, попробуй сделать analogWrite(D3, от 0 до 255) подключив на D8 светодиод, работает?
Вы оказались правы!!! Проблема была в серве., я не думал что проблема может быть в ней так как ранее писал что на ардуино Нано серва работает., вот такой странный парадокс))) купил сегодня новую SG90 завелась с первого раза!!! Вообщем для NodeMCU esp8266 12-e распиновка соответствует (D8 - GPIO0).
Всем спасибо за советы и потраченное время!!!
Вы оказались правы!!! Проблема была в серве.
слава всевышнему!