Скачать PDF
        САМОВАР 
×
Меню

I2CStepper

Расширение возможностей Самовара с помощью дополнительной платы I2CStepper с шаговым двигателем и четырьмя реле.
Модуль может быть использован как самостоятельное устройство. Управление возможно как отдельно с помощью меню на LCD экране 16х2 и энкодера, так и при подключении к Самовару.
Расширитель подключается к Самовару по шине I2C четырьмя проводами (как LCD экран). Самовар понимает, что расширитель подключен и может им управлять.
 
Samovar 7.00: прошивка работает с платами по протоколу версии 3. На шине может быть до десяти плат с адресами I2C от 1 до 10: платы с нечётным адресом (1, 3, 5…) — мешалки, с чётным (2, 4, 6…) — насосы (прокачка или наполнение заданного объёма). Каждая плата сообщает Самовару, что умеет: мешалка, прокачка, наполнение, реле, внешний датчик. Платы ищутся при запуске Самовара и дальше опрашиваются в фоне; если хотя бы одна найдена, на главной странице любого режима появляется кнопка «I2CStepper», которая открывает страницу управления платой. Плата, однажды ответившая на шине, остаётся в списке до перезагрузки Самовара; если связь с ней потеряна, она помечается как недоступная.
В работе (программа ректификации, Lua, режимы Пиво и Сыр) Самовар использует одну рабочую мешалку и один рабочий насос — платы с наименьшим адресом среди найденных. Они фиксируются в момент запуска процесса и не меняются до его окончания, даже если во время работы появится плата с меньшим адресом.
Первое реле в режиме Пиво используется для управления насосом перекачки сусла в режиме вкл/выкл (например, для циркуляции сусла в варочнике). Остальные реле прошивка не занимает — их назначение вы определяете сами, включать их можно из Lua. Реле обслуживает рабочая мешалка, если она заявила поддержку реле, иначе рабочий насос.
Настройки самой платы (режим, обороты, время работы и паузы мешалки, подача насоса, объём и скорость наполнения, шагов на миллилитр) хранятся в памяти Nano и правятся на вкладке Настройки → I2CStepper, см. ниже. Страница «I2CStepper» служит только для ручного запуска и остановки.
 
Страница «I2CStepper»
Страница «I2CStepper»: выбрана плата насоса с адресом 2
1

Устройство

Список плат, найденных на шине; показан, если плат две и больше. Мешалки имеют нечётный адрес, насосы — чётный.
 
2

Состояние платы

«Работает» или «Остановлен»; ниже — текущая скорость насоса и оставшийся объём.
 
3

Скорость и объём

Скорость насоса в литрах в час и объём в миллилитрах для кнопки «Запустить». «Стоп» останавливает насос.
 
4

Реле 1

Показано, если плата поддерживает реле; переключает первое реле платы.
 
5

Калибровка внешнего насоса

Только у плат-насосов: открывает страницу калибровки «Шагов/мл» для выбранной платы.
 
 
Если найдено две платы и больше, вверху появляется список «Устройство» — в нём выбирается плата, с которой вы работаете: «Мешалка, адрес N» или «Насос, адрес N». При одной плате список скрыт. Если выбранная плата недоступна, вместо панели выводится сообщение «Выбранный I2CStepper недоступен» — другая плата автоматически не подставляется, её нужно выбрать в списке.
Для выбранной платы показывается её тип и адрес, состояние («Работает» или «Остановлен»), текущая скорость в шагах в секунду и сколько шагов осталось сделать до остановки. Данные обновляются каждые две секунды.
Управление. «Скорость» — скорость двигателя в шагах в секунду (от 1 до 18000), «Цель, шагов» — сколько шагов сделать. Кнопка «Запустить» передаёт эти два значения плате и запускает двигатель в режиме, записанном в памяти Nano: у мешалки это вращение, у насоса — наполнение заданным числом шагов. Для насоса число шагов проще посчитать из объёма: умножьте нужные миллилитры на «Шагов/мл» из настроек Nano. «Стоп» останавливает двигатель. Запуск невозможен, если насос не откалиброван («Шагов/мл» равно нулю) или Самовар как раз переключает режим — тогда выводится сообщение об ошибке.
Реле. Если плата заявила поддержку реле, показана кнопка «Включить реле 1» / «Выключить реле 1» — она переключает первое реле платы (в режиме Пиво это насос сусла). Реле 2–4 со страницы не переключаются, только из Lua.
Калибровка внешнего насоса. Кнопка есть только у плат-насосов с поддержкой наполнения. Она открывает страницу калибровки для выбранной платы: подготовьте мерную ёмкость, задайте скорость двигателя и нажмите «Начать калибровку» — насос начнёт качать. Когда наберётся ровно 100 мл, нажмите «Зафиксировать 100 мл»: Самовар посчитает «Шагов/мл» и запишет значение в память Nano. Повторяйте калибровку после изменения микрошагов драйвера, двигателя, головки насоса или трубки.
 
