Automatische flessenvulmachines worden het meest gebruikt in de dranken- en frisdrankindustrie. Deze machines maken gebruik van een lopende band wat een economische en snelle manier is om flessen te vullen. Meestal worden PLC's gebruikt voor automatische flessenvulmachines, maar je kunt een heel eenvoudige en veelzijdige flessenvuller maken met een Arduino. U kunt de Arduino programmeren om de fles automatisch te detecteren met behulp van een IR- of ultrasone sensor en de bottelaar te laten vullen door de lopende band enige tijd te stoppen. Beweeg vervolgens opnieuw de riem en stop wanneer de volgende fles wordt gedetecteerd.
Hier gaan we een prototype ontwerpen voor een automatische flesvulmachine met behulp van Arduino Uno, transportband, magneetventiel, IR-sensor en stappenmotor. De bandtransporteur wordt aangedreven door een stappenmotor met een constante vooraf ingestelde snelheid. De stappenmotor blijft de riem aandrijven totdat een IR-sensor de aanwezigheid van een fles op de riem detecteert. We gebruikten de IR-sensor als een externe trigger. Dus wanneer de IR-sensor hoog wordt, stuurt deze een trigger naar Arduino om de motor te stoppen en de magneetklep in te schakelen. Een vooraf ingestelde vereiste vertraging is al ingevoerd in de code voor het vullen van flessen. De Arduino houdt de magneetklep aan en de stappenmotor uit tot die gespecificeerde tijd. Na die tijd schakelt het magneetventiel de vulling uit en begint de transportband te bewegen zodat de volgende fles kan worden gevuld.
We gebruikten eerder Arduino met magneetventiel, IR-sensor en stappenmotor, dus voor meer informatie over de basisinterface van Arduino met deze componenten, kun je de links bezoeken.
Componenten vereist
- Arduino Uno
- Stappenmotor (Nema17)
- Relais
- Magneetventiel
- IR-sensor
- A4988 Motorbesturing
- Batterij
Schakelschema
Het schakelschema voor het automatische flesvulsysteem met Arduino wordt hieronder weergegeven.
Het is een feit dat u zich geen zorgen hoeft te maken.
Ik heb Fritzing gebruikt om het schakelschema te tekenen. In dit circuit is de magneetklep verbonden met Arduino via de relaismodule en wordt de A4988-stuurprogrammamodule gebruikt om de stappenmotor te besturen. U kunt de tutorial How to Control Nema17 with Arduino and A4988 volgen voor meer informatie over de Nema17 en A4988 driver module.
De input pin van de relaismodule is verbonden met pin 7 van Arduino. Richting- en stappennen van de A4988-module zijn verbonden met 2 en 4 pennen van Arduino. In dit project wordt een IR-sensor gebruikt als externe interrupt naar Arduino. Arduino Uno, digitale pen 2 en 3 zijn de interrupt pinnen, dus sluit de Out pin van IR sensor op de 3 rd pin van Arduino. De magneetklep wordt aangedreven door een 24 V-voedingsbron en de stappenmotor wordt aangedreven door een 12 V-voedingsbron.
Arduino-programma voor het automatisch vullen van flessen
Het volledige programma voor dit automatische flesvulsysteem met Arduino wordt aan het einde gegeven. Hier leg ik enkele belangrijke regels uit.
Start het programma door de stappenmotorbibliotheek op te nemen. U kunt de bibliotheek met stappenmotoren hier downloaden.
Definieer daarna het aantal stappen per omwenteling voor de stappenmotor. Voor NEMA 17 zijn stappen per omwenteling 200.
# omvatten
Specificeer de pinnen waarop de Step- en Direction-pinnen van de motorbesturingsmodule zijn aangesloten. Aangezien de motor is aangesloten via de stuurprogrammamodule, definieert u het type motorinterface als Type1 .
Stepper stepper (STEPS, 2, 4); #define motorInterfaceType 1
Stel de snelheid van de stappenmotor in.
stepper.setSpeed (500);
Definieer de relais-, stap- en richtingspennen als uitvoer
pinMode (relais, UITGANG); pinMode (4, UITGANG); pinMode (2, OUTPUT);
De syntaxis voor externe interrupt in Arduino wordt hieronder gegeven:
attachInterrupt (digitalPinToInterrupt (pin), ISR, modus);
Waar:
digitalPinToInterrupt (pin): Het wordt gebruikt om de pin te definiëren waarop externe interrupt is aangesloten. In Arduino Uno Pin 2 & 3 zijn externe interrupt-pinnen.
ISR: Het is een functie die wordt aangeroepen wanneer een externe interrupt wordt aangeroepen.
Modus: Type overgang om op te activeren, bijv. Vallen, stijgen, etc.
Lees meer over Arduino Interrupts door de link te volgen.
In de functie attachInterrupt () wordt gespecificeerd dat pin 3 de externe interrupt-pin is, en de functie IR_detected wordt aangeroepen wanneer de IR-sensor zijn status verandert van LOW naar HIGH (RISING).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () is een ISR-functie die wordt uitgevoerd wanneer de IR-sensor hoog wordt. Dus wanneer de IR-sensor hoog wordt, laat deze functie de stappenmotor een paar stappen lopen, stopt vervolgens de stappenmotor en zet de magneetklep aan.
void IR_detected () {stepper.step (150); digitalWrite (relais, HIGH); stepper.step (0);
Upload nu eindelijk de code naar Arduino door deze op de laptop aan te sluiten. De onderstaande afbeelding toont ons prototype voor het automatische flesvulsysteem met Arduino.
Volledige code en demonstratievideo worden hieronder gegeven.