下载 PDF
        SAMOVAR 
×
菜单

I2CStepper

通过附加的 I2CStepper 板(带一台步进电机和四个继电器)扩展 Samovar 的功能。
该模块可以作为独立设备使用。既可以用 16x2 LCD 屏幕上的菜单和编码器单独控制,也可以连接到 Samovar 使用。
扩展器通过 I2C 总线用四根线连接到 Samovar(与 LCD 屏幕相同)。Samovar 能识别到扩展器已连接,并可以控制它。
 
Samovar 7.00: 固件使用第 3 版协议与扩展板通信。总线上最多可以有十块板,I2C 地址为 1 到 10:奇数地址(1、3、5…)的板是搅拌器,偶数地址(2、4、6…)的板是泵(连续泵送或灌装设定体积)。每块板会告诉 Samovar 自己能做什么:搅拌、泵送、灌装、继电器、外部传感器。Samovar 启动时搜索扩展板,之后在后台轮询;只要找到至少一块,每个模式的主页面上都会出现“I2CStepper”按钮,用于打开扩展板控制页面。曾在总线上响应过的板会一直保留在列表中,直到 Samovar 重启;如果与它的通信中断,它会被标记为不可用。
运行过程中(精馏程序、Lua、“啤酒”和“奶酪”模式),Samovar 使用一台工作搅拌器和一台工作泵 — 即找到的板中地址最小的那块。它们在过程开始时确定,直到过程结束都不会改变,即使运行中出现了地址更小的板也一样。
在“啤酒”模式下,第一个继电器用于开关麦汁转移泵(例如让麦汁在煮锅中循环)。其余继电器固件不使用 — 用途由您决定,可以从 Lua 中切换。继电器由工作搅拌器负责(如果它声明支持继电器),否则由工作泵负责。
扩展板本身的设置(模式、转速、搅拌器运行时间和暂停时间、泵流量、灌装体积和速度、每毫升步数)保存在 Nano 的存储器中,在设置 → I2CStepper 选项卡(«Настройки → I2CStepper»)中编辑,见下文。“I2CStepper”页面只用于手动启动和停止。
 
“I2CStepper”页面
“I2CStepper”页面:已选择地址为 2 的泵板
1

设备(«Устройство»)

在总线上找到的扩展板列表;有两块或更多板时显示。搅拌器为奇数地址,泵为偶数地址。
 
2

扩展板状态

“运行中”(«Работает»)或“已停止”(«Остановлен»);下方是当前泵速和剩余体积。
 
3

速度与体积

用于“启动”(«Запустить»)按钮的泵速(升/小时)和体积(毫升)。“停止”(«Стоп»)使泵停止。
 
4

继电器 1

扩展板支持继电器时显示;切换扩展板的第一个继电器。
 
5

外部泵校准

仅用于泵板:打开所选板的“步/毫升”(«Шагов/мл»)校准页面。
 
 
如果找到两块或更多扩展板,顶部会出现“设备”(«Устройство»)列表 — 用它选择要操作的板:“搅拌器,地址 N”(«Мешалка, адрес N»)或“泵,地址 N”(«Насос, адрес N»)。只有一块板时该列表隐藏。如果所选的板不可用,面板位置会显示消息“所选 I2CStepper 不可用”(«Выбранный I2CStepper недоступен»)— 不会自动换成另一块板,需要在列表中手动选择。
对于所选的板,页面显示其类型和地址、状态(“运行中”(«Работает»)或“已停止”(«Остановлен»))、以每秒步数表示的当前速度以及停止前剩余的步数。数据每两秒刷新一次。
控制。“速度”(«Скорость»)是以每秒步数表示的电机速度(1 到 18000),“目标,步”(«Цель, шагов»)是要走的步数。“启动”(«Запустить»)按钮把这两个值发送给扩展板,并按 Nano 存储器中保存的模式启动电机:搅拌器为旋转,泵为按给定步数灌装。对于泵,按体积计算步数更方便:把所需毫升数乘以 Nano 设置中的“步/毫升”(«Шагов/мл»)。“停止”(«Стоп»)使电机停止。如果泵未校准(“步/毫升”为零),或 Samovar 此时正在切换模式,则无法启动 — 此时会显示错误消息。
继电器。如果扩展板声明支持继电器,会显示“打开继电器 1”(«Включить реле 1»)/“关闭继电器 1”(«Выключить реле 1»)按钮 — 它切换扩展板的第一个继电器(在“啤酒”模式下是麦汁泵)。继电器 2–4 不能在此页面上切换,只能从 Lua 中切换。
外部泵校准。该按钮仅对支持灌装的泵板可用。它会打开所选板的校准页面:准备一个量具,设定电机速度,然后点击“开始校准”(«Начать калибровку»)— 泵开始泵送。正好收集到 100 mL 时,点击“记录 100 mL”(«Зафиксировать 100 мл»):Samovar 计算出“步/毫升”,并把该值写入 Nano 存储器。更换驱动器微步设置、电机、泵头或管子后,请重新校准。
 
