Mașinile automate de umplere a sticlelor sunt cele mai utilizate în industria băuturilor și a băuturilor răcoritoare. Aceste mașini folosesc o bandă transportoare, care este un mod economic și rapid de a umple sticlele. Majoritatea PLC-urilor sunt folosite pentru mașinile automate de umplere a sticlelor, dar puteți face o umplutură de bază foarte versatilă folosind un Arduino. Puteți programa Arduino pentru a detecta automat sticla cu ajutorul senzorului IR sau cu ultrasunete și pentru a permite îmbutelierii să se umple oprind centura transportoare pentru o perioadă de timp. Apoi mutați din nou centura și opriți-vă când este detectată următoarea sticlă.
Aici vom proiecta un prototip pentru mașina automată de umplere a sticlelor utilizând Arduino Uno, bandă transportoare, electrovalvă, senzor IR și motor Stepper. Transportorul cu bandă este acționat de un motor pas cu pas la o viteză presetată constantă. Motorul pas cu pas va continua să acționeze cureaua până când un senzor IR detectează prezența unei sticle pe curea. Am folosit senzorul IR ca declanșator extern. Deci, ori de câte ori senzorul IR crește, trimite un declanșator către Arduino pentru a opri motorul și a porni electrovalva. O întârziere necesară presetată este deja introdusă în cod pentru umplerea sticlei. Arduino va menține electrovalva pornită și motorul pas cu pas oprit până la acel moment specificat. După acest timp, electrovalva oprește umplerea și transportorul începe să se miște astfel încât următoarea sticlă să poată fi umplută.
Am folosit anterior Arduino cu electrovalvă, senzor IR și motor pas cu pas, așa că pentru a afla mai multe despre interfața de bază a Arduino cu aceste componente, puteți vizita linkurile.
Componente necesare
- Arduino Uno
- Motor pas cu pas (Nema17)
- Releu
- Valva selenoida
- Senzor IR
- Driver de motor A4988
- Baterie
Diagrama circuitului
Schema circuitului pentru sistemul automat de umplere a sticlelor care utilizează Arduino este prezentată mai jos.
(…)
Am folosit Fritzing pentru a desena schema circuitului. În acest circuit, electrovalva este conectată la Arduino prin modulul releu, iar modulul driverului A4988 este utilizat pentru a controla motorul pas cu pas. Puteți urma tutorialul Cum să controlați Nema17 cu Arduino și A4988 pentru mai multe informații despre modulul de driver Nema17 și A4988.
Pinul de intrare al modulului releu este conectat la pinul 7 al Arduino. Pini de direcție și pas ai modulului A4988 sunt conectați la 2 și 4 pini ai Arduino. În acest proiect, un senzor IR este utilizat ca întrerupere externă la Arduino. În Arduino Uno, pinul digital 2 și 3 sunt pinii de întrerupere, deci conectați pinul Out al senzorului IR la pinul 3 al Arduino. Electrovana este alimentată de o sursă de alimentare de 24V, iar motorul pas cu pas este alimentat de o sursă de alimentare de 12V.
Program Arduino pentru umplerea automată a sticlelor
Programul complet pentru acest sistem automat de umplere a sticlelor care utilizează Arduino este dat la sfârșit. Aici explic câteva linii importante.
Porniți programul incluzând biblioteca motorului pas cu pas. Puteți descărca biblioteca cu motor pas cu pas de aici.
După aceea, definiți numărul de pași pe rotație pentru motorul pas cu pas. Pentru NEMA, 17 pași pe revoluție sunt 200.
#include
Specificați pinii la care sunt conectați pinii de direcție și pas ai modulului driverului motorului. Deoarece motorul este conectat prin modulul driverului, definiți tipul de interfață a motorului ca Type1 .
Stepper stepper (STEPS, 2, 4); #define motorInterfaceType 1
Setați turația motorului pas cu pas.
stepper.setSpeed (500);
Definiți pinul de releu, pas și direcție ca ieșire
pinMode (releu, OUTPUT); pinMode (4, OUTPUT); pinMode (2, OUTPUT);
Sintaxa pentru întreruperea externă în Arduino este dată mai jos:
attachInterrupt (digitalPinToInterrupt (pin), ISR, mod);
Unde:
digitalPinToInterrupt (pin): Se utilizează pentru a defini pinul la care este conectată întreruperea externă. În Arduino Uno Pinii 2 și 3 sunt pini de întrerupere externi.
ISR: Este o funcție care este apelată atunci când este apelată o întrerupere externă.
Mod: Tipul de tranziție pe care trebuie să îl declanșezi, de exemplu, căderea, creșterea etc.
Aflați mai multe despre întreruperile Arduino urmând linkul.
În funcția attachInterrupt () se specifică faptul că pinul 3 este pinul de întrerupere extern, iar funcția IR_detected este apelată ori de câte ori senzorul IR își schimbă starea de la LOW la HIGH (RISING).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () este o funcție ISR care se execută atunci când senzorul IR crește. Deci, ori de câte ori senzorul IR crește, această funcție pornește motorul pas cu pas pentru câțiva pași, apoi oprește motorul pas cu pas și pornește electrovalva.
void IR_detected () {stepper.step (150); digitalWrite (releu, HIGH); stepper.step (0);
Acum, în cele din urmă, încărcați codul pe Arduino conectându-l la laptop. Imaginea de mai jos prezintă prototipul nostru pentru sistemul automat de umplere a sticlelor care utilizează Arduino.
Codul complet și videoclipul demonstrativ sunt prezentate mai jos.