I2CStepper ist ein eigenständiges Modul auf Basis eines Arduino Nano mit eigenem Schrittmotor, vier Relais, einem externen Sensor, einem 16×2-LCD und einem Drehgeber. Die aktuelle Firmware verwendet das Protokoll I2C v3.
Das Modul kann als eigenständiges Gerät verwendet werden. Es lässt sich allein über das Menü auf dem 16x2-LCD und den Drehgeber bedienen oder in Verbindung mit Samovar.
Die Erweiterung wird über den I2C-Bus mit vier Adern an Samovar angeschlossen (wie ein LCD-Display). Samovar erkennt, dass die Erweiterung angeschlossen ist, und kann sie steuern.
Samovar unterstützt bis zu zehn Platinen mit den Adressen 1–10: Eine ungerade Adresse ist ein Rührwerk, eine gerade Adresse eine Pumpen-/Abfüllplatine. Verwendet werden jeweils die Platinen mit der niedrigsten Adresse jedes Typs. Das Rührwerk arbeitet nach Drehzahl, Laufzeit und Pause; die Pumpe arbeitet in ml/h; der Abfüllmodus arbeitet mit vorgegebenem Volumen und vorgegebener Geschwindigkeit.
Meldet das Gerät Relaisunterstützung, lässt sich das erste Relais auf der I2CStepper-Seite schalten, alle vier aus Lua. Den Zweck der Relais legt der Benutzer fest: Die Samovar-Firmware definiert ihn nicht.
Die Module werden beim Start von Samovar auf dem Bus gesucht. Wird ein Modul gefunden, erscheint auf den Seiten der Modi Destillation («Дистилляция»), Maischekolonne («Бражная колонна») und Bier («Пиво») eine Registerkarte „I2CStepper“; sie öffnet die Seite zur manuellen Steuerung der Platine: Geschwindigkeit, Schrittzahl, Start und Stopp, Relais 1. Die eigenen Einstellungen der Platine (Adresse, Modus, Geschwindigkeit, Laufzeit und Pause des Rührwerks, Pumpenförderung, Abfüllvolumen und -geschwindigkeit, Schritte pro 1 ml) werden unter Einstellungen («Настройки») → Registerkarte „I2CStepper“ bearbeitet und im Speicher des Nano abgelegt. Die Kalibrierung der externen Pumpe wird mit der Schaltfläche „Kalibrierung der externen Pumpe“ («Калибровка внешнего насоса») auf der I2CStepper-Seite gestartet; das Ergebnis wird in das Feld „Schritte/ml“ («Шагов/мл») der Platine geschrieben.
Anschlussschema
Pinbelegung für den Anschluss der Peripherie:
// Pins für I2C Master - Anschluss des Displays und ggf. weiterer Geräte
// SDA_PIN 0 //A0
// SCL_PIN 2 //D2
// Pins für I2C Slave - Kommunikation mit Samovar
// SDA_PIN A4
// SCL_PIN A5
// Pins für den Schrittmotor
#define STEPPER_STEP 3
#define STEPPER_DIR 4
#define STEPPER_EN 5
//Pins für die Relais
#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 für den Drehgeber
#define ENC_CLK 7 //S2
#define ENC_DT 8 //S1
#define ENC_SW 9 //KEY
Tipp.
Wenn Sie die Erweiterung als separates Gerät in einem eigenen Gehäuse verwenden wollen, ist es sinnvoll, sie mit einem USB-A-B-Kabel (Computer – Drucker) an Samovar anzuschließen. Die Versorgung +/- 5 Volt des Moduls und die beiden Signale des I2C-Busses werden direkt vom Display von Samovar abgegriffen. Am Samovar-Gehäuse wird eine USB-B-Buchse montiert.
Am Gehäuse der Erweiterung wird eine USB-A-Buchse montiert.
So erhält der Arduino Nano beim Anschluss an Samovar gleichzeitig Versorgung und I2C-Bus. Beim Einsatz als eigenständiges Gerät wird statt Samovar ein separates Netzteil verwendet, zum Beispiel ein Handy-Ladegerät.
Bei einem eingebauten Netzteil wird an dessen Ausgang eine USB-B-Buchse gesetzt und dasselbe USB-A-B-Kabel zur Stromzufuhr verwendet; das schließt aus, dass versehentlich +5 Volt in Samovar eingespeist werden.
Peripherie.
Der Relaisblock wird mit 5 Volt betrieben, vorzugsweise mit Ansteuerung über Optokoppler. Auch 12-Volt-Relais sind möglich, mit einem Anschluss nach demselben Prinzip wie bei Samovar
Jede Pumpe ist verwendbar: mit Gleichstrommotor oder mit Wechselstrommotor, einphasig oder dreiphasig. Der Pumpenmotor wird nämlich über ein Relais und dann über einen beliebigen Leistungsschalter gestartet und gestoppt: ein Schütz oder ein Halbleiterrelais. Für kleine Mengen bietet sich die Magnetkupplungspumpe 15RM an. Edelstahl, leise, mit guter Förderleistung.
Für das Rührwerk oder die NBK (kontinuierliche Maischekolonne) ist jeder bipolare Schrittmotor geeignet, sofern Leistung und Drehmoment ausreichen. Empfohlen wird ein Nema 23 mit passendem Treiber.
Die aktuelle Firmware für den Arduino Nano und die Beschreibung des Protokolls v3 finden Sie im I2CStepper-Repository. Prüfen Sie nach dem Umstieg auf das Protokoll v3 die Adresse der Platine, den Modus und die Kalibrierung „Schritte/ml“ («Шагов/мл»): Beim Versionswechsel wird die EEPROM-Struktur neu initialisiert.
Aktuelle Modi:
— Mixer: Rührwerk, Umdrehungen pro Minute, Laufzeit, Pause, Richtungswechsel nach der Pause und Sanftanlauf.
— Pump: kontinuierliche Förderung in ml/h mit optionaler Pause.
— Fill: dosiertes Abfüllen eines vorgegebenen Volumens in ml.
Ein externer Sensor kann die Pumpe stoppen oder pausieren. Hängt der I2C-Bus, stoppt das Modul selbst den Schrittmotor und schaltet die Relais ab; nach der Wiederherstellung ist eine Bestätigung mit dem Drehgeber erforderlich.
Achtung.
Die Lua-Funktion set_stepper_target(spd, direction, target) steuert nur die I2CStepper-Pumpe (die Arbeitsplatine mit gerader Adresse): Geschwindigkeit, Richtung und Schrittzahl. Antwortet die Pumpe nicht auf dem Bus, gibt die Funktion 0 zurück; den eingebauten Schrittmotor von Samovar steuert sie nicht.
--set_stepper_target(spd, direction, target) //spd - Geschwindigkeit in Schritten pro Sekunde,
direction - Richtung vorwärts oder rückwärts,
target - Anzahl der Schritte
Bei spd = 0 ist der Schrittmotor gestoppt.
Beispiel
set_stepper_target(950, 0, 1000)
Das Beispiel setzt Geschwindigkeit 950, Richtung 0 und eine Bewegung um 1000 Schritte.