Samovar 设置
设置 → I2CStepper。“Nano I2CStepper 设置”(«Настройки Nano I2CStepper»)选项卡显示保存在扩展板自身存储器中的设置。“重新扫描 I2C 设备”(«Пересканировать I2C-устройства»)按钮重新在总线上搜索扩展板(例如在连接新板之后)。如果有多块板,在“设备”列表中选择需要的那块。字段:
“保存到 Nano”(«Сохранить в Nano»)按钮把这些字段写入扩展板的非易失性存储器;Samovar 和扩展板重启后数据都会保留。
设置 → 泵(«Настройки → Насос»)。如果找到 I2C 泵,该选项卡上会出现两个用于精馏的字段:
该泵以升/小时表示的速度按 Nano 存储器中的“步/毫升”换算成步数;Samovar 设置中已不再有单独的“I2C 泵步数”(«Количество шагов I2C насоса»)字段。
 
移动应用与网站
Samovar 应用和 samovar-tool.ru 网站上的 Samovar 控制页面每五秒接收一次扩展板列表及其状态(可用性、模式、速度、剩余量、继电器掩码),并可以启动和停止扩展板、切换继电器。Nano 设置和校准不能通过应用进行 — 只能通过 Samovar 网页界面。如果命令被拒绝,原因会以“Blynk V37 a=N: code”(«Blynk V37 a=N: код»)的形式出现在 Samovar 消息中。
 
电路图与接线
接线图
外设连接引脚:
 
// Pins for I2C Master - connecting the screen and potentially other devices
// SDA_PIN 0 //A0
// SCL_PIN 2 //D2
 
// Pins for I2C Slave - communication with Samovar
// SDA_PIN A4
// SCL_PIN A5
 
// Pins for the stepper motor
#define STEPPER_STEP 3
#define STEPPER_DIR 4
#define STEPPER_EN 5
 
//Pins for the relays
#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
 
// Pins for the encoder
#define ENC_CLK 7 //S2
#define ENC_DT 8  //S1
#define ENC_SW 9  //KEY
 
提示。
如果打算把扩展器做成装在独立外壳里的单独设备,用 USB A-B 线(电脑 - 打印机线)把它连接到 Samovar 是合理的选择。模块电源(+/- 5 伏)和两路 I2C 总线信号直接从 Samovar 的显示屏处引出。Samovar 外壳上安装 USB-B 插座。
  扩展器外壳上安装 USB-A 插座。
这样,连接到 Samovar 时,Arduino Nano 同时获得电源和 I2C 总线。作为独立设备使用时,用单独的电源代替 Samovar,例如手机充电器。
使用内置电源时,在电源输出端装一个 USB-B 插座,用同一根 USB A-B 线供电,这样就排除了误把 +5 伏送入 Samovar 的可能
。
 
外设。
 
继电器模块使用 5 伏,最好带光耦控制。也可以使用 12 伏继电器,接法与 Samovar 中相同。
 
可以使用任何泵:直流电机,或者交流单相、三相电机。泵电机的启停先经过继电器,再经过任意功率开关:接触器或固态继电器。小流量时可以考虑 15RM 磁力驱动泵。不锈钢材质,安静,流量好。
 
搅拌器或 NBK 可以使用任何双极步进电机,只要功率和扭矩足够即可。推荐使用 Nema 23 配匹配的驱动器。
 
控制步进电机和四个继电器的 Arduino Nano 最新草图(sketch)可以 通过此链接下载。需要使用协议 v3 的版本;从协议 v2 升级时,扩展板存储器会重新初始化 — 请重新检查地址、模式和“步/毫升”。它的主要用途是作为扩展模块与 Samovar 配合使用。必须使用 Samovar 附带的库。
 
从 Lua 控制
当固件带 Lua 编译时,以下函数可用(见关于 Lua 脚本语言)。搅拌器函数作用于工作搅拌器,泵函数作用于工作泵(即地址最小的板,见上文)。所有启动函数在命令被扩展板接受时返回 1,否则返回 0 — 包括总线上没有所需扩展板的情况。
注意。继电器由工作搅拌器负责(如果它声明支持继电器);否则由工作泵负责。改变状态的函数在 Lua 模拟模式下以及 Samovar 切换模式期间不会执行。
示例:set_stepper_by_time(800, 0, 0) – 搅拌器以每秒 800 步连续旋转;set_stepper_by_time(0, 0, 0) – 停止搅拌器。i2cpump_start(6, 250) – 以 6 L/h 泵送 250 mL;当 i2cpump_get_running() == 1 时,泵正在运行。