- Componenti richiesti
- Schema elettrico
- Programma Arduino per il riempimento automatico delle bottiglie
Le riempitrici automatiche sono più comunemente utilizzate nelle industrie delle bevande e delle bevande analcoliche. Queste macchine utilizzano un nastro trasportatore che è un modo economico e veloce per riempire le bottiglie. Per lo più i PLC vengono utilizzati per le riempitrici automatiche di bottiglie, ma puoi realizzare una riempitrice di bottiglie molto semplice e versatile usando un Arduino. È possibile programmare Arduino per rilevare automaticamente la bottiglia utilizzando un sensore IR o ultrasonico e consentire all'imbottigliatore di riempirsi fermando il nastro trasportatore per un po 'di tempo. Quindi spostare di nuovo il nastro e fermarsi quando viene rilevata la bottiglia successiva.
Qui progetteremo un prototipo per la macchina riempitrice automatica di bottiglie utilizzando Arduino Uno, nastro trasportatore, elettrovalvola, sensore IR e motore passo-passo. Il nastro trasportatore è azionato da un motore passo-passo a una velocità preimpostata costante. Il motore passo-passo continuerà a guidare la cinghia fino a quando un sensore IR rileva la presenza di una bottiglia sulla cinghia. Abbiamo utilizzato il sensore IR come trigger esterno. Quindi, ogni volta che il sensore IR va alto, invia un trigger ad Arduino per arrestare il motore e accendere l'elettrovalvola. Un ritardo richiesto preimpostato è già inserito nel codice per il riempimento della bottiglia. L'Arduino manterrà la valvola solenoide accesa e il motore passo-passo spento fino a quel momento specificato. Trascorso questo tempo, l'elettrovalvola spegne il riempimento e il trasportatore inizia a muoversi in modo che la bottiglia successiva possa essere riempita.
In precedenza abbiamo utilizzato Arduino con elettrovalvola, sensore IR e motore passo-passo, quindi per saperne di più sull'interfacciamento di base di Arduino con questi componenti, puoi visitare i link.
Componenti richiesti
- Arduino Uno
- Motore passo-passo (Nema17)
- Relè
- Valvola solenoide
- Sensore IR
- Driver del motore A4988
- Batteria
Schema elettrico
Di seguito è riportato lo schema del circuito per il sistema di riempimento automatico delle bottiglie utilizzando Arduino.
Ho usato Fritzing per disegnare lo schema del circuito. In questo circuito, l'elettrovalvola è collegata ad Arduino tramite il modulo relè e il modulo driver A4988 viene utilizzato per controllare il motore passo-passo. Puoi seguire il tutorial Come controllare Nema17 con Arduino e A4988 per ulteriori informazioni sul modulo driver Nema17 e A4988.
Il pin di ingresso del modulo Relay è collegato al pin 7 di Arduino. I pin di direzione e passo del modulo A4988 sono collegati a 2 e 4 pin di Arduino. In questo progetto, un sensore IR viene utilizzato come interrupt esterno ad Arduino. In Arduino Uno, i pin digitali 2 e 3 sono i pin di interruzione, quindi collega il pin Out del sensore IR al 3 ° pin di Arduino. L'elettrovalvola è alimentata da una fonte di alimentazione a 24 V e il motore passo-passo è alimentato da una fonte di alimentazione a 12V.
Programma Arduino per il riempimento automatico delle bottiglie
Alla fine viene fornito il programma completo per questo sistema di riempimento automatico delle bottiglie utilizzando Arduino. Qui sto spiegando alcune linee importanti.
Avvia il programma includendo la libreria del motore passo-passo. È possibile scaricare la libreria del motore passo-passo da qui.
Successivamente, definire il numero di passi per giro per il motore passo-passo. Per NEMA 17 i passaggi per giro sono 200.
#includere
Specificare i pin a cui sono collegati i pin Step e Direction del modulo driver del motore. Poiché il motore è collegato tramite il modulo driver, definire il tipo di interfaccia del motore come Tipo1 .
Stepper stepper (STEPS, 2, 4); #define motorInterfaceType 1
Imposta la velocità del motore passo-passo.
stepper.setSpeed (500);
Definire i pin Relay, Step e Direction come output
pinMode (relè, OUTPUT); pinMode (4, OUTPUT); pinMode (2, OUTPUT);
La sintassi per l'interrupt esterno in Arduino è fornita di seguito:
attachInterrupt (digitalPinToInterrupt (pin), ISR, mode);
Dove:
digitalPinToInterrupt (pin): viene utilizzato per definire il pin a cui è collegato l'interrupt esterno. In Arduino Uno i pin 2 e 3 sono pin di interruzione esterni.
ISR: è una funzione che viene chiamata quando viene chiamato un interrupt esterno.
Modalità: tipo di transizione da attivare, ad esempio, in discesa, in aumento, ecc.
Ulteriori informazioni sugli interrupt Arduino seguendo il collegamento.
Nella funzione attachInterrupt () viene specificato che il pin 3 è il pin di interrupt esterno e la funzione IR_detected viene chiamata ogni volta che il sensore IR cambia il suo stato da è LOW a HIGH (RISING).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () è una funzione ISR che viene eseguita quando il sensore IR diventa alto. Pertanto, ogni volta che il sensore IR diventa alto, questa funzione fa funzionare il motore passo-passo per alcuni passaggi, quindi arresta il motore passo-passo e accende l'elettrovalvola.
void IR_detected () {stepper.step (150); digitalWrite (relè, HIGH); stepper.step (0);
Ora finalmente carica il codice su Arduino collegandolo al laptop. L'immagine sotto mostra il nostro prototipo per il sistema di riempimento automatico delle bottiglie utilizzando Arduino.
Di seguito sono riportati il codice completo e il video dimostrativo.