Las máquinas llenadoras automáticas de botellas se utilizan con mayor frecuencia en las industrias de bebidas y refrescos. Estas máquinas utilizan 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 llenadoras de botellas automáticas, pero puede hacer una llenadora de botellas muy básica y versátil con un Arduino. Puede programar el Arduino para que detecte automáticamente la botella usando un sensor infrarrojo o ultrasónico y permitir que el embotellador se llene deteniendo la cinta transportadora durante algún tiempo. Luego, mueva nuevamente el cinturón y deténgase cuando se detecte la siguiente botella.
Aquí vamos a diseñar un prototipo de máquina llenadora automática de botellas usando Arduino Uno, cinta transportadora, válvula solenoide, sensor IR y motor paso a paso. La cinta transportadora es impulsada por un motor paso a paso a una velocidad preestablecida constante. El motor paso a paso seguirá impulsando la correa hasta que un sensor de infrarrojos detecte la presencia de una botella en la correa. Usamos el sensor de infrarrojos como disparador externo. Entonces, cada vez que el sensor de infrarrojos sube, envía un disparador a Arduino para detener el motor y encender la válvula solenoide. Ya se ha introducido un retardo preestablecido en el código para el llenado de botellas. El Arduino mantendrá la válvula solenoide encendida y el motor paso a paso apagado hasta ese momento especificado. Después de ese tiempo, la válvula solenoide apaga el llenado y el transportador comienza a moverse para que se pueda llenar la siguiente botella.
Anteriormente utilizamos Arduino con válvula solenoide, sensor de infrarrojos y motor paso a paso, por lo que para obtener más información sobre la interfaz básica de Arduino con estos componentes, puede visitar los enlaces.
Componentes requeridos
- Arduino Uno
- Motor paso a paso (Nema17)
- Relé
- Válvula de solenoide
- Sensor de infrarrojos
- Controlador de motor A4988
- Batería
Diagrama de circuito
El diagrama de circuito para el sistema automático de llenado de botellas con Arduino se muestra a continuación.
He utilizado a Fritzing para dibujar el diagrama del circuito. En este circuito, la válvula solenoide está conectada a Arduino a través del módulo de relé y el módulo de controlador A4988 se usa para controlar el motor paso a paso. Puede seguir el tutorial Cómo controlar Nema17 con Arduino y A4988 para obtener más información sobre el módulo de controlador Nema17 y A4988.
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 de infrarrojos como interrupción externa de 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 Arduino para llenado automático de botellas
El programa completo para este sistema automático de llenado de botellas con Arduino se proporciona al final. Aquí les estoy explicando algunas líneas importantes.
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 número de pasos por revolución para el motor paso a paso. Para NEMA, 17 pasos por revolución son 200.
#incluir
Especifique los pines a los que se conectan los pines de paso y dirección del módulo del controlador del motor. Como el motor está conectado a través del módulo de controlador, defina el tipo de interfaz del motor como Tipo1 .
Paso a paso paso a paso (PASOS, 2, 4); #define motorInterfaceType 1
Configure 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 en el 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 a una interrupción externa.
Modo: tipo de transición para disparar, por ejemplo, descendente, ascendente, etc.
Obtenga más información sobre las interrupciones de Arduino siguiendo el enlace.
En la función attachInterrupt () se especifica que el pin 3 es el pin de interrupción externa, y se llama a la función IR_detected siempre que el sensor de IR cambia su estado de BAJO a ALTO (ASCENDENTE).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () es una función ISR que se ejecuta cuando el sensor de infrarrojos aumenta . Por lo tanto, cada vez que el sensor de infrarrojos aumenta, esta función hace funcionar el motor paso a paso durante algunos pasos y luego detiene el motor paso a paso y enciende la válvula solenoide.
vacío IR_detected () {paso a paso (150); digitalWrite (relé, ALTO); stepper.step (0);
Ahora, finalmente, cargue el código en Arduino conectándolo a la computadora portátil. La siguiente imagen muestra nuestro prototipo para el sistema automático de llenado de botellas con Arduino.
El código completo y el video de demostración se muestran a continuación.