ARDUINO Независимое управление 6 (шестью) шаговыми двигателями.

ken2559

✩✩✩✩✩✩✩
5 Ноя 2019
7
0
Подскажите возможные варианты подключения шести шаговых двигателей 28BYJ-48-5V к esp8266. Будут ли работать шаговики через расширитель цифровых портов, например MCP23017 ?
 

ken2559

✩✩✩✩✩✩✩
5 Ноя 2019
7
0
Да, с помощью ULN. У меня уже есть работающее устройство (управление жалюзи с помощью механических кнопок, + RTC DS3231, + Blynk) на esp8266 для одного 28BYJ. К сожалению гугл нечего не подсказал для шести 28BYJ.
 

poty

★★★★★★✩
19 Фев 2020
3,218
937
Не уверен, что будут работать стандартные библиотеки управления шаговыми двигателями (видимо, потребуют тюнинга), но само по себе решение рабочее. Ну.... если, конечно, не потребуются совсем уж большие частоты управления.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,242
1,297
Москва
Для управления ULN используется 4 контакта, каждый из которых дергается с определенной последовательностью.
Т.е. меняются раз в шаг. там 4000 шагов (с копейками) на оборот (при полушаге) . При этом идет скорость 6 оборотов в минуту, т.е. довольно медленно. примерно 400 шагов в секунду. Или 200 при полном шаге. В принципе вполне можно сделать работу и 6 двигателей. Да хоть на том же сдвиговом регистре. (3 штуки в ряд). Времени должно хватить. Тут главное не запутаться в мотороах.

Хотел предложить перейти на правильные драйвера и моторы, но передуммал. ULN работает куда тише и эта версия сильно бюджетнее
 

ken2559

✩✩✩✩✩✩✩
5 Ноя 2019
7
0
Подведу итог.

Уже имеется устройство для управления одним жалюзи:
Wemos d1 mini - 1 шт. (для управления через Blynk)
RTC DS3231 - 1 шт. (для управления по таймеру)
28BYJ-48-5V - 1 шт. (для вращения вала жалюзи)

Использованы библиотеки AlexGaver:
GyverStepper.h
GyverButton.h
------------------------------------------------------------------------
Необходимо раздельно управлять 6-ю жалюзи.

  • с помощью мех. кнопок (2 цифровых порта, вход)
  • с помощью blynk
  • по таймеру (i2c)

То есть, потребуется:
6 шаговиков 28BYJ-48-5V (24 цифровых порта, выход)

A. "Решение в лоб"
wemos d1 mini - 4шт. х $3 = $12
ИТОГО: $12

"+"
1) скетч написан (хотя надо будет править для "interconnection)
2) надежность (вряд ли все четыре esp обломаются одновременно)

"-"
1) Как-то не красиво получается


B. С помощью расширителей цифровых портов MCP23017

wemos d1 mini - 1 шт - $3
MCP23017 - 2 щт х $2 = $4
ИТОГО: $7

"+"
1) На $5 дешевле.

"-"
1) Не знаю, будет ли работать шаговик через расширитель или сдвиговый регистр
2) Нужно переписsывать код

C. С помощью ардуино с достаточным количеством портов + esp

atmega 2560 mini - 1 шт - $10
esp01 - 1 шт - 2$
ИТОГО: $12

"+"
1) 54 порта (вообще то, есть куда задействовать)
2) Будет второй плюс, если библиотеки AlexGaver совместимы с atmega 2560

"-"
1) Стоимость
2) При поломке atmega 2560 все перестает работать.

Скорее всего будет вариант "С".
Подскажите, совместимы ли библиотеки GyverStepper.h, GyverButton.h с atmega 2560 ?

ПС
Наверное самое недорогое решение будет со сдвиговыми регистрами, но я с ними не работал и вряд ли пригодятся библиотеки AlexGaver
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,242
1,297
Москва
Сдвиговый регистр это просто, он управляется всего 3-мя строками:
digitalWrite(latchPin, LOW); - защелку вниз
shiftOut(dataPin, clockPin, MSBFIRST, data); - передача байта. у вас будет 3 байта, значит строку надо будет повторить 3 раза.
digitalWrite(latchPin, HIGH); - защелку вверх
Работать должно! Для каждого мотора установить свой полубайт и все передавать. Если мотор не используется, то передаются нули для соотв. бита
 

