IoT의 이해
전병현 교수
6주차 3강. 초음파 센서 제어
학습내용
학습목표
1. 장애물 거리 감지
2. 거리 감지 후 LED 제어
1. 초음파 센서로 장애물 거리를 감지할 수 있다.
2. 초음파 센서로 거리 측정 후 LED를 제어할 수 있다.
이미지
준비물 브레드 보드(1개) 아두이노 보드(1개)
이미지
준비물 초음파 센서(1개)
1. 장애물 거리 감지
◉
실습 준비물1. 장애물 거리 감지(2)
◉
회로도 구성• Trig 2번 핀, Echo 3번 핀, Vcc GND에 연결
•출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com
①
②
③
④
1. 장애물 거리 감지(3)
◉
라이브러리 추가하기①
②
③
1. 장애물 거리 감지(4)
◉
예제 파일 실행하기• 파일 > 예제 > NewPing > NewPingExample
④
1. 장애물 거리 감지(5)
◉
실습 소스#include <NewPing.h> // 라이브러리 추가
#define TRIGGER_PIN 2 // Trag핀 지정
#define ECHO_PIN 3 // Echo핀 지정
#define MAX_DISTANCE 200 // ping 최대 거리 cm
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(115200); // 통신 속도 }
void loop() {
delay(50);
Serial.print("Ping: "); // 시리얼모니터에 출력
Serial.print(sonar.ping_cm()); // 라이브러리에서 계산된 값 출력 Serial.println("cm"); // 거리 값을 계산하여 반환해 줌
}
1. 장애물 거리 감지(6)
• 주의 : Serial.begin
(115200)이므로 시리얼 모니터의 속도를 조정해 줌
◉
결과 확인2 3
이미지
준비물 브레드 보드(1개) 아두이노 보드(1개)
이미지
준비물 220Ω 저항(1개) LED 1개 초음파 센서(1개)
2. 거리 감지 후 LED 제어(1)
◉
실습 준비물2. 거리 감지 후 LED 제어(2)
◉
회로도 구성(1)• Trig 2번 핀, Echo 3번 핀, Vcc GND에 연결
• LED(+) 8번 핀, LED(-) 저항, 220Ω GND에 연결
•출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com
2. 거리 감지 후 LED 제어(3)
◉
회로도 구성(2)1 2
3
4 5
2. 거리 감지 후 LED 제어(4)
◉
회로도 구성(3)5V전원공급/GND
OUTPUT/OUTPUT/INPUT
2. 거리 감지 후 LED 제어(5)
◉
실습 소스(1)#define Trig 2
#define Echo 3 void setup() {
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
pinMode(8, OUTPUT);
Serial.begin(9600);
}
void loop() {
int distance = 0;
digitalWrite(Trig, LOW);
delayMicroseconds(2);
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
distance = pulseIn(Echo, HIGH) / 58.2; // 거리 값을 cm로 환산
2. 거리 감지 후 LED 제어(6)
◉
실습 소스(2)Serial.print(distance); // 거리 값 시리얼모니터에 출력 Serial.println(“cm”);
if (distance <= 30) { // 만약 거리 값이 30cm보다 작으면 digitalWrite(8, HIGH); // LED On
} else { // 그렇지 않으면
digitalWrite(8, LOW); // LED Off }
}
2. 거리 감지 후 LED 제어(7)
◉
결과 확인•출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com
학습하기가 끝났습니다.
다음페이지 버튼을 클릭하여
평가문항을 풀어보세요.
프로그램 실습
※ 자료실에서 프로그램 소스 코드를 다운로드 받으세요.
실습
1. 장애물 거리 감지(1)
1. 실습 준비물 : 아두이노 보드(1개), 브레드 보드(1개), 초음파 센서(1개) 2. 초음파 센서를 활용하여 거리를 측정한다.
◉
실습 준비물실습
1. 장애물 거리 감지(2)
1. Trig는 디지털 2번 핀, Echo는 디지털 3번 핀, Vcc GND에 연결한다.
2. 구글 검색 엔진을 활용하여 Arduino Playgrounf – NewPing Library를 다운로드 하고 등록한다.
3. #define MAX_DISTANCE 200 : ping 최대 거리 200cm로 설정 4. Serial.print(sonar.ping_cm()) : 라이브러리에서 계산된 값을 출력
◉
실습 소스실습
1. 장애물 거리 감지(3)
1. Trig는 디지털 2번 핀에 연결하고, 빛을 출력한다.
2. Echo는 디지털 3번 핀에 연결하고, 빛이 돌아오는 시간을 계산한다.
3. 시리얼 모니터에 거리를 측정한 후 값을 출력한다.
◉
실행하기실습
2. 거리 감지 후 LED 제어(1)
1. 실습 준비물 : 아두이노 보드(1개), 브레드 보드(1개), 초음파 센서(1개), LED(1개), 220Ω 저항(1개) 2. 초음파 센서를 활용하여 거리를 측정하고, LED를 제어한다.
◉
실습 준비물실습
2. 거리 감지 후 LED 제어(2)
1. 초음파 센서 Trig 핀과 아두이노 디지털 2번 핀을 연결한다.
2. 초음파 센서 Echo 핀과 아두이노 디지털 3번 핀을 연결한다.
3. LED(+) 8번 핀, LED(-) 저항, 220Ω GND에 연결한다.
◉
회로도 구성실습
2. 거리 감지 후 LED 제어(3)
1. #define Trig 2, #define Echo 3 디지털 핀에 연결한다.
2. Trig는 OUTPUT, Echo는 INPUT으로 설정한다.
3. pinMode(8, OUTPUT) : 디지털 8번 핀은 LED와 연결하고, OUTPUT으로 설정
◉
실습 소스(1)실습
2. 거리 감지 후 LED 제어(4)
4. distance = pulseIn(Echo, HIGH) / 58.2 : 거리 값을 cm로 환산 5. if (distance <= 30) : 거리가 30cm이하일 경우를 비교
6. digitalWrite(8, HIGH) : 거리가 30cm이하일 경우를 LED를 ON
◉
실습 소스(2)실습
2. 거리 감지 후 LED 제어(5)
1. 시리얼 모니터를 통하여 거리를 출력한다.
2. 만약 거리가 30cm이하의 경우에는 8번 핀을 통하여 LED를 ON 시킨다.
◉
실행하기실습점검
1. 실습에 필요한 보드와 준비물이 준비가 되었나요?
2. 초음파 센서를 활용하여 장애물 거리를 감지할 수 있나요?
3. 초음파 센서를 활용하여 거리 측정 후 LED를 제어할 수 있나요?
예 예 예
아니오 아니오 아니오 실습 재미있게 해보셨나요?
‘초음파 센서’
에 대해 실습한 내용과 자신의 실습 결과물을 비교해 보세요.실습점검
1. 장애물 거리 감지
- 회로도 구성이 잘 되었는지 확인
- Arduino Playgrounf – NewPing Library 다운로드 및 등록
- Serial.print(sonar.ping_cm()) : 계산된 값이 정상적으로 출력이 되는지 확인 2. 거리 감지 후 LED 제어
- 회로도 구성이 잘 되었는지 확인
- distance = pulseIn(Echo, HIGH) / 58.2 : 거리 값을 cm로 환산되는지 확인 - 거리가 30cm이하일 경우 LED가 정상 작동 되는지 확인
◉
교수자 실습 Tip다음시간에는…
에 대해 학습해 보겠습니다.
참고문헌
7주차. 모터의 개념과 활용
1강. 모터의 이해
• ㈜메카솔루션. http://mechasolution.com
• 김경연, 장정형, 박민상 공저(2017). 아두이노 완전정복. 북두출판사.