Télécharger le PDF
      SAMOVAR                                  
×
Menu

I2CStepper

 
I2CStepper est un module autonome à base d'Arduino Nano, avec son propre moteur pas à pas, quatre relais, un capteur externe, un écran LCD 16×2 et un encodeur. Le micrologiciel actuel utilise le protocole I2C v3.
Le module peut servir d'appareil autonome. Il peut être commandé seul, avec le menu de l'écran LCD 16x2 et l'encodeur, ou une fois raccordé à Samovar.
L'extension se raccorde à Samovar par le bus I2C avec quatre fils (comme un écran LCD). Samovar détecte que l'extension est raccordée et peut la commander.
 
Samovar prend en charge jusqu'à dix cartes aux adresses 1–10 : une adresse impaire correspond à un agitateur, une adresse paire à une carte pompe/remplissage. Ce sont les cartes à l'adresse la plus basse de chaque type qui sont utilisées. L'agitateur fonctionne selon la vitesse, la durée de marche et la pause ; la pompe fonctionne en ml/h ; le mode remplissage fonctionne selon un volume et une vitesse fixés.
Si l'appareil annonce la prise en charge des relais, le premier relais peut être commuté depuis la page I2CStepper, et les quatre depuis Lua. L'usage des relais est défini par l'utilisateur : le micrologiciel de Samovar ne le fixe pas.
Les modules sont recherchés sur le bus au démarrage de Samovar. Si un module est trouvé, un onglet « I2CStepper » apparaît sur les pages des modes Distillation («Дистилляция»), Colonne à moût («Бражная колонна») et Bière («Пиво») ; il ouvre la page de commande manuelle de la carte : vitesse, nombre de pas, marche et arrêt, relais 1. Les réglages propres à la carte (adresse, mode, vitesse, durée de marche et pause de l'agitateur, débit de la pompe, volume et vitesse de remplissage, pas par 1 ml) se modifient dans Réglages («Настройки») → onglet « I2CStepper » et sont stockés dans la mémoire du Nano. L'étalonnage de la pompe externe se lance avec le bouton « Étalonnage de la pompe externe » («Калибровка внешнего насоса») de la page I2CStepper ; le résultat est écrit dans le champ « Pas/ml » («Шагов/мл») de la carte.
 
Schéma de câblage
Brochage pour le raccordement des périphériques :
 
// Broches I2C Master - raccordement de l'écran et éventuellement d'autres appareils
// SDA_PIN 0 //A0
// SCL_PIN 2 //D2
 
// Broches I2C Slave - communication avec Samovar
// SDA_PIN A4
// SCL_PIN A5
 
// Broches du moteur pas à pas
#define STEPPER_STEP 3
#define STEPPER_DIR 4
#define STEPPER_EN 5
 
//Broches des 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
 
// Broches de l'encodeur
#define ENC_CLK 7 //S2
#define ENC_DT 8  //S1
#define ENC_SW 9  //KEY
 
Conseil.
Si vous prévoyez d'utiliser l'extension comme appareil séparé dans son propre boîtier, il est judicieux de la raccorder à Samovar avec un câble USB A-B (ordinateur - imprimante). L'alimentation +/- 5 volts du module et les deux signaux du bus I2C sont pris directement sur l'afficheur de Samovar. Un connecteur USB-B est monté sur le boîtier de Samovar.
  Un connecteur USB-A est monté sur le boîtier de l'extension.
Ainsi, une fois raccordé à Samovar, l'Arduino Nano reçoit à la fois l'alimentation et le bus I2C. En utilisation autonome, une alimentation séparée remplace Samovar, par exemple un chargeur de téléphone.
Si vous utilisez une alimentation intégrée, un connecteur USB-B est placé sur la sortie du bloc d'alimentation et le même câble USB A-B sert à amener le courant, ce qui exclut tout envoi accidentel de +5 volts dans Samovar
.
 
Périphériques.
 
Le bloc de relais est utilisé en 5 volts, de préférence commandé par optocoupleurs. Des relais 12 volts peuvent aussi être utilisés, avec un raccordement réalisé selon le même principe que dans Samovar
 
N'importe quelle pompe convient : moteur à courant continu, ou moteur alternatif monophasé ou triphasé. En effet, le moteur de la pompe est mis en marche et arrêté via un relais, puis via n'importe quel commutateur de puissance : un contacteur ou un relais statique. Pour de petits volumes, vous pouvez regarder la pompe à entraînement magnétique 15RM. Inox, silencieuse, avec un bon débit.
 
Pour l'agitateur ou la NBK (colonne à moût continue), n'importe quel moteur pas à pas bipolaire convient, à condition qu'il ait assez de puissance et de couple. Un Nema 23 avec un driver adapté est recommandé.
 
Le micrologiciel actuel de l'Arduino Nano et la description du protocole v3 se trouvent dans le dépôt I2CStepper. Après le passage au protocole v3, vérifiez l'adresse de la carte, le mode et l'étalonnage « Pas/ml » («Шагов/мл») : au changement de version, la structure de l'EEPROM est réinitialisée.
 

Modes actuels :
— Mixer : agitateur, tours par minute, durée de marche, pause, inversion après la pause et démarrage progressif.
— Pump : débit continu en ml/h avec pause optionnelle.
— Fill : remplissage dosé d'un volume fixé en ml.
Un capteur externe peut arrêter la pompe ou la mettre en pause. Si l'I2C se bloque, le module arrête lui-même le moteur pas à pas et coupe les relais ; après le rétablissement, une confirmation à l'encodeur est nécessaire.
 
Attention.
La fonction Lua set_stepper_target(spd, direction, target) ne commande que la pompe I2CStepper (la carte de travail à adresse paire) : vitesse, sens et nombre de pas. Si la pompe ne répond pas sur le bus, la fonction renvoie 0 ; elle ne commande pas le moteur pas à pas intégré de Samovar.
--set_stepper_target(spd, direction, target) //spd - vitesse en pas par seconde,
direction - sens avant ou arrière,
target - nombre de pas
Avec spd = 0, le moteur pas à pas est arrêté.
Exemple
set_stepper_target(950, 0, 1000)
L'exemple fixe la vitesse 950, le sens 0 et un déplacement de 1000 pas.