9. PSD센서 이해하기

Download Report

Transcript 9. PSD센서 이해하기

PSD센서 명령어 이해하기
목차
1.
재료준비 및 브레드 보드 배선 구성하기
2.
PSD센서 명령어 이해 및 실습
3.
응용 작품 만들기
1
준비물
준비하기
1) 아두이노 보드 (SPL-Duino V2 초보자용 보드)
2) USB 케이블
3) 스피커, psd 센서
4) 브레드보드 실습 키트
2
브레드보드 배선 구성하기
전원 연결
아래 그림과 같이 브레드 보드를 연결해줍니다.
3
브레드보드 배선 구성하기
센서 연결
키패드 센서 스피커 LED바를 아래 그림과 같이 연결해줍니다.
psd 센서 : A0번핀에 연결
파란색 – 파란색
빨간색 – 빨간색
검은색 – 검은색
4
브레드보드 배선 구성하기
디지털 센서
• 3핀 아날로그 psd 센서 준비하기
거리센서라고 불리며 거리에 따라 값이 변하는 센서입니다.
센서 선(s)으로 센서의 데이터 값을
읽고 쓰고 합니다.
psd센서의 경우 아날로그 핀에 사용합니다.
빨간색 선은
V (Voltage)를 의미합니다.
검정색 선은
G (GND)를 의미합니다.
5
PSD 센서 알아보기
PSD 센서
• PSD 센서
거리 측정
PSD
센서
물체
PSD 센서는 아날로그 센서를 이용하며 멀어지면 값이 감소하고 가까우면
값이 증가해지는 센서입니다.
단 psd 센서는 최소거리가 5cm이며
5cm 떨어진 곳에서 부터 측정해야 합니다
6
PSD 센서 알아보기
PSD 센서
• PSD 센서
void setup()
{
Serial.begin(115200);
}
void loop()
{
int a0 = analogRead(0);
Serial.println(a0);
delay(500);
}
좌측 소스를 입력하여 연결한 psd센서의
값의 변화를 관찰해봅니다.
7
map함수 이해하기
map 함수
• map함수
- map 함수는 실시간 동적으로 변하는 변수값을 지정한 범위로 매핑하는 함수입니다.
- 주로 0~1023으로 변하는 아날로그 센서의 변화폭을 줄이고자 씁니다.
- 예를 들어 0~1023로 변하는 센서를 map함수를 이용하여 0~100으로 설정하면
0~1023로 움직이는 센서값이 0~100으로 증가폭을 줄여 표현이 가능합니다.
8
map함수 이해하기
map 함수
• map함수
map(value, 0, 1023, MIN, MAX)
변수의 이름
변수의 범위값을 위 설정값으로 다시 지정
동적으로 변하는 변수의 범위값
동적으로 변하는 센서의 변수를 value에 입력합니다.
그 변화하는 변수의 값의 최대값과 최소값을 입력하여 줍니다.
min과 max에 다시 변수의 값의 범위를 설정하여 줍니다.
9
map함수 이해하기
map 함수
• map함수
void setup()
{
Serial.begin(115200);
}
void loop()
{
int a0 = analogRead(0);
int test_map=map(a0, 0, 1023, 0, 100);
Serial.println(test_map);
delay(500);
}
psd센서를 0번 아날로그에 장착하고
좌측 소스를 업로드 합니다.
아날로그 0번 값을 a0에 저장하고
map함수를 이용하여 0~1023의
범위를 가진 센서를
0부터 100까지로 함축 시키게 됩니다.
10
map함수 이해하기
map 함수
• map함수
시리얼 모니터를 열어
확인하면 그림과 같은
1023까지 가던 범위가
줄어든 것을 확인 할 수
있습니다.
11
응용 작품 만들기
실습
• 미션) psd 센서를 이용하여 가까워 지면 경고음이 들리는 경보 장치를 만
드십시오.
물체
12
응용 작품 만들기
실습
• 코드 예시)
void setup()
{
}
void loop()
{
int a0 = analogRead(0);
if(a0 > 600)
{
tone(2,1000,1000);
delay(1000);
}
delay(500);
}
13
응용 작품 만들기
실습
• 미션) map 함수를 이용하여 psd센서의 범위를 함축시키고 거리에 따라
음이 계속 바뀌는 스피커 장치를 만드시오.
14
응용 작품 만들기
실습
• 코드 예시)
void setup()
{
}
void loop()
{
int a0 = analogRead(0);
int test_map=map(a0, 0, 1023, 100, 500);
tone(2,test_map,1000);
delay(1000);
}
15