poty

★★★★★★✩
19 Фев 2020
3,218
937
БИБЛИОТЕКА GYVERSTEPPER
Поддерживаемые платформы: все Arduino (используются стандартные Wiring-функции)
БИБЛИОТЕКА GYVERBUTTON
Поддерживаемые платформы: все Arduino (используются стандартные Wiring-функции)

Сдвиговый регистр это просто
Точно! Вопрос только в небольшом изменении библиотек управления двигателями. Хотя с такими простыми двигателями проще написать собственное управление, чем заморачиваться с библиотеками.
 
Изменено:

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
Я бы таки использовал esp+arduino.
+
Расширяемость
Можно отдать некоторые рутины ардуино и вообще с ними не заморачиваться на головном устройстве (надеюсь ТС понимает, что головным должно быть то устройство, у которого вычеслительных мощностей больше?)
Универсальность.
-
не вижу. В любом случае если что-то сломается, - работать не будет.


Интересное по теме

 

bort707

★★★★★★✩
21 Сен 2020
3,044
909
я бы предложил 6 Вемосов и 6 моторов
Главный плюс - код уже есть.
В любом другом случае код придется заказывать, а это в разы перекроет стоимость любого железа.
Смешно читать, как ТС считает экономию в 5 баксов, не понимая что написание нового кода встанет ему минимум в $50
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,242
1,297
Москва
В целом я согласен, что 6 вемосов лучше.
в + можно прицепить вифи и написать приложение для управления. А можно еще взять одну вемос или еще что, которая будет объединять все эти жалюзи в группы.
 

ken2559

✩✩✩✩✩✩✩
5 Ноя 2019
7
0
Избыточное цитирование
Я бы таки использовал esp+arduino.
+
Расширяемость
Можно отдать некоторые рутины ардуино и вообще с ними не заморачиваться на головном устройстве (надеюсь ТС понимает, что головным должно быть то устройство, у которого вычеслительных мощностей больше?)
Универсальность.
-
не вижу. В любом случае если что-то сломается, - работать не будет.


Интересное по теме

Решил потестировать ATmega2560 + esp в качестве wifi модема. Все работает. НО, если пропадает wifi или blynk, то на время восстановления соединения (до 10 сек) код не работает. Может сталкивались с такой проблемой? Как сделать так, чтобы код работал вне зависимости от wifi и blynk соединения?
 

Александр Симонов

★★★★✩✩✩
2 Авг 2018
727
208
@ken2559, код не может не работать. Значит, код сидит в бесконечном цикле в ожидании ответа (или таймаута). Читай код, ищи этот цикл, думай как переделать без него.
 

ken2559

✩✩✩✩✩✩✩
5 Ноя 2019
7
0
а что он должен делать при пропадании вайфая?
Жалюзи управляются:
1) с помощью мех. кнопок, подключенных к mega2560
2) по таймеру
3) через blynk

Если пропадает питание, а после появления отсутствует wifi, то esp-модем будет пытаться восстановить соединение до бесконечности. При это код в mega не выполняется. Т.е. управление жалюзи отсутствует.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
то esp-модем будет пытаться восстановить соединение до бесконечности.
надеюсь ТС понимает, что головным должно быть то устройство, у которого вычеслительных мощностей больше?)
То есть, контроллер с 80кБ ОЗУ, и процессором на 160МГц у вас ходит в рабах у контроллера с 8кБ ОЗУ на 16МГц. Мда...
И вот от этого плясать.
 

Nikanor

★★✩✩✩✩✩
1 Окт 2020
178
51
Как сделать так, чтобы код работал вне зависимости от wifi и blynk соединения?
а зачем для жалюзи ви-фи и блинки.
это всё баловство.
геморно и не удобно.
поиграетесь и забудете.
достаточно или пульта (балкон, три жалюзятины) или коробочки с кнопками за шторой (спальня, две жалюзятины).
подхожу к ним раз пару раз в году ....
 
  • Лойс +1
Реакции: bort707