Automatiske flaskepåfyldningsmaskiner bruges mest i drikkevarer og sodavandindustrier. Disse maskiner bruger et transportbånd, der er en økonomisk og hurtig måde at fylde flasker på. For det meste bruges PLC'er til automatiske flaskepåfyldningsmaskiner, men du kan lave et meget grundlæggende og alsidigt flaskefyldstof ved hjælp af en Arduino. Du kan programmere Arduino til automatisk at registrere flasken ved hjælp af IR eller ultralydssensor og lade flasken fyldes ved at stoppe transportbåndet i nogen tid. Flyt derefter remmen igen, og stop, når den næste flaske registreres.
Her skal vi designe en prototype til automatisk flaskepåfyldningsmaskine ved hjælp af Arduino Uno, transportbånd, magnetventil, IR-sensor og trinmotor. Båndtransportøren drives af en trinmotor med en konstant forudindstillet hastighed. Steppermotoren fortsætter med at køre bæltet, indtil en IR-sensor registrerer tilstedeværelsen af en flaske på bæltet. Vi brugte IR-sensoren som en ekstern trigger. Så når IR-sensoren går højt, sender den en udløser til Arduino for at stoppe motoren og tænde magnetventilen. En forudindstillet påkrævet forsinkelse er allerede angivet i koden til påfyldning af flasker. Arduino holder magnetventilen tændt og trinmotor slukket indtil det angivne tidspunkt. Efter denne tid slukker magnetventilen påfyldningen, og transportøren begynder at bevæge sig, så den næste flaske kan fyldes.
Vi har tidligere brugt Arduino med magnetventil, IR-sensor og trinmotor, så for at lære mere om grundlæggende grænseflade mellem Arduino og disse komponenter kan du besøge linkene.
Komponenter, der kræves
- Arduino Uno
- Trinmotor (Nema17)
- Relæ
- Magnetventil
- IR-sensor
- A4988 motordriver
- Batteri
Kredsløbsdiagram
Kredsløbsdiagrammet til det automatiske flaskefyldningssystem ved hjælp af Arduino er angivet nedenfor.
</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>
Jeg har brugt Fritzing til at tegne kredsløbsdiagrammet. I dette kredsløb er magnetventilen forbundet til Arduino gennem relæmodulet, og A4988-drivermodulet bruges til at styre trinmotoren. Du kan følge vejledningen Sådan styres Nema17 med Arduino og A4988 for at få flere oplysninger om Nema17 og A4988 drivermodul.
Indgangsstiften på relæmodulet er tilsluttet pin 7 i Arduino. Retnings- og trinstifter på A4988-modulet er tilsluttet 2 og 4 ben på Arduino. I dette projekt bruges en IR-sensor som en ekstern afbrydelse af Arduino. I Arduino Uno, digital ben 2 & 3 er interrupt stifter, så slutte Out pin af IR-sensor til 3 rd pin af Arduino. Magnetventilen drives af en 24V strømkilde, og trinmotoren drives af en 12V strømkilde.
Arduino-program til automatisk påfyldning af flasker
Det komplette program til dette automatiske flaskepåfyldningssystem ved hjælp af Arduino findes i slutningen. Her forklarer jeg nogle vigtige linjer.
Start programmet ved at inkludere trinmotorbiblioteket. Du kan downloade trinmotorbiblioteket herfra.
Derefter defineres antallet af trin pr. Omdrejning for trinmotoren. For NEMA er 17 trin per omdrejning 200.
#omfatte
Angiv de ben, som trin- og retningstifterne i motordrivermodulet er tilsluttet. Da motoren er forbundet via drivermodulet, skal du definere motorinterfacetypen som Type1 .
Stepper stepper (TRIN, 2, 4); #define motorInterfaceType 1
Indstil trinmotorens hastighed.
stepper.setSpeed (500);
Definer relæ-, trin- og retningstifter som output
pinMode (relæ, OUTPUT); pinMode (4, OUTPUT); pinMode (2, OUTPUT);
Syntaksen for ekstern afbrydelse i Arduino er angivet nedenfor:
attachInterrupt (digitalPinToInterrupt (pin), ISR, mode);
Hvor:
digitalPinToInterrupt (pin): Det bruges til at definere den pin, som ekstern afbrydelse er forbundet med. I Arduino er Uno Pin 2 & 3 eksterne interrupt pins.
ISR: Det er en funktion, der kaldes, når en ekstern afbrydelse kaldes.
Mode: Overgangstype, der skal udløses, f.eks. Falder, stiger osv.
Lær mere om Arduino Interrupts ved at følge linket.
I attachInterrupt () -funktionen specificeres det, at pin 3 er den eksterne interrupt pin, og IR_detected- funktion kaldes, når IR-sensoren ændrer sin tilstand fra er LAV til HØJ (RISING).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () er en ISR-funktion, der udføres, når IR-sensoren bliver høj. Så når IR-sensoren går højt, kører denne funktion trinmotoren i nogle få trin og stopper derefter trinmotoren og tænder magnetventilen.
ugyldig IR_detected () {stepper.step (150); digitalWrite (relæ, HIGH); stepper.step (0);
Upload nu endelig koden til Arduino ved at forbinde den til den bærbare computer. Nedenstående billede viser vores prototype til det automatiske flaskepåfyldningssystem ved hjælp af Arduino.
Komplet kode og demonstrationsvideo er angivet nedenfor.