아두이노 우노 R4 - 장애물 회피 센서
이 가이드에서는 Arduino UNO R4와 적외선 장애물 회피 센서를 사용하여 장애물을 감지하는 방법을 배웁니다.
Hardware Preparation
1 | × | Arduino UNO R4 WiFi | Amazon | |
1 | × | Arduino UNO R4 Minima (Alternatively) | Amazon | |
1 | × | USB Cable Type-C | 쿠팡 | Amazon | |
1 | × | IR Obstacle Avoidance Sensor | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino UNO R4 | 쿠팡 | Amazon | |
1 | × | (Recommended) Breadboard Shield For Arduino UNO R4 | 쿠팡 | Amazon | |
1 | × | (Recommended) Enclosure For Arduino UNO R4 | Amazon | |
1 | × | (Recommended) Power Splitter For Arduino UNO R4 | Amazon |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
IR 장애물 회피 센서에 대하여
적외선(IR) 장애물 센서는 적외선 신호를 사용하여 앞의 장애물을 감지할 수 있습니다. 이 센서는 2cm에서 30cm 거리까지의 물체를 감지할 수 있습니다. 내장된 도구인 가변저항기를 사용하여 감지 거리를 변경할 수 있습니다.
핀아웃
IR 장애물 회피 센서는 세 개의 핀을 가지고 있습니다:
- GND 핀: 이 핀을 GND(0V)에 연결하세요.
- VCC 핀: 이 핀을 VCC(5V 또는 3.3V)에 연결하세요.
- OUT 핀: 이것은 출력 핀입니다. 장애물이 있으면 LOW이고 장애물이 없으면 HIGH입니다. 이 핀을 Arduino UNO R4의 입력 핀에 연결하세요.
image source: diyables.io
작동 방식
적외선 장애물 센서 모듈은 IR 발신기와 IR 수신기를 포함합니다. IR 발신기는 적외선 신호를 보내며, IR 수신기는 물체에서 반사되는 신호를 감지하여 장애물이 있는지 확인합니다. 장애물의 감지는 OUT 핀을 통해 표시됩니다.
- 센서 앞에 장애물이 있을 때 센서의 OUT 핀은 LOW입니다.
- 센서 앞에 장애물이 없을 때 센서의 OUT 핀은 HIGH입니다.
※ NOTE THAT:
배송 중에 센서가 구부러지거나 손상될 수 있으며, 이는 제대로 작동하지 않을 수 있습니다. 센서가 올바르게 작동하지 않으면, 적외선 송신기와 수신기를 서로 평행하게 맞추십시오.
Wiring Diagram
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
IR 장애물 회피 센서를 위한 프로그래밍 방법
- pinMode() 함수를 사용하여 Arduino UNO R4 핀을 디지털 입력으로 설정합니다. 예를 들어, 핀 8을 설정하십시오.
pinMode(8, INPUT_PULLUP);
- DigitalRead() 함수를 사용하여 Arduino UNO R4 핀의 상태를 읽습니다.
int state = digitalRead(8);
Arduino UNO R4 코드
장애물 센서를 사용하는 사례가 있습니다:
- 장애물이 있는지 여부에 따라 행동을 취하거나 아무것도 하지 마세요.
- 장애물을 감지했을 때 또는 장애물이 사라졌을 때 행동을 취하거나 아무것도 하지 마세요.
장애물 존재 여부를 확인하는 Arduino UNO R4 코드
/*
* 이 Arduino UNO R4 코드는 newbiely.kr 에서 개발되었습니다
* 이 Arduino UNO R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-obstacle-avoidance-sensor
*/
#define SENSOR_PIN 8 // The Arduino UNO R4 pin connected to OUT pin of IR obstacle avoidance sensor
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
// initialize the Arduino's pin as aninput
pinMode(SENSOR_PIN, INPUT);
}
void loop() {
// read the state of the the input pin:
int state = digitalRead(SENSOR_PIN);
if (state == LOW)
Serial.println("The obstacle is present");
else
Serial.println("The obstacle is NOT present");
delay(100);
}
Detailed Instructions
다음 지침을 단계별로 따르세요:
- Arduino Uno R4 WiFi/Minima를 처음 사용하는 경우, Arduino IDE에서 Arduino Uno R4 WiFi/Minima 환경 설정 튜토리얼을 참조하세요.
- 제공된 다이어그램에 따라 장애물 회피 센서를 Arduino Uno R4에 연결하세요.
- USB 케이블을 사용하여 Arduino Uno R4 보드를 컴퓨터에 연결하세요.
- 컴퓨터에서 Arduino IDE를 실행하세요.
- 적절한 Arduino Uno R4 보드(예: Arduino Uno R4 WiFi)와 COM 포트를 선택하세요.
- 코드를 복사하고 Arduino IDE로 제공된 코드를 여세요.
- Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino UNO R4에 업로드하세요.
- 센서 앞에 장애물을 잠시 놓다가 제거하세요.
- 시리얼 모니터에서 결과를 확인하세요.
COM6
The obstacle is NOT present
The obstacle is NOT present
The obstacle is NOT present
The obstacle is NOT present
The obstacle is NOT present
The obstacle is present
The obstacle is present
The obstacle is present
The obstacle is present
The obstacle is NOT present
The obstacle is NOT present
Autoscroll
Clear output
9600 baud
Newline
아두이노 UNO R4 장애물 감지 코드
/*
* 이 Arduino UNO R4 코드는 newbiely.kr 에서 개발되었습니다
* 이 Arduino UNO R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-obstacle-avoidance-sensor
*/
#define SENSOR_PIN 8 // The Arduino UNO R4 pin connected to OUT pin of IR obstacle avoidance sensor
int prev_obstacle_state = HIGH; // the previous state from the input pin
int obstacle_state; // the current reading from the input pin
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
// initialize the Arduino's pin as aninput
pinMode(SENSOR_PIN, INPUT);
}
void loop() {
// read the state of the the input pin:
obstacle_state = digitalRead(SENSOR_PIN);
if (prev_obstacle_state == HIGH && obstacle_state == LOW)
Serial.println("The obstacle is detected");
else if (prev_obstacle_state == LOW && obstacle_state == HIGH)
Serial.println("The obstacle is cleared");
delay(50);
// save the the last state
prev_obstacle_state = obstacle_state;
}
Detailed Instructions
- 코드를 복사하여 Arduino IDE에서 엽니다.
- Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino UNO R4에 업로드합니다.
- 센서 앞에 잠시 장애물을 놓았다가 제거하세요.
- 시리얼 모니터에서 결과를 확인하세요.
COM6
The obstacle is detected
The obstacle is cleared
Autoscroll
Clear output
9600 baud
Newline
Video Tutorial
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.