Управление шаговым двигателем с помощью ESP8266

У меня есть шаговый двигатель и шаговый драйвер Uln2003a, который подключен к ESP8266.

ESP8266 питается через USB, а шаговый двигатель-через драйвер, который затем питается от внешнего источника питания, обеспечивая ему чуть больше 12 вольт. При включении питания светодиоды D1 и D2 загораются красным.

Контакты D0, D1, D2, D3 используются для ввода сигнала для привода шаговой платы.

Все должно быть подключено правильно, но по какой-то причине я не могу заставить свой шаговый двигатель двигаться. Он не реагирует ни на одну из моих команд - почему?

Я подозреваю, что логический уровень, возможно, должен быть 5 В вместо 3 В. Но я и раньше видел шаговые двигатели, приводимые в движение ЭКСТРАСЕНСОРНЫМ аппаратом. Так почему же это не работает? Есть предложения?

Есть какие-нибудь способы отладки?

Код:

esphome:
  name: steppermotor
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: "ssid"
  password: "password"

# Enable logging
logger:

# ESPHome configuration
api:
  services:
    - service: control_stepper
      variables:
        target: int
      then:
        - stepper.set_target:
            id: my_stepper
            target: !lambda 'return target;'


# Example configuration entry
stepper:
  - platform: uln2003
    id: my_stepper
    pin_a: D0
    pin_b: D1
    pin_c: D2
    pin_d: D3
    max_speed: 250 steps/s

    acceleration: inf
    deceleration: inf

, 👍1

Обсуждение

Правильно ли установлены контакты, которые вы используете для управления водителем? В техническом описании говорится, что он может работать с логическим входным напряжением 3,3 В. Я не знаком с таким кодом. Где определены функции, которые фактически управляют выходными контактами?, @chrisl

этот код является частью https://esphome.io/components/stepper/index.html, @Carlton Banks

Насчет контактов я совершенно уверен... Я не знаю, поможет ли фотография или нет., @Carlton Banks

Мхх, не думаю, что смогу помочь с кодом. Раньше такого не видел. Контакты просто подключены прямо к 4 входным контактам драйвера. Не так много, чтобы провалиться там. Светодиоды на драйвере будут гореть в зависимости от того, есть ли высокий уровень напряжения на этом выводе. Если ничего не происходит, я бы подумал, что либо пины не установлены кодом, либо ваш водитель мертв. Вы можете проверить последний, подключив 4 фазы по одной к 3,3 В. Если светодиоды горят правильно, ошибка должна быть в вашем коде., @chrisl

Из вашего кода я догадываюсь, что вы пытаетесь управлять степпером через API. Как вы вызываете этот API? Вы создаете свою собственную строку вызова или у вас есть какой-то пользовательский интерфейс на этом сайте проекта (ESPHome)?, @chrisl

Я надеюсь, что для каждого регистра GPIO ESP должно быть встроенное сопротивление подтягивания. Протестируйте следующим образом и опубликуйте свое наблюдение: 1. Ничего не подключайте (перемычки ULN2003) к вашему ESP и проверьте выбранные вами GPIO, плавающие они или нет. Если нет поплавка при чтении, то все в порядке. 2. Подключите нагрузку и проверьте плавающие GPIO или нет., @Yana

используйте мультиметр, чтобы проверить, работают ли контакты так, как вы ожидаете (без подключения драйвера). как только у вас это будет, добавьте драйвер (но без шагового двигателя) и посмотрите, что делают контакты для шаговых катушек. Если он проходит это, измерьте, какие катушки на самом деле подключены к шаговому устройству, и убедитесь, что они соответствуют драйверу., @Abel


1 ответ


0

Я надеюсь, что для каждого регистра GPIO ESP должно быть встроенное сопротивление подтягиванию.

Протестируйте вот так и опубликуйте свое наблюдение: 1. Не подключайте ничего(провода-перемычки ULN2003) к ESP и проверьте, плавают ли выбранные вами GPIO или нет. Если нет возможности читать, тогда все в порядке. 2. Подключите нагрузку и проверьте, плавают ли GPIO или нет.

,