【 아두이노 센서#22】 HC-SR04 초음파 센서 경보회로 with LCD
지난시간 초음파 센서로 접근 경보회로 기본을 다루었다. 그럼 이제 LCD를 부착하여 거리값을 LCD에 표시해보자. 이렇게 된다면 포터블하며 실제로 자동차등에 부착할 수 있는 형태가 되어 훨씬 실용적으로 활용할 수 있게 된다.
▶ 선수 학습 :
1. 초음파 센서 다루기 #1 ☜ 강좌보기클릭
2. 초음파 센서 다루기 #2 ☜ 강좌보기클릭
▶ 실습에 사용되는 부품 자료 ( HC-SR04 )
▶ 실습 목표 :
1. 초음파 신호의 반사된 시간을 이용해서 물체까지의 거리값을 계산할 수 있다.
2. 물체가 일정거리(40cm) 이하로 감지가 되면 경보음과 함께 LED가 깜빡이게 하고, 가까울 수록 점점 더 빠르게 반응 하도록 프로그래밍 한다.
3. 스피커와 LED는 각각 포트로 제어 할 수 있으나, 지금은 하나의 포트(13)로 제어할 것이며, LCD(1602)를 부착하여 초음파로 측정된 거리 값을 LCD를 통해 표시할 수 있다.
▶ 실습 회로도면 :
(이미지 클릭하면 확대 가능)
※ 아두이노 포트의 작은 출력으로 소리와 함께 LED를 작동 시키기 때문에, 기본적으로 소리가 작게 날 수 있으며, 스피커는 와트(w) 수가 작은 것을 사용해야 들을 수 있다. 또한 진동판을 전류로 울려서 소리를 내는 방식의 스피커 보다는 피에조 타입의(압전) 스피커를 사용하는 것이 좋다.
▶ 프로그램 코드 및 설명 :
/* 초음파 센서(HC-SR04 모듈)로 물체와의 거리측정하기 */
#include <LiquidCrystal.h>// LCD 사용을 위한 헤더 선언
int distance;
int triggerPin = 10;
int echoPin = 11;
int alertPin=3; // 스피커 & LED 연결 핀 설정
LiquidCrystal lcd(2,3,4,5,6,7);//LCD 핀 배열 설정
void setup( ) {
Serial.begin(9600);
pinMode(triggerPin, OUTPUT); // 트리거 핀을 출력으로 설정
pinMode(echoPin, INPUT); // 에코 핀을 입력으로 설정
}
void loop( ) {
digitalWrite(triggerPin, LOW); // 트리거 핀 초기화
digitalWrite(echoPin, LOW); // 에코 핀 초기화
delayMicroseconds(2);
// 트리거 핀으로 10 us의 펄스를 발생
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
// 에코 핀 입력으로부터 거리 값을 cm 단위로 계산
distance = pulseIn(echoPin, HIGH) / 58;
Serial.println("Distance(cm) = " + String(distance));
delay(1000);
distance = distance>100? 100:distance;//100이상의 값은 모두100
if (distance < 40) { // 40 이하의 값부터 경보 시작
digitalWrite(alertPin,HIGH);
delay(10);
digitalWrite(alertPin,LOW);
delay(distance); // 거리가 가까울수록 음이 빨라지도록 딜레이값을 조정
}
lcd.setCursor(0,0); //커서를 첫 열 첫 행으로 이동
lcd.print("Distance(cm):");
lcd.print(distance);
delay(2); // 거리값 표시를 위한 약간의 딜레이를 준다.
lcd.print(" "); //거리 값이 계속 바뀌어 나타나는 잔상제거를 위한 공백
}
▶ 실행영상:
(전체화면 보기로 보세요)
# 아래 영상은 동일한 회로와 프로그래밍이 되어 있으며, 휴대성을 위해 아두이노 보드만, 우노 R3에서 나노 보드로 교체한 회로 영상이다.
▶ 아두이노 파일(다운) :
'아두이노 > 2. 아두이노센서' 카테고리의 다른 글
【 아두이노 센서#24】 L298N 모터 모듈을 활용한 초음파센서 회로#1 (2) | 2019.01.22 |
---|---|
【 아두이노 센서#23】 HC-SR04 초음파 센서 경보회로2 with i2c LCD (9) | 2019.01.21 |
【 아두이노 센서#21】 HC-SR04 초음파 센서 다루기 #2 (0) | 2019.01.17 |
【 아두이노 센서#20】 HC-SR04 초음파 센서 다루기 #1 (0) | 2019.01.15 |
【 아두이노 센서#19】 DHT22 온·습도 센서 다루기 with LCD#3 (0) | 2019.01.02 |