본문 바로가기
아두이노(Arduino)/아두이노 중급

[아두이노중급.005] LCD/초음파센서/적외선센서/리모콘 테스트

by 긱펀 2022. 6. 6.
반응형

[아두이노중급.005] LCD/초음파센서/적외선센서/리모콘 테스트

 

이번 시간에는 LCD, 초음파센서, 적외선 센서, 리모콘을 각각 사용해보고, 한꺼번에 합쳐서 응용 작품을 하나 만들어 보도록 하겠습니다. 먼저 각 부품(LCD, 센서 등)을 하나씩 테스트를 해보고 다음 번 글 [아두이노중금.006]에서 모든 부품을 합쳐서 작동시켜 보겠습니다.

다음 [1] LCD 실습부터 차근차근 시작해 보세요.

 


[0] 회로도

아래 그림의 회로도와 같이 아두이노와 전자부품들을 연결해 주세요.

 


[1] LCD 실습

LCD

🚩 LCD란?

  • LCDLiquid Crystal Display(액정 디스플레이)의 앞글자를 따서 LCD라고 부릅니다.
  • LCD는 컴퓨터, TV, 카메라, 태블릿, 휴대전화 등에서 많이 사용되는 화면 장치이다.

LCD 화면을 사용하는 제품들 (출처: 삼성디스플레이 뉴스룸)

 

🚩 LCD 라이브러리 설치하기

(1) LCD라이브러리를 설치하기 위해,  아두이노 IDE를 열어서 아래 그림과 같이 상단 메뉴 중 "스케치">>"라이브러리 포함하기">>"라이브러리 관리..."로 들어갑니다.

아두이노 라이브러리 관리

 

(2) 라이브러리 매니저 창이 뜨면, 아래 그림과 같이 검색창 부분에 "Liquid Crystal i2c"라고 검색합니다. 검색 결과 중에서 "LiquidCrystal I2C by marco Schwartz" 라이브러리를 클릭하여 설치해 주세요. 

 

🚩(실습코드1) LCD 실습

(1) 아래의 실습코드를 아두이노에 업로드 해주세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <Wire.h>
#include <LiquidCrystal_I2C.h> // LCD 라이브러리 불러오기
 
LiquidCrystal_I2C lcd(0x27,16,4); // LCD 사용준비(객체 만들기)
 
int count = 0;
 
void setup() {
  lcd.init(); // LCD 초기화
  lcd.backlight(); // LCD 백라이트 켜기
}
 
void loop() {
  lcd.setCursor(0,0);       // LCD (0,0)에 커서두기
  lcd.print("Hello World"); // 글자출력
  lcd.setCursor(2,1);       // LCD (2,1)에 커서두기
  lcd.print("Nice Day");    // 글자출력
  count = count + 1// count 변수값 1증가
  lcd.setCursor(12,1); // LCD(12,1)에 커서두기
  lcd.print(count);  // count 변수값을 LCD에 출력
  delay(1000);  // 1초 기다리기
}
cs

 

🚩실습코드1 실행결과

(1) LCD 실습코드를 아두이노에 업로드 완료했으면, LCD 화면에 글자가 잘 나타나는 지 관찰해 보세요.

LCD 글자출력

 

(2) LCD에 글자를 출력할 때, 글자는 커서의 위치에서 시작하여 오른쪽으로 한칸 씩 가면서 출력됩니다.

글자를 LCD의 원하는 위치에 출력하고 싶으면, LCD의 좌표를 이해하여 커서의 좌표를 명령어로 먼저 실행할 필요가 있습니다. 좌표 입력이 완료된 뒤 LCD에 글자를 출력하면 아래 그림처럼 내가 원하는 위치에 글자가 출력됩니다.

 

LCD의 좌표값이 어떻게 되는지 아래 그림을 꼭 보세요.

 

LCD 좌표

 


[2] 초음파 센서 테스트

초음파 센서

🚩 초음파 센서란?

  • 초음파 센서란 사물까지의 거리를 측정하는 데에 사용되는 센서 입니다.
  • 초음파란, 주파수가 가청주파수(최대 20kHz)를 넘어서는 범위의, 사람이 들을 수 없는 음파이다.
  • 초음파 탐지기, 초음파 계측기, 초음파 검사 등 다양한 곳에서 초음파가 사용된다.

 

초음파 센서 물체감지 원리

 

🚩 초음파 센서 라이브러리 설치하기

(1) 초음파 센서 라이브러리를 설치하기 위해,  아두이노 IDE를 열어서 아래 그림과 같이 상단 메뉴 중 "스케치">>"라이브러리 포함하기">>"라이브러리 관리..."로 들어갑니다.

 

(2) 라이브러리 매니저 창이 뜨면, 아래 그림과 같이 검색창 부분에 "newping"이라고 검색합니다. 검색 결과 중에서 "NewPing by Tim Eckel" 라이브러리를 클릭하여 설치해 주세요. 

 

 

🚩(실습코드2) 초음파 센서

(1) 아래의 실습코드를 아두이노에 업로드 하세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <NewPing.h> // 초음파센서 라이브러리
 
#define TRIGGER_PIN   4    // 초음파센서 트리거 핀 번호
#define ECHO_PIN      5    // 초음파센서 에코 핀 번호
#define MAX_DISTANCE  200  // 최대거리 200cm
 
// 초음파센서 사용준비(객체 만들기)
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
 
void setup() {
  Serial.begin(9600); // 시리얼통신 시작
}
 
void loop() {
  int distance = sonar.ping_cm(); // 초음파센서 거리값(cm)을 변수에 저장
  Serial.println(distance);      // 시리얼 모니터에 거리값 출력
  delay(50); // 다음 초음파센서 측정을 위해 약간 기다리기
}
cs

 

 

