Automatiske flaskepåfyllingsmaskiner brukes oftest i drikkevarer og brus. Disse maskinene bruker et transportbånd som er en økonomisk og rask måte å fylle flasker på. For det meste brukes PLCer til automatiske flaskefyllingsmaskiner, men du kan lage et veldig grunnleggende og allsidig flaskefyllstoff med en Arduino. Du kan programmere Arduino til automatisk å oppdage flasken ved hjelp av IR- eller ultralydsensor og la flasken fylles ved å stoppe transportbåndet i noen tid. Beveg deretter beltet igjen og stopp når neste flaske oppdages.
Her skal vi designe en prototype for automatisk flaskefyllemaskin ved hjelp av Arduino Uno, transportbånd, magnetventil, IR-sensor og trinnmotor. Beltebåndet drives av en trinnmotor med konstant forhåndsinnstilt hastighet. Steppermotoren fortsetter å kjøre beltet til en IR-sensor oppdager tilstedeværelsen av en flaske på beltet. Vi brukte IR-sensoren som en ekstern utløser. Så når IR-sensoren går høyt, sender den en utløser til Arduino for å stoppe motoren og slå på magnetventilen. En forhåndsinnstilt nødvendig forsinkelse er allerede angitt i koden for fylling av flasker. Arduino vil holde magnetventilen på og trinnmotor av til den angitte tiden. Etter den tiden slår magnetventilen av fyllingen, og transportøren begynner å bevege seg slik at neste flaske kan fylles.
Vi brukte tidligere Arduino med magnetventil, IR-sensor og trinnmotor, så for å lære mer om grunnleggende grensesnitt mellom Arduino og disse komponentene, kan du besøke lenkene.
Komponenter kreves
- Arduino Uno
- Stepper Motor (Nema17)
- Stafett
- Magnetventil
- IR-sensor
- A4988 Motordriver
- Batteri
Kretsdiagram
Kretsskjemaet for det automatiske flaskefyllingssystemet ved hjelp av Arduino er gitt nedenfor.
</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>
Jeg har brukt Fritzing til å tegne kretsskjemaet. I denne kretsen er magnetventil koblet til Arduino gjennom relémodulen, og A4988-drivermodulen brukes til å kontrollere trinnmotoren. Du kan følge How to Control Nema17 with Arduino and A4988 tutorial for mer informasjon om Nema17 og A4988 drivermodul.
Inngangspinnen til relémodulen er koblet til pinne 7 på Arduino. Retning og trinnpinner på A4988-modulen er koblet til 2 og 4 pinner på Arduino. I dette prosjektet brukes en IR-sensor som et eksternt avbrudd for Arduino. I Arduino Uno er digital pinne 2 og 3 avbruddspinnene, så koble utpinnen til IR-sensoren til den tredje pinnen på Arduino. Magnetventil drives av en 24V strømkilde, og trinnmotoren drives av en 12V strømkilde.
Arduino-program for automatisk påfylling av flasker
Det komplette programmet for dette automatiske flaskefyllingssystemet ved hjelp av Arduino er gitt på slutten. Her forklarer jeg noen viktige linjer.
Start programmet ved å inkludere trinnmotorbiblioteket. Du kan laste ned trinnmotorbiblioteket herfra.
Deretter definerer du trinnet per omdreining for trinnmotoren. For NEMA er 17 trinn per revolusjon 200.
#inkludere
Spesifiser pinnene som trinn- og retningspinnene til motordrivermodulen er koblet til. Når motoren er koblet til gjennom drivermodulen, definerer du motorgrensesnittstypen som Type1 .
Stepper stepper (TRINN, 2, 4); #define motorInterfaceType 1
Still trinnmotorhastigheten.
stepper.setSpeed (500);
Definer relé, trinn og retningspinner som utgang
pinMode (relé, OUTPUT); pinMode (4, OUTPUT); pinMode (2, OUTPUT);
Syntaksen for ekstern avbrudd i Arduino er gitt nedenfor:
attachInterrupt (digitalPinToInterrupt (pin), ISR, mode);
Hvor:
digitalPinToInterrupt (pin): Den brukes til å definere pin der ekstern avbrudd er koblet til. I Arduino er Uno Pin 2 og 3 eksterne avbrytingspinner.
ISR: Det er en funksjon som kalles når et eksternt avbrudd kalles.
Mode: Type overgang å utløse på, f.eks. Fallende, stigende osv.
Lær mer om Arduino Interrupts ved å følge lenken.
I attachInterrupt () -funksjonen er det spesifisert at pin 3 er den eksterne interrupt pin, og IR_detected- funksjon kalles når IR-sensoren endrer tilstanden fra er LAV til HØY (RISING).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () er en ISR-funksjon som utføres når IR-sensoren går høyt. Så når IR-sensoren går høyt, kjører denne funksjonen trinnmotoren i noen få trinn, og stopper deretter trinnmotoren og slår på magnetventilen.
ugyldig IR_detected () {stepper.step (150); digitalWrite (relé, HØY); stepper.step (0);
Nå endelig last opp koden til Arduino ved å koble den til den bærbare datamaskinen. Bildet nedenfor viser vår prototype for det automatiske flaskefyllingssystemet ved hjelp av Arduino.
Fullstendig kode og demonstrasjonsvideo er gitt nedenfor.