- Componentes necessários
- Diagrama de circuito
- Programa Arduino para enchimento automático de garrafas
As máquinas de enchimento automático de garrafas são mais comumente usadas nas indústrias de bebidas e refrigerantes. Essas máquinas usam uma correia transportadora, que é uma forma econômica e rápida de encher garrafas. A maioria dos PLCs são usados para máquinas de enchimento de garrafas automáticas, mas você pode fazer um enchedor de garrafas muito básico e versátil usando um Arduino. Você pode programar o Arduino para detectar automaticamente a garrafa usando um sensor infravermelho ou ultrassônico e permitir que o engarrafador se encha parando a esteira por algum tempo. Em seguida, mova novamente o cinto e pare quando a próxima garrafa for detectada.
Aqui, vamos projetar um protótipo para Máquina de Enchimento Automático de Garrafas usando Arduino Uno, correia transportadora, válvula solenóide, sensor IR e motor de passo. O transportador de correia é acionado por um motor de passo a uma velocidade predefinida constante. O motor de passo continuará acionando a correia até que um sensor IR detecte a presença de uma garrafa na correia. Usamos o sensor IR como um gatilho externo. Portanto, sempre que o sensor IR fica alto, ele envia um gatilho para o Arduino para parar o motor e ligar a válvula solenóide. Um atraso pré-definido necessário já foi inserido no código para o enchimento de garrafas. O Arduino manterá a válvula solenóide ligada e o motor de passo desligado até o tempo especificado. Após esse tempo, a válvula solenóide desliga o enchimento e o transportador começa a se mover para que a próxima garrafa possa ser enchida.
Anteriormente, usamos o Arduino com válvula solenóide, sensor IR e motor de passo, portanto, para aprender mais sobre a interface básica do Arduino com esses componentes, você pode visitar os links.
Componentes necessários
- Arduino Uno
- Motor de passo (Nema17)
- Retransmissão
- Válvula solenoide
- Sensor IR
- Motorista A4988
- Bateria
Diagrama de circuito
O diagrama de circuito para o sistema de enchimento automático de garrafas usando Arduino é fornecido abaixo.
Usei o Fritzing para desenhar o diagrama do circuito. Neste circuito, a válvula solenóide é conectada ao Arduino através do módulo de relé e o módulo de driver A4988 é usado para controlar o motor de passo. Você pode seguir o tutorial Como controlar o Nema17 com Arduino e A4988 para obter mais informações sobre o módulo de driver Nema17 e A4988.
O pino de entrada do módulo Relay é conectado ao pino 7 do Arduino. Pinos de direção e etapa do módulo A4988 são conectados a 2 e 4 pinos do Arduino. Neste projeto, um sensor IR é usado como uma interrupção externa para o Arduino. No Arduino Uno, os pinos digitais 2 e 3 são os pinos de interrupção, então conecte o pino de saída do sensor IR ao terceiro pino do Arduino. A válvula solenóide é alimentada por uma fonte de alimentação de 24 V e o motor de passo é alimentado por uma fonte de alimentação de 12 V.
Programa Arduino para enchimento automático de garrafas
O programa completo para este sistema de enchimento automático de garrafas usando Arduino é fornecido no final. Aqui estou explicando algumas linhas importantes.
Inicie o programa incluindo a biblioteca de motor de passo. Você pode baixar a biblioteca de motor de passo aqui.
Em seguida, defina o nº de passos por rotação para o motor de passo. Para NEMA, 17 passos por revolução é 200.
#incluir
Especifique os pinos aos quais os pinos de etapa e direção do módulo acionador do motor estão conectados. Como o motor é conectado através do módulo do driver, defina o tipo de interface do motor como Type1 .
Stepper stepper (PASSOS, 2, 4); #define motorInterfaceType 1
Defina a velocidade do motor de passo.
stepper.setSpeed (500);
Defina o relé, passo e pinos de direção como saída
pinMode (relé, OUTPUT); pinMode (4, OUTPUT); pinMode (2, OUTPUT);
A sintaxe para interrupção externa no Arduino é fornecida abaixo:
attachInterrupt (digitalPinToInterrupt (pin), ISR, modo);
Onde:
digitalPinToInterrupt (pin): É usado para definir o pino no qual a interrupção externa é conectada. No Arduino Uno, os pinos 2 e 3 são pinos de interrupção externa.
ISR: é uma função que é chamada quando uma interrupção externa é chamada.
Modo: tipo de transição para acionar, por exemplo, queda, subida, etc.
Saiba mais sobre as interrupções do Arduino seguindo o link.
Na função attachInterrupt () é especificado que o pino 3 é o pino de interrupção externa, e a função IR_detected é chamada sempre que o sensor de IR muda seu estado de LOW para HIGH (RISING).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () é uma função ISR que executa quando o sensor IR fica alto. Portanto, sempre que o sensor IR fica alto, esta função aciona o motor de passo por algumas etapas e, em seguida, para o motor de passo e liga a válvula solenóide.
nulo IR_detected () {stepper.step (150); digitalWrite (relé, ALTO); stepper.step (0);
Agora, finalmente, faça upload do código para o Arduino conectando-o ao laptop. A imagem abaixo mostra nosso protótipo para o Sistema de Enchimento Automático de Garrafas usando Arduino.
O código completo e o vídeo de demonstração são fornecidos abaixo.