🚩실습코드2 실행결과

(1) 초음파 센서코드 업로드가 완료되면, 아래 그림과 같이 시리얼 모니터를 열어 주세요.

아두이노 시리얼 모니터 열기

 

 

(2) 아래 그림과 같이 초음파 센서에 손을 가까이 대어 거리값이 시리얼 모니터에서 잘 변하는 지 관찰해 보세요.

 

아두이노 초음파 센서 테스트

 

 

 

[3] 적외선 센서 테스트

적외선 센서

🚩적외선 센서란?

  • 적외선 센서란 적외선을 이용하여 물체가 앞에 있는지 없는지를 판단하는 데에 사용되는 센서입니다.
  • 적외선이란, 파장 범위가 700nm ~ 1mm인 전자기파로서 파장이 빨간색 빛보다는 긴 부분을 말한다.
  • 햇빛에는 적외선이 포함되어 있지만 사람의 눈에는 적외선이 보이지 않는다.
  • TV 리모컨, 카메라 등에는 적외선이 방출되는 장치가 들어있다.
  • 발사된 적외선은 물체에 부딪혀 반사되어 감지되는 원리로, 장애물을 감지하는 곳에 많이 사용된다. 

앞에 물체를 감지하는 적외선 센서

 

🚩(실습코드3) 적외선 센서

(1) 아래의 코드를 아두이노에 업로드 하세요.

 

1
2
3
4
5
6
7
8
9
10
11
12
#define IRsensor_PIN  6 // 적외선 센서 연결 핀 번호
 
void setup() {
  pinMode(IRsensor_PIN, INPUT); // 적외선 센서 입력준비
  Serial.begin(9600);    // 시리얼 통신 시작
}
 
void loop() {
  int ir = digitalRead(IRsensor_PIN); // 적외선 센서값 읽어서 변수에 저장
  Serial.println(ir); // 적외선 센서값을 시리얼 모니터에 출력
  delay(500);  // 0.5초 기다리기
}
cs

 

🚩실습코드3 실행결과

(1) 적외선 센서코드 업로드가 완료되면, 아래 그림과 같이 시리얼 모니터를 열어 주세요.

아두이노 시리얼 모니터 열기

 

 

(2) 아래 그림과 같이 적외선 센서에 손을 가까이 대어 거리값이 시리얼 모니터에서 잘 변하는 지 관찰해 보세요.

적외선 센서 테스트

 

 

[4] 리모콘 센서 테스트

 

🚩리모콘이란?

  • 리모콘이란 "Remote Controller"의 줄임말로서, "원격 조종기"라는 말로 번역될 수 있습니다.
  • 리모콘은 적외선 신호를 발사하고, TV 같은 장치에 달려있는 수신기가 이 신호를 받아서 서로 통신이 이뤄지게 됩니다.
  • 적외선 신호는 사람 눈에 보이지 않지만 스마트폰 카메라로 적외선 신호를 관찰할 수 있습니다.
  • 리모콘은 TV, 에어컨, 선풍기, 오디오, 자동차 등을 작동시키는 데에 많이 사용됩니다.

 

리모콘 작동

 

🚩(실습코드4) 리모콘

(1) 아래의 코드를 아두이노에 업로드 하세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <IRremote.h>  // 리모콘 라이브러리
#define IRrecv_PIN  7  // 적외선 수신기 핀 번호
 
void setup() {
  Serial.begin(9600); // 시리얼 통신 준비
  IrReceiver.begin(IRrecv_PIN);  // 적외선 수신시작
}
 
void loop() {
  if(IrReceiver.decode()) { // 리모콘 명령이 입력된게 있다면
    int irValue = IrReceiver.decodedIRData.command; // 리모콘 수신명령 저장
    Serial.println(irValue); // 리모콘 수신명령을 시리얼 모니터에 출력
 
    // 리모콘 수신명령에 따라 if문 작성하는 방법
    if(irValue == 69) Serial.println("CH-");
    else if(irValue == 70) Serial.println("CH");
    else if(irValue == 71) Serial.println("CH+");
    
    IrReceiver.resume(); // 다음 리모콘 신호 받을 준비
    delay(100); // 0.1초 기다리기
  }
}
cs

 

🚩실습코드4 실행결과

(1) 리모콘 실습코드 업로드가 완료되면, 아래 그림과 같이 시리얼 모니터를 열어 주세요.

아두이노 시리얼 모니터 열기

(2) 아래 그림과 같이 적외선 수신기에 리모콘을 가까이 다가가, 리모콘 버튼을 하나씩 누를 때마다 리모콘 값이 시리얼 모니터에 잘 나타나는지 관찰해 보세요.

리모콘 값 테스트

 


 

 

[1] 아래의 조건에 맞춰 LCD에 적외선 센서값이 출력되도록 만들어 보세요.

(조건)
▪ 아래의 그림과 같이 LCD에 적외선 센서값이 출력되어야 합니다.
▪ 적외선 센서에 손을 가까이 할 때와 멀리 할 때 달라지는 센서값이 LCD에 나타나야 합니다.
물체가 없을 때 ( 1 )
적외선 센서 테스트
물체가 있을 때 ( 0 )

 

 

[2] 아래의 조건에 맞춰 LCD에 리모컨 값이 출력되도록 만들어 보세요.

(조건)
▪ 아래의 그림과 같이 LCD에 리모컨값이 출력되어야 합니다.
▪ 리모콘 버튼을 누를 때마다 달라지는 값이 LCD에 나타나야 합니다.

 

 

 

[3] LCD에 적외선 센서값, 초음파 센서값, 리모콘 값 3개를 한꺼번에 나타내 보세요.

 

 

 

 

 

 

 

728x90
반응형

댓글