포토 인터럽트 센서 2개를 테스트할 때, 대기시간을 delaySeconds 변수에 0.5 초로 저장했었다. 이 값은 테스트하면서 최적의 값을 찾아 수정할 거긴 한데, 그럼에도 불구하고 현장에서 사용할 작업자 입장에서는 그 시간이 너무 짧거나 길다고 느낄 수 있다는 생각이 들었다. 그 때마다 내가 프로그램을 수정해 줄수는 없고, 대신 이 대기시간을 현장의 작업자가 쉽게 변경할 수 있도록 만드려고 한다.
내가 현재 가지고 있는 스위치 중에서 3 state 토글 스위치가 적당해 보였다. 스위치가 중앙에 위치하고 있으면 '표준' 이고, 양쪽으로 '빠름' 과 '느림' 으로 선택할 수 있도록 하려고 한다. 예를 들어 '표준' 으로 놓으면 0.5 초, '빠름' 으로 놓으면 0.3초, '느림' 으로 놓으면 0.8 초로 작동하도록 delaySeconds 변수의 값을 변경하는 것이다.
토글 스위치에는 핀이 3개 있는데, 그 중 가운데 핀은 아두이노 보드의 GND 핀에 연결했고 나머지 두 핀은 각각 5번과 6번 디지털핀에 연결했다.
int switch1Pin = 5;
int switch2Pin = 6;
int sensor1Value;
int sensor2Value;
void setup() {
Serial.begin(9600);
pinMode(switch1Pin, INPUT_PULLUP);
pinMode(switch2Pin, INPUT_PULLUP);
sensor1Value = digitalRead(switch1Pin);
sensor2Value = digitalRead(switch2Pin);
if ( (sensor1Value == 1) && (sensor2Value == 1) ) {
Serial.println("Select none");
}
else if ( (sensor1Value == 1) && (sensor2Value == 0) ) {
Serial.println("Select 1");
}
else if ( (sensor1Value == 0) && (sensor2Value == 1) ) {
Serial.println("Select 2");
}
}
void loop() {
}
setup() 함수에 코딩돼 있기 때문에 아두이노 보드가 부팅될 때만 해당 코드가 작동한다.
토글 스위치 위치를 변경한 후 아두이노 보드의 리셋 버튼을 눌렀고, 아래와 같이 잘 작동하는 것을 확인할 수 있었다.

'아두이노 > 제품 검사 센서' 카테고리의 다른 글
#6 기획 및 검토 - 터치 스위치 (0) | 2023.06.05 |
---|---|
#5 기획 및 검토 - 아두이노 Micro (0) | 2023.06.03 |
#4 제작 (0) | 2023.05.30 |
#2 기획 및 검토 - 포토 인터럽터 센서 (0) | 2023.05.27 |
#1 기획 및 검토 - 포토 인터럽터 센서, 능동 부저 (0) | 2023.05.24 |