САМОВАР 
×
Меню

I2CStepper

 
Расширение возможностей Самовара с помощью дополнительного модуля на Arduino Nano. В дальнейшем, на этом расширителе, могут быть реализованы дополнительные функции.
 
Модуль может быть использован как самостоятельное устройство. Управление возможно как отдельно с помощью меню на LCD экране 16х2 и энкодера, так и при подключении к Самовару.
Расширитель подключается к Самовару по шине I2C четырьмя проводами (как LCD экран). Самовар понимает, что расширитель подключен и может им управлять.
 
В данном случае этот расширитель управляет шаговым двигателем для мешалки  и четырьмя реле в режиме Пиво.
Первое реле используется для управления насосом перекачки сусла в режиме вкл/выкл. Например, для циркуляции сусла в варочнике . Три других могут использоваться для управления дополнительной периферией.
 
Схема соединений
Распиновка подключения периферии:
 
// Пины для 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, управляющий шаговым двигателем и четырьмя реле можно скачать  по ссылке . Основное назначение - использование совместно с Самоваром как модуль расширения. Необходимо использовать библиотеки, идущие в комплекте с Самоваром.
 

Дополнительно.
Так же управляет шаговым двигателем в двух режимах:
- Управление мешалкой на шаговом двигателе для режима Пиво.
- Управление шаговым двигателем перистальтического насоса отбора.
Если не подключен расширитель I2CStepper на Arduino Nano, то вызов функции в Lua set_stepper_target управляет штатным шаговым двигателем, иначе управление идет через расширитель. Выбор режима осуществляется в настройках устройства.
 
Внимание.
При управлении штатным штатным шаговым двигателем учитывается только один параметр - spd, скорость в шагах в секунду, при этом в вызове функции необходимо передавать все три параметра.
--set_stepper_target(spd, direction, target) //spd - скорость в шагах в секунду,
direction - прямое или обратное направление,
target - количество шагов
При spd = 0 шаговый двигатель будет остановлен.
Пример
set_stepper_target(950, 0, 0)