Las máquinas automáticas de llenado de botellas se utilizan con mayor frecuencia en las industrias de bebidas y refrescos. Estas máquinas usan una cinta transportadora que es una forma económica y rápida de llenar botellas. La mayoría de los PLC se utilizan para máquinas automáticas de llenado de botellas, pero puede hacer una llenadora de botellas muy básica y versátil usando un Arduino . Puede programar el Arduino para que detecte automáticamente la botella usando IR o un sensor ultrasónico y permita que el embotellador se llene deteniendo la cinta transportadora durante un tiempo. Luego, mueva nuevamente la correa y pare cuando se detecte la próxima botella.
Componentes requeridos
- Arduino Uno
- Motor paso a paso (Nema17)
- Relé
- Válvula de solenoide
- Sensor de infrarrojos
- A4988 Motor Driver
- Batería
Diagrama de circuito
En este circuito, la válvula solenoide se conecta a Arduino a través del módulo de relé y el módulo del controlador A4988 se usa para controlar el motor paso a paso.
El pin de entrada del módulo de relé está conectado al pin 7 de Arduino. Los pines de dirección y paso del módulo A4988 están conectados a 2 y 4 pines de Arduino. En este proyecto, se utiliza un sensor IR como una interrupción externa a Arduino . En Arduino Uno, pin digital 2 y 3 son los pasadores de interrupción, por lo que conectar el pin Fuera de sensor IR a la 3 rd pin de Arduino. La válvula solenoide funciona con una fuente de alimentación de 24 V y el motor paso a paso funciona con una fuente de alimentación de 12 V.
Programa
Inicie el programa incluyendo la biblioteca de motores paso a paso. Puede descargar la biblioteca de motores paso a paso desde aquí .
Después de eso, defina el no de pasos por revolución para el motor paso a paso. Para NEMA 17 pasos por revolución son 200.
#include <Stepper.h>
#definir PASOS 200
Especifique los pines a los que se conectan los pines de paso y dirección del módulo del controlador del motor. A medida que el motor está conectado a través del módulo del controlador, defina el tipo de interfaz del motor como Tipo1 .
Paso a paso (PASOS, 2, 4);
#define motorInterfaceType 1
Establezca la velocidad del motor paso a paso.
stepper.setSpeed (500);
Defina los pines de relé, paso y dirección como salida
pinMode (relé, SALIDA);
pinMode (4, SALIDA);
pinMode (2, SALIDA);
La sintaxis para la interrupción externa en Arduino se da a continuación:
attachInterrupt (digitalPinToInterrupt (pin), ISR, modo);
Dónde:digitalPinToInterrupt (pin): se utiliza para definir el pin al que se conecta la interrupción externa. En Arduino Uno, los pines 2 y 3 son pines de interrupción externos.
ISR : es una función que se llama cuando se llama una interrupción externa.
Modo : tipo de transición para activarse, por ejemplo, caída, subida, etc.
En la función attachInterrupt () se especifica que el pin 3 es el pin de interrupción externo, y se llama a la función IR_detected cada vez que el sensor IR cambia su estado de LOW a HIGH (RISING).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () es una función ISR que se ejecuta cuando el sensor IR se pone alto. Por lo tanto, cada vez que el sensor IR sube, esta función hace funcionar el motor paso a paso durante unos pocos pasos, y luego detiene el motor paso a paso y enciende la válvula solenoide.
nulo IR_detected () {
paso a paso (150);
digitalWrite (relé, ALTO);
stepper.step (0);
Ahora finlmente suba el código a Arduino conectándolo a la computadora portátil. La imagen a continuación muestra nuestro prototipo para el sistema automático de llenado de botellas con Arduino.
-
Arduino ATmega 2560 R3¡Oferta!
$20.50$19.00 -
Arduino Uno Wifi¡Oferta!
$15.00$13.00 -
Arduino Mini USB Nano V3.0 CH340 Chip Board 5V 16M + Cable¡Oferta!
$9.00$8.50