Настройки Самовара
Настройки → I2CStepper. Вкладка «Настройки Nano I2CStepper» показывает настройки, хранящиеся в памяти самой платы. Кнопка «Пересканировать I2C-устройства» заново ищет платы на шине (например, после подключения новой). При нескольких платах нужная выбирается в списке «Устройство». Поля:
Кнопка «Сохранить в Nano» записывает поля в энергонезависимую память платы; они переживают перезапуск и Самовара, и платы.
Настройки → Насос. Если найден I2C-насос, на вкладке появляются два поля для ректификации:
Скорость в литрах в час для этого насоса пересчитывается в шаги по «Шагов/мл» из памяти Nano, отдельного поля «Количество шагов I2C насоса» в настройках Самовара больше нет.
 
Мобильные приложения и сайт
Приложения Самовар и страница «Управление» на сайте samovar-tool.ru получают список плат и их состояние (доступность, режим, скорость, остаток, маска реле) раз в пять секунд и позволяют запустить и остановить плату, а также переключить реле. Настройки Nano и калибровка через приложения недоступны — только через веб-интерфейс Самовара. Если команда отклонена, причина приходит в сообщениях Самовара в виде «Blynk V37 a=N: код».
 
Схема и подключение
Схема соединений
Распиновка подключения периферии:
 
// Пины для I2C Master - подключение экрана и потенциально других устройств
// SDA_PIN 0 //A0
// SCL_PIN 2 //D2
 
// Пины для I2C Slave - связь с Samovar
// SDA_PIN A4
// SCL_PIN A5
 
// Пины для шагового двигателя
#define STEPPER_STEP 3
#define STEPPER_DIR 4
#define STEPPER_EN 5
 
//Пины для реле
#define MIXER_PUMP_PIN 13 // RELE_PIN1
#define RELE_PIN2 10      // RELE_PIN2
#define RELE_PIN3 11      // RELE_PIN3
#define RELE_PIN4 12      // RELE_PIN4
 
// Пины для Encoder
#define ENC_CLK 7 //S2
#define ENC_DT 8  //S1
#define ENC_SW 9  //KEY
 
Совет.
Если планируется использовать расширитель как отдельное устройство, в отдельном корпусе, имеет смысл подключать его к Самовару через USB кабель А-В (компьютер - принтер). Непосредственно от дисплея Самовара берется питание для модуля +/- 5 вольт и два сигнала шины I2C. На корпусе Самовара монтируется разъем USB-B.
  На корпусе расширителя монтируется разъем USB-A.
Таким образом, при подключении к Самовару Arduino Nano одновременно подключается и к питанию и к шине I2C. В случае использования как самостоятельное устройство, вместо Самовара используется отдельный блок питания, например зарядка от телефона.
При использовании встроенного блока питания на выход БП ставится разъем USB-B, и для подачи питания используется тот же кабель USB A-B, что исключает случайную подачу +5 вольт на Самовар
.
 
Периферия.
 
Блок реле используется на напряжение 5 вольт, предпочтительно с управлением через оптопаты. Можно использовать и 12-ти вольтовые реле с подключением по принципу как в Самоваре.
 
Насос можно использовать любой. Двигатель постоянного напряжения или переменного одно- или трех- фазный. Потому как пуск и остановка двигателя насоса осуществятся через реле и далее через любой силовой коммутатор: контактор или твердотельное реле. Для небольших объемов можно присмотреться к насосу с магнитным приводом 15RM. Нержавейка, тихий, с хорошей производительностью.
 
Шаговый двигатель для мешалки или НБК можно использовать любой биполярный, при условии, что у него хватит мощности и крутящего момента. Рекомендуется Nema 23 с соответствующим драйвером.
 
Актуальный скетч для Arduino Nano, управляющий шаговым двигателем и четырьмя реле можно скачать  по ссылке . Нужна версия с протоколом v3; при переходе с протокола v2 память платы инициализируется заново — заново проверьте адрес, режим и «Шагов/мл». Основное назначение - использование совместно с Самоваром как модуль расширения. Необходимо использовать библиотеки, идущие в комплекте с Самоваром.
 
Управление из Lua
Функции доступны, когда прошивка собрана с Lua (см. О скриптовом языке программирования Lua). Функции мешалки работают с рабочей мешалкой, функции насоса — с рабочим насосом (платы с наименьшим адресом, см. выше). Все функции запуска возвращают 1, если команда принята платой, и 0, если нет — в том числе если нужной платы нет на шине.
Внимание. Реле обслуживает рабочая мешалка, если она заявила поддержку реле; иначе рабочий насос. Функции, меняющие состояние, не выполняются в режиме симуляции Lua и во время переключения режима Самовара.
Пример: set_stepper_by_time(800, 0, 0) – крутить мешалку непрерывно на 800 шагах в секунду; set_stepper_by_time(0, 0, 0) – остановить. i2cpump_start(6, 250) – перекачать 250 мл со скоростью 6 л/ч; пока i2cpump_get_running() == 1, насос работает.