Automatiska flaskpåfyllningsmaskiner används oftast i drycker och läskedrycker. Dessa maskiner använder ett transportband som är ett ekonomiskt och snabbt sätt att fylla flaskor. För det mesta används PLC: er för automatiska flaskpåfyllningsmaskiner, men du kan göra en mycket grundläggande och mångsidig flaskpåfyllare med en Arduino. Du kan programmera Arduino för att automatiskt upptäcka flaskan med IR- eller ultraljudssensor och låta tapparen fyllas genom att stoppa transportbandet under en tid. Flytta sedan remmen igen och stanna när nästa flaska upptäcks.
Här ska vi designa en prototyp för automatisk flaskpåfyllningsmaskin med Arduino Uno, transportband, magnetventil, IR-sensor och stegmotor. Bandtransportören drivs av en stegmotor med konstant förinställd hastighet. Stegmotorn fortsätter att köra remmen tills en IR-sensor upptäcker att det finns en flaska på remmen. Vi använde IR-sensorn som en extern trigger. Så när IR-sensorn går högt skickar den en avtryckare till Arduino för att stoppa motorn och slå på magnetventilen. En förinställd fördröjning krävs redan i koden för påfyllning av flaskor. Arduino kommer att hålla magnetventilen på och stegmotorn avstängd tills den angivna tiden. Efter den tiden stänger magnetventilen påfyllningen och transportören rör sig så att nästa flaska kan fyllas.
Vi använde tidigare Arduino med magnetventil, IR-sensor och stegmotor, så för att lära dig mer om grundläggande gränssnitt mellan Arduino och dessa komponenter kan du besöka länkarna.
Komponenter krävs
- Arduino Uno
- Stegmotor (Nema17)
- Relä
- Magnetventil
- IR-sensor
- A4988 motorförare
- Batteri
Kretsschema
Kretsschemat för det automatiska flaskpåfyllningssystemet med Arduino ges nedan.
</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>
Jag har använt Fritzing för att rita kretsschemat. I den här kretsen är magnetventilen ansluten till Arduino via relämodulen och A4988-drivmodulen används för att styra stegmotorn. Du kan följa hur man styr Nema17 med Arduino och A4988 handledning för mer information om Nema17 och A4988 drivrutinsmodul.
Ingångsstiftet på relämodulen är anslutet till stift 7 i Arduino. Riktnings- och stegpinnar på A4988-modulen är anslutna till 2 och 4 pinnar på Arduino. I detta projekt används en IR-sensor som ett externt avbrott för Arduino. I Arduino Uno är digitala stift 2 & 3 avbrottsstift, så anslut utgången på IR-sensorn till den tredje stiftet på Arduino. Magnetventilen drivs av en 24V strömkälla och stegmotorn drivs av en 12V strömkälla.
Arduino-program för automatisk flaskpåfyllning
Det kompletta programmet för detta automatiska flaskpåfyllningssystem med Arduino ges i slutet. Här förklarar jag några viktiga rader.
Starta programmet genom att inkludera stegmotorbiblioteket. Du kan ladda ner stegmotorbiblioteket härifrån.
Definiera därefter antalet steg per varv för stegmotorn. För NEMA är 17 steg per varv 200.
#omfatta
Ange stiften till vilka steg- och riktningsstiften på motordrivmodulen är ansluten. Eftersom motorn är ansluten via förarmodulen, definiera typ av motorgränssnitt som Type1 .
Stegsteg (STEG, 2, 4); #define motorInterfaceType 1
Ställ in stegmotorns varvtal.
stepper.setSpeed (500);
Definiera relä-, steg- och riktningsstift som utgång
pinMode (relä, OUTPUT); pinMode (4, OUTPUT); pinMode (2, OUTPUT);
Syntaxen för extern avbrott i Arduino ges nedan:
attachInterrupt (digitalPinToInterrupt (pin), ISR, mode);
Var:
digitalPinToInterrupt (stift): Den används för att definiera stiftet med vilket externt avbrott är anslutet. I Arduino är Uno Pin 2 & 3 externa avbrottsstift.
ISR: Det är en funktion som anropas när ett externt avbrott anropas.
Läge: Typ av övergång att utlösa, t.ex. fallande, stigande etc.
Läs mer om Arduino-avbrott genom att följa länken.
I attachInterrupt () -funktionen anges att stift 3 är det externa avbrottsstiftet, och IR_detected- funktionen anropas när IR-sensorn ändrar sitt tillstånd från är LÅG till HÖG (RISING).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () är en ISR-funktion som körs när IR-sensorn blir hög. Så när IR-sensorn går högt kör denna funktion stegmotorn i några steg och stoppar sedan stegmotorn och slår på magnetventilen.
ogiltig IR_detected () {stepper.step (150); digitalWrite (relä, HÖG); stepper.step (0);
Nu laddar du äntligen upp koden till Arduino genom att ansluta den till den bärbara datorn. Bilden nedan visar vår prototyp för det automatiska flaskpåfyllningssystemet med Arduino.
Komplett kod och demonstrationsvideo ges nedan.