Les màquines automàtiques d’ompliment d’ampolles s’utilitzen amb més freqüència en les indústries de begudes i refrescos. Aquestes màquines utilitzen una cinta transportadora que és una manera econòmica i ràpida d’omplir ampolles. La majoria dels PLC s’utilitzen per a màquines d’omplir ampolles automàtiques, però podeu fer un farciment d’ampolles molt bàsic i versàtil amb un Arduino. Podeu programar l'Arduino per detectar automàticament l'ampolla mitjançant un sensor d'ultrasons o IR i permetre que l'embotellador s'ompli aturant la cinta transportadora durant un temps. Després torneu a moure el cinturó i atureu-vos quan es detecti la següent ampolla.
Aquí dissenyarem un prototip per a la màquina automàtica d’ompliment d’ampolles amb Arduino Uno, cinta transportadora, electrovàlvula, sensor IR i motor pas a pas. El transportador de corretja és accionat per un motor pas a pas a una velocitat predeterminada constant. El motor pas a pas continuarà conduint el cinturó fins que un sensor IR detecti la presència d’una ampolla al cinturó. Hem utilitzat el sensor IR com a activador extern. Per tant, cada vegada que el sensor IR augmenta, envia un disparador a Arduino per aturar el motor i encendre la solenoide. Ja s'ha introduït un retard necessari per omplir el codi per omplir l'ampolla. L'Arduino mantindrà la electrovàlvula activada i el motor pas a pas apagat fins a aquella hora especificada. Passat aquest temps, la vàlvula solenoide apaga l’ompliment i el transportador comença a moure’s per poder omplir la següent ampolla.
Anteriorment hem utilitzat Arduino amb electrovàlvula, sensor IR i motor pas a pas, de manera que per obtenir més informació sobre la interfície bàsica d’Arduino amb aquests components, podeu visitar els enllaços.
Components necessaris
- Arduino Uno
- Motor pas a pas (Nema17)
- Relleu
- Electrovàlvula
- Sensor IR
- Controlador de motor A4988
- Bateria
Esquema de connexions
A continuació es mostra el diagrama de circuits del sistema d’ompliment automàtic d’ampolles que utilitza Arduino.
(…)

He utilitzat Fritzing per dibuixar el diagrama del circuit. En aquest circuit, la vàlvula solenoide està connectada a Arduino mitjançant el mòdul de relé i el mòdul de controlador A4988 s’utilitza per controlar el motor pas a pas. Podeu seguir el tutorial Com controlar Nema17 amb Arduino i A4988 per obtenir més informació sobre el mòdul del controlador Nema17 i A4988.
El pin d'entrada del mòdul Relay està connectat al pin 7 d'Arduino. Els pins de direcció i pas del mòdul A4988 estan connectats a 2 i 4 pins d'Arduino. En aquest projecte, s'utilitza un sensor IR com a interrupció externa d'Arduino. A Arduino Uno, els pins digitals 2 i 3 són els pins d'interrupció, de manera que connecteu el pin de sortida del sensor IR al tercer pin d'Arduino. La vàlvula solenoide funciona amb una font d’alimentació de 24V i el motor pas a pas s’alimenta d’una font d’alimentació de 12V.
Programa Arduino per omplir automàticament d'ampolles
Al final es dóna el programa complet d’aquest sistema d’ompliment automàtic d’ampolles que utilitza Arduino. Aquí explico algunes línies importants.
Inicieu el programa incloent la biblioteca del motor pas a pas. Podeu descarregar la biblioteca del motor pas a pas des d’aquí.
Després, definiu el nombre de passos per revolució del motor pas a pas. Per a NEMA, 17 passos per revolució són 200.
#incloure
Especifiqueu els pins als quals estan connectats els pins de pas i direcció del mòdul del controlador del motor. Com que el motor es connecta a través del mòdul del controlador, definiu el tipus d'interfície del motor com a Tipus1 .
Stepper stepper (STEPS, 2, 4); #define motorInterfaceType 1
Estableix la velocitat del motor pas a pas.
stepper.setSpeed (500);
Definiu el relé, el pas i els passos de direcció com a sortida
pinMode (relé, OUTPUT); pinMode (4, OUTPUT); pinMode (2, OUTPUT);
A continuació es mostra la sintaxi de la interrupció externa a Arduino:
attachInterrupt (digitalPinToInterrupt (pin), ISR, mode);
On:
digitalPinToInterrupt (pin): s’utilitza per definir el pin al qual es connecta la interrupció externa. A Arduino Uno, els pins 2 i 3 són pins d'interrupció externs.
ISR: és una funció que es diu quan es crida una interrupció externa.
Mode: tipus de transició a activar, per exemple, caure, pujar, etc.
Per obtenir més informació sobre Arduino Interrupts, seguiu l’enllaç.
A la funció attachInterrupt () s’especifica que el pin 3 és el pin d’interrupció extern i que es crida la funció IR_detected cada vegada que el sensor IR canvia el seu estat de BAIX a ALT (RISING).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () és una funció ISR que s’executa quan el sensor IR augmenta . Per tant, cada vegada que el sensor IR augmenta, aquesta funció fa funcionar el motor pas a pas durant uns quants passos i, a continuació, atura el motor pas a pas i engega la solenoide.
void IR_detected () {stepper.step (150); digitalWrite (relé, ALTA); stepper.step (0);
Ara, finalment, pengeu el codi a Arduino connectant-lo al portàtil. La imatge següent mostra el nostre prototip per al sistema d’ompliment automàtic d’ampolles que utilitza Arduino.

A continuació es mostra el codi complet i el vídeo de demostració.
