자동 병 충전 기계 는 음료 및 청량 음료 산업에서 가장 일반적으로 사용됩니다. 이 기계는 병을 채우는 경제적이고 빠른 방법 인 컨베이어 벨트를 사용합니다. 대부분 PLC는 자동 병 충전 기계에 사용되지만 Arduino를 사용하여 매우 기본적이고 다양한 병 충전물을 만들 수 있습니다. IR 또는 초음파 센서를 사용하여 병을 자동으로 감지하도록 Arduino를 프로그래밍하고 일정 시간 동안 컨베이어 벨트를 중지하여 병을 채우도록 할 수 있습니다. 그런 다음 다시 벨트를 움직이고 다음 병이 감지되면 멈 춥니 다.
여기서 우리는 Arduino Uno, 컨베이어 벨트, 솔레노이드 밸브, IR 센서 및 스테퍼 모터를 사용하여 자동 병 충전 기계 의 프로토 타입을 설계 할 것 입니다. 벨트 컨베이어는 일정한 사전 설정 속도로 스테퍼 모터에 의해 구동됩니다. 스테퍼 모터는 IR 센서가 벨트에 병의 존재를 감지 할 때까지 벨트를 계속 구동합니다. IR 센서를 외부 트리거로 사용했습니다. 따라서 IR 센서가 높을 때마다 Arduino에 트리거를 보내 모터를 중지하고 솔레노이드 밸브를 켭니다. 미리 설정된 필수 지연 시간이 병 채우기 코드에 이미 입력되어 있습니다. Arduino는 지정된 시간까지 솔레노이드 밸브를 켜고 스테퍼 모터를 끕니다. 그 시간이 지나면 솔레노이드 밸브가 충전물을 끄고 컨베이어가 움직이기 시작하여 다음 병을 채울 수 있습니다.
이전에 Arduino를 솔레노이드 밸브, IR 센서 및 스테퍼 모터와 함께 사용 했으므로 이러한 구성 요소와 Arduino의 기본 인터페이스에 대해 자세히 알아 보려면 링크를 방문하십시오.
필요한 구성 요소
- Arduino Uno
- 스테퍼 모터 (Nema17)
- 계전기
- 솔레노이드 벨브
- IR 센서
- A4988 모터 드라이버
- 배터리
회로도
Arduino를 사용한 자동 병 채우기 시스템 의 회로도 는 다음과 같습니다.
Fritzing을 사용하여 회로도를 그렸습니다. 이 회로에서 솔레노이드 밸브는 Relay 모듈을 통해 Arduino에 연결되고 A4988 드라이버 모듈은 스테퍼 모터를 제어하는 데 사용됩니다. Nema17 및 A4988 드라이버 모듈에 대한 자세한 내용은 Arduino 및 A4988로 Nema17을 제어하는 방법 자습서를 따를 수 있습니다.
릴레이 모듈의 입력 핀은 Arduino의 핀 7에 연결됩니다. A4988 모듈의 방향 및 스텝 핀은 Arduino의 2, 4 핀에 연결됩니다. 이 프로젝트에서 IR 센서는 Arduino에 대한 외부 인터럽트로 사용됩니다. Arduino Uno에서 디지털 핀 2와 3은 인터럽트 핀이므로 IR 센서의 Out 핀을 Arduino 의 세 번째 핀에 연결합니다. 솔레노이드 밸브는 24V 전원으로 구동되며 스테퍼 모터는 12V 전원으로 구동됩니다.
자동 병 채우기를위한 Arduino 프로그램
Arduino를 사용 하는이 자동 병 채우기 시스템에 대한 전체 프로그램이 마지막에 제공됩니다. 여기에서 몇 가지 중요한 내용을 설명하겠습니다.
스테퍼 모터 라이브러리를 포함하여 프로그램을 시작하십시오. 여기에서 스테퍼 모터 라이브러리를 다운로드 할 수 있습니다.
그런 다음 스테퍼 모터의 회 전당 단계 수를 정의하십시오. NEMA의 경우 회 전당 17 단계는 200입니다.
#포함
모터 드라이버 모듈의 Step 및 Direction 핀이 연결된 핀을 지정합니다. 모터가 드라이버 모듈을 통해 연결되므로 모터 인터페이스 유형을 Type1 로 정의하십시오.
스테퍼 스테퍼 (STEPS, 2, 4); #define motorInterfaceType 1
스테퍼 모터 속도를 설정합니다.
stepper.setSpeed (500);
릴레이, 스텝 및 방향 핀을 출력으로 정의
pinMode (relay, OUTPUT); pinMode (4, OUTPUT); pinMode (2, OUTPUT);
Arduino의 외부 인터럽트 구문은 다음과 같습니다.
attachInterrupt (digitalPinToInterrupt (핀), ISR, 모드);
어디:
digitalPinToInterrupt (pin): 외부 인터럽트가 연결되는 핀을 정의하는데 사용됩니다. Arduino Uno Pin 2 및 3은 외부 인터럽트 핀입니다.
ISR: 외부 인터럽트가 호출 될 때 호출되는 함수입니다.
모드: 트리거 할 전환 유형 (예: 하강, 상승 등)
링크를 따라 Arduino 인터럽트에 대해 자세히 알아보십시오.
에서는 attachInterrupt () 함수 이는 핀 (3)가 외부 인터럽트 핀이며, 그 지정된 IR_detected의 IR 센서 (상승)에 HIGH LOW이다에서 그 상태를 변경할 때마다 함수가 호출된다.
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () 는 IR 센서가 높을 때 실행되는 ISR 함수입니다. 따라서 IR 센서가 높을 때마다이 기능은 스테퍼 모터를 몇 단계 실행 한 다음 스테퍼 모터를 중지하고 솔레노이드 밸브를 켭니다.
void IR_detected () {stepper.step (150); digitalWrite (릴레이, HIGH); stepper.step (0);
이제 마지막으로 코드를 노트북에 연결하여 Arduino에 업로드하십시오. 아래 이미지는 Arduino를 사용한 자동 병 채우기 시스템 의 프로토 타입을 보여줍니다 .
전체 코드 및 데모 비디오 가 아래에 제공됩니다.