이번에는 지인의 공장에 있는 레이저 각인 기계에서 사용할 검사기를 만들기로 했다.
레이저로 글자나 그림을 각인해 넣으려면 먼저 대상이 되는 제품을 정확한 위치에 고정해야 하는데, 바쁘게 작업하다보면 잘못된 위치에 놓인 상태로 각인을 하는 바람에 해당 제품을 폐기해야 하는 일이 있다고 한다. 이로 인한 손실을 줄이고자, 제품이 정위치에 있지 않으면 경보를 울리는 장치를 만들어 설치하기로 했다. 우선 교재에 나온 예제들을 검토해서 응용 가능한 기술을 체크해보기로 했다.
40장 포토 인터럽터 센서 모듈 실습
40장 포토 인터럽터 센서 모듈 실습
실습키트에는 포토 인터럽터 센서가 없어서 따로 구매해야 했는데, 마침 지인이 사용하려는 센서를 지정해줘서 인터넷 쇼핑몰에서 구입했다.
제품명은 "BS5-L1M 포토마이크로센서 NPN오픈콜렉터출력" 이고, 다행히 취급설명서가 포함돼 있었다.
제품명에서 "L1" 은 외형이 L 자 처럼 생겼다는 의미이고, "M" 은 센서에 있는 표시등이 평소에는 켜져 있다가 물체가 감지되면 꺼진다는 의미이다.
그 뒤의 "NPN" 은 인터넷을 찾아봐야 했는데, 전자회로 제어 분야에서 NPN 과 PNP 이란 개념이 있다는 것을 알게 됐다. 다만 아두이노 보드를 사용하는 이번 작업에서는 NPN 과 PNP 를 구분할 필요는 없을 거 같다.
갈색선은 아두이노 보드의 5V 핀에, 청색선은 아두이노 보드의 GND 핀에, 흑색선은 아두이노 보드의 디지털 출력에 연결한다. 백색선은 모드 선택용으로, 갈색선에 연결하면 Light On 모드로 아무것에도 연결하지 않으면 Dark On 모드로 작동하게 된다.
능동 부저
- 능동 부저 : 회로가 내장돼 있어 전원만 인가하면 소리가 나오는 대신 한가지 음만 낼 수 있다.
- 수동 부저 : 출력신호를 일일이 제어해야 소리가 나오는 대신 여러가지 음을 낼 수 있다.
이번 작업에서는 능동 부저로도 충분할 거 같은데, 교재에서는 수동 부저에 대해서만 예제를 제공하고 있어서 능동 부저 사용법은 인터넷을 검색해야 했다.
능동부저에는 + 와 - 핀 2개가 있다. + 핀은 아두이노 보드의 디지털 출력에 연결해서 프로그램에서 소리를 제어할 수 있게 하고, - 핀은 아두이노 보드의 GND 핀에 연결한다.
브레드보드를 이용해 위와 같이 연결했다. 백색선은 사용하지 않는 Dark On 모드이다.
아두이노 IDE 에 연결하고 다음과 같은 테스트 코드를 업로드한다.
int buzzerPin = 2;
int sensor1Pin = 3;
void setup() {
Serial.begin(9600);
pinMode(buzzerPin, OUTPUT);
pinMode(sensor1Pin, INPUT_PULLUP);
}
void loop() {
if (digitalRead(sensor1Pin) == LOW) {
Serial.println("IN");
digitalWrite(buzzerPin, HIGH);
delay(100);
digitalWrite(buzzerPin, LOW);
while(digitalRead(sensor1Pin) == LOW);
Serial.println("OUT");
}
}
전원을 연결하면 포토 인터럽트 센서의 붉은색 표시등이 항상 점등돼 있다. 센서 사이에 물체를 넣으면 표시등이 꺼지고 부저가 한 번 울리면서 Serial Monitor 에 IN 이라고 출력된다. 물체를 빼면 표시등이 켜지고 Serial Monitor 에는 OUT 이라고 나온다
이번에는 백색선을 갈색선과 연결하여 Light On 모드로 바꾼다.
아두이노 IDE 에 연결하고 다음과 같은 테스트 코드를 업로드한다.
int buzzerPin = 2;
int sensor1Pin = 3;
void setup() {
Serial.begin(9600);
pinMode(buzzerPin, OUTPUT);
pinMode(sensor1Pin, INPUT_PULLUP);
}
void loop() {
if (digitalRead(sensor1Pin) == HIGH) {
Serial.println("IN");
digitalWrite(buzzerPin, HIGH);
delay(100);
digitalWrite(buzzerPin, LOW);
while(digitalRead(sensor1Pin) == HIGH);
Serial.println("OUT");
}
}
작동 결과는 Dark On 모드 때와 동일하다.
전원을 연결하면 포토 인터럽트 센서의 붉은색 표시등이 항상 점등돼 있다. 센서 사이에 물체를 넣으면 표시등이 꺼지고 부저가 한 번 울리면서 Serial Monitor 에 IN 이라고 출력된다. 물체를 빼면 표시등이 켜지고 Serial Monitor 에는 OUT 이라고 나온다
- Dark On 모드 : 센서의 물체가 감지되면 흑색선으로 LOW 출력
- Light On 모드 : 센서의 물체가 감지되면 흑색선으로 HIGH 출력
이번 작업에는 Light On 모드를 사용하기로 했다.
'아두이노 > 제품 검사 센서' 카테고리의 다른 글
#6 기획 및 검토 - 터치 스위치 (0) | 2023.06.05 |
---|---|
#5 기획 및 검토 - 아두이노 Micro (0) | 2023.06.03 |
#4 제작 (0) | 2023.05.30 |
#3 기획 및 검토 - 3 states 토글 스위치 (0) | 2023.05.29 |
#2 기획 및 검토 - 포토 인터럽터 센서 (0) | 2023.05.27 |