Les machines de remplissage automatiques de bouteilles sont les plus couramment utilisées dans les industries des boissons et des boissons gazeuses. Ces machines utilisent une bande transporteuse qui est un moyen économique et rapide de remplir les bouteilles. La plupart des automates sont utilisés pour les machines de remplissage automatique de bouteilles, mais vous pouvez créer un remplisseur de bouteilles très basique et polyvalent à l' aide d'un Arduino. Vous pouvez programmer l'Arduino pour détecter automatiquement la bouteille à l'aide d'un capteur infrarouge ou à ultrasons et permettre à l'embouteilleur de se remplir en arrêtant la bande transporteuse pendant un certain temps. Ensuite, déplacez à nouveau la ceinture et arrêtez-vous lorsque la bouteille suivante est détectée.
Ici, nous allons concevoir un prototype de machine de remplissage automatique de bouteilles utilisant Arduino Uno, un tapis roulant, une électrovanne, un capteur IR et un moteur pas à pas. Le convoyeur à bande est entraîné par un moteur pas à pas à une vitesse prédéfinie constante. Le moteur pas à pas continuera à entraîner la courroie jusqu'à ce qu'un capteur infrarouge détecte la présence d'une bouteille sur la courroie. Nous avons utilisé le capteur IR comme déclencheur externe. Ainsi, chaque fois que le capteur IR devient haut, il envoie un déclencheur à Arduino pour arrêter le moteur et allumer l'électrovanne. Un délai requis prédéfini est déjà entré dans le code de remplissage de la bouteille. L'Arduino gardera l'électrovanne allumée et le moteur pas à pas éteint jusqu'à ce moment spécifié. Après ce temps, l'électrovanne arrête le remplissage et le convoyeur commence à se déplacer pour que la bouteille suivante puisse être remplie.
Nous avons précédemment utilisé Arduino avec électrovanne, capteur IR et moteur pas à pas, donc pour en savoir plus sur l'interfaçage de base d'Arduino avec ces composants, vous pouvez visiter les liens.
Composants requis
- Arduino Uno
- Moteur pas à pas (Nema17)
- Relais
- Électrovanne
- Capteur IR
- Pilote de moteur A4988
- Batterie
Schéma
Le schéma de circuit du système de remplissage automatique de bouteilles utilisant Arduino est donné ci-dessous.
J'ai utilisé Fritzing pour dessiner le schéma de circuit. Dans ce circuit, l'électrovanne est connectée à Arduino via le module de relais et le module de pilotage A4988 est utilisé pour contrôler le moteur pas à pas. Vous pouvez suivre le tutoriel Comment contrôler Nema17 avec Arduino et A4988 pour plus d'informations sur le module de pilote Nema17 et A4988.
La broche d'entrée du module de relais est connectée à la broche 7 d'Arduino. Les broches de direction et de pas du module A4988 sont connectées à 2 et 4 broches d'Arduino. Dans ce projet, un capteur IR est utilisé comme une interruption externe à Arduino. Dans Arduino Uno, les broches numériques 2 et 3 sont les broches d'interruption, alors connectez la broche Out du capteur IR à la 3 ème broche d'Arduino. L'électrovanne est alimentée par une source d'alimentation 24V et le moteur pas à pas est alimenté par une source d'alimentation 12V.
Programme Arduino pour le remplissage automatique des bouteilles
Le programme complet de ce système de remplissage automatique de bouteilles utilisant Arduino est donné à la fin. Ici, j'explique quelques lignes importantes.
Démarrez le programme en incluant la bibliothèque de moteurs pas à pas. Vous pouvez télécharger la bibliothèque de moteurs pas à pas ici.
Après cela, définissez le nombre de pas par tour pour le moteur pas à pas. Pour NEMA, 17 pas par tour équivaut à 200.
#comprendre
Spécifiez les broches auxquelles les broches Pas et Direction du module de commande de moteur sont connectées. Comme le moteur est connecté via le module pilote, définissez le type d'interface moteur comme Type1 .
Stepper stepper (STEPS, 2, 4); #define motorInterfaceType 1
Réglez la vitesse du moteur pas à pas.
stepper.setSpeed (500);
Définissez les broches de relais, de pas et de direction comme sortie
pinMode (relais, SORTIE); pinMode (4, SORTIE); pinMode (2, SORTIE);
La syntaxe de l'interruption externe dans Arduino est donnée ci-dessous:
attachInterrupt (digitalPinToInterrupt (broche), ISR, mode);
Où:
digitalPinToInterrupt (pin): Il est utilisé pour définir la broche sur laquelle l'interruption externe est connectée. Dans Arduino Uno, les broches 2 et 3 sont des broches d'interruption externes.
ISR: C'est une fonction qui est appelée lorsqu'une interruption externe est appelée.
Mode: Type de transition à déclencher, par exemple, en baisse, en hausse, etc.
En savoir plus sur les interruptions Arduino en suivant le lien.
Dans la fonction attachInterrupt () , il est spécifié que la broche 3 est la broche d'interruption externe, et la fonction IR_detected est appelée chaque fois que le capteur infrarouge change son état de LOW à HIGH (RISING).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () est une fonction ISR qui s'exécute lorsque le capteur IR passe à l'état haut. Ainsi, chaque fois que le capteur IR devient haut, cette fonction fait fonctionner le moteur pas à pas pendant quelques étapes, puis arrête le moteur pas à pas et allume l'électrovanne.
void IR_detected () {stepper.step (150); digitalWrite (relais, HIGH); stepper.step (0);
Maintenant, téléchargez enfin le code sur Arduino en le connectant à l'ordinateur portable. L'image ci-dessous montre notre prototype pour le système de remplissage automatique de bouteilles utilisant Arduino.
Le code complet et la vidéo de démonstration sont donnés ci-dessous.