Descargar PDF
      SAMOVAR                                  
×
Menú

I2CStepper

 
I2CStepper es un módulo independiente basado en un Arduino Nano con su propio motor paso a paso, cuatro relés, un sensor externo, una pantalla LCD de 16×2 y un encoder. El firmware actual usa el protocolo I2C v3.
El módulo puede usarse como dispositivo independiente. Puede controlarse por sí solo con el menú de la pantalla LCD de 16x2 y el encoder, o conectado a Samovar.
El expansor se conecta a Samovar por el bus I2C con cuatro cables (como una pantalla LCD). Samovar detecta que el expansor está conectado y puede controlarlo.
 
Samovar admite hasta diez placas con direcciones 1–10: una dirección impar es un agitador, una par es una placa de bomba/llenado. Se usan las placas con la dirección más baja de cada tipo. El agitador trabaja por velocidad, tiempo de marcha y pausa; la bomba trabaja en ml/h; el modo de llenado trabaja por un volumen y una velocidad fijados.
Si el dispositivo declara soporte de relés, el primer relé se puede conmutar desde la página I2CStepper, y los cuatro desde Lua. La función de los relés la decide el usuario: el firmware de Samovar no la define.
Los módulos se buscan en el bus al arrancar Samovar. Si se encuentra un módulo, en las páginas de los modos Destilación («Дистилляция»), Columna de mosto («Бражная колонна») y Cerveza («Пиво») aparece la pestaña «I2CStepper»; abre la página de control manual de la placa: velocidad, número de pasos, arranque y parada, relé 1. Los ajustes propios de la placa (dirección, modo, velocidad, tiempo de marcha y pausa del agitador, caudal de la bomba, volumen y velocidad de llenado, pasos por 1 ml) se editan en la pestaña Ajustes («Настройки») → «I2CStepper» y se guardan en la memoria del Nano. La calibración de la bomba externa se inicia con el botón «Calibración de la bomba externa» («Калибровка внешнего насоса») de la página I2CStepper; el resultado se escribe en el campo «Pasos/ml» («Шагов/мл») de la placa.
 
Esquema de conexión
Asignación de pines para conectar periféricos:
 
// 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
 
Consejo.
Si piensa usar el expansor como dispositivo aparte en su propia caja, tiene sentido conectarlo a Samovar con un cable USB A-B (ordenador - impresora). La alimentación +/- 5 voltios del módulo y las dos señales del bus I2C se toman directamente de la pantalla de Samovar. En la caja de Samovar se monta un conector USB-B.
  En la caja del expansor se monta un conector USB-A.
Así, al conectarlo a Samovar, el Arduino Nano recibe a la vez la alimentación y el bus I2C. Cuando se usa como dispositivo independiente, en lugar de Samovar se usa una fuente de alimentación aparte, por ejemplo un cargador de teléfono.
Si usa una fuente integrada, se coloca un conector USB-B en la salida de la fuente y se usa el mismo cable USB A-B para llevar la alimentación, lo que descarta enviar por error +5 voltios a Samovar
.
 
Periféricos.
 
El bloque de relés se usa a 5 voltios, preferiblemente controlado mediante optoacopladores. También pueden usarse relés de 12 voltios, con una conexión hecha con el mismo principio que en Samovar
 
Puede usarse cualquier bomba: con motor de corriente continua, o de corriente alterna monofásica o trifásica. Esto es así porque el motor de la bomba se arranca y se para mediante un relé y después mediante cualquier interruptor de potencia: un contactor o un relé de estado sólido. Para volúmenes pequeños puede fijarse en la bomba de arrastre magnético 15RM. Acero inoxidable, silenciosa y con buen caudal.
 
Para el agitador o la NBK (columna de mosto continua) puede usarse cualquier motor paso a paso bipolar, siempre que tenga suficiente potencia y par. Se recomienda un Nema 23 con un driver adecuado.
 
El firmware actual del Arduino Nano y la descripción del protocolo v3 están en el repositorio I2CStepper. Después de pasar al protocolo v3, compruebe la dirección de la placa, el modo y la calibración «Pasos/ml» («Шагов/мл»): al cambiar la versión, la estructura de la EEPROM se inicializa de nuevo.
 

Modos actuales:
— Mixer: agitador, revoluciones por minuto, tiempo de marcha, pausa, inversión tras la pausa y arranque suave.
— Pump: caudal continuo en ml/h con pausa opcional.
— Fill: llenado dosificado de un volumen fijado en ml.
Un sensor externo puede parar la bomba o ponerla en pausa. Si el I2C se cuelga, el propio módulo para el motor paso a paso y apaga los relés; tras la recuperación hace falta confirmar con el encoder.
 
Atención.
La función de Lua set_stepper_target(spd, direction, target) controla solo la bomba I2CStepper (la placa de trabajo con dirección par): velocidad, sentido y número de pasos. Si la bomba no responde en el bus, la función devuelve 0; no controla el motor paso a paso integrado de Samovar.
--set_stepper_target(spd, direction, target) //spd - velocidad en pasos por segundo,
direction - sentido directo o inverso,
target - número de pasos
Con spd = 0 el motor paso a paso se para.
Ejemplo
set_stepper_target(950, 0, 1000)
El ejemplo fija la velocidad 950, el sentido 0 y un desplazamiento de 1000 pasos.