8. 경광등 장치 제작 실습

Download Report

Transcript 8. 경광등 장치 제작 실습

경광등 장치 제작 실습
목차
1.
재료준비 및 브레드 보드 배선 구성하기
2.
경광등 장치 제작 실습
3.
응용 작품 만들기
1
준비물
준비하기
1) 아두이노 보드 (SPL-Duino V2 초보자용 보드)
2) USB 케이블
3) 스피커, 키패드센서
4) 브레드보드 실습 키트
2
브레드보드 배선 구성하기
전원 연결
아래 그림과 같이 브레드 보드를 연결해줍니다.
3
브레드보드 배선 구성하기
센서 연결
키패드 센서 스피커 LED바를 아래 그림과 같이 연결해줍니다.
4
경광등 장치 만들기
실습
경광등 장치를 만들고자 합니다.
다양한 색상 표현이 가능한 led바를 이용하여
그림과 같은 유사한 경광등 장치를 만들어봅니다.
5
경광등 장치 만들기
실습
- 5개의 버튼을 이용하여 5가지의 상황을 구현
- 5가지 상황에 따른 led색상 표현
- 특정 상황에서는 스피커를 울리는 장치
6
경광등 장치 만들기
실습
#include <NS_Rainbow.h>
NS_Rainbow ns_stick = NS_Rainbow(8,2);
int green = 0;
int white = 143;
int blue = 743;
int yellow = 506;
int red = 328;
int num;
간단한 초기 설정부터 합니다.
led바의 헤더파일을 추가해주고
사용할 led바의 개수와 핀을 지정합니다.
키패드의 값을 전역변수로 지정합니다.
전역번수로 num를 하나 만들어 줍니다.
7
경광등 장치 만들기
실습
void setup() {
ns_stick.begin();
}
setup에 led바 시작을 위한 명령어를 추가합니다.
8
경광등 장치 만들기
실습
void led_bar(int num)
{
if(num == 1)
{
ns_stick.clear();
ns_stick.show();
delay(200);
ns_stick.setColor(0, 255, 0,
ns_stick.setColor(1, 255, 0,
ns_stick.show();
delay(200);
}
led bar에 대한 함수를 만들어 줍니다.
이 함수는 버튼이 눌렸을 때 경광등의
5가지 상황을 연출 해주는 함수입니다.
num의 값에 따라 상황이 변하게 됩니다.
0);
0);
우선 num이 1일 때 첫 번째와 두 번째
led바가 빨간 색으로 점멸하게 됩니다.
9
경광등 장치 만들기
실습
else if(num==2)
{
ns_stick.clear();
ns_stick.show();
delay(200);
ns_stick.setColor(2,
ns_stick.setColor(3,
ns_stick.show();
delay(200);
}
else if(num==3)
{
ns_stick.clear();
ns_stick.show();
delay(200);
ns_stick.setColor(4,
ns_stick.setColor(5,
ns_stick.show();
delay(200);
}
num가 2일 때 세 번째 네 번째의 led바가
노란색으로 점멸합니다.
clear명령어를 이용하면 setColor로
색상값을 0,0,0으로 지정하지 않아도 됩니다.
255, 255,
255, 255,
0, 255,
0, 255,
0);
0);
num 3일 때는 다섯 번째 여섯 번째 led바가
초록색으로 점멸합니다.
0);
0);
10
경광등 장치 만들기
실습
else if(num==4)
{
ns_stick.clear();
ns_stick.show();
delay(200);
ns_stick.setColor(6, 0, 0,
ns_stick.setColor(7, 0, 0,
ns_stick.show();
delay(200);
}
마찬가지로 num이 4가 되면
일곱 번째와 마지막 led바가 파란색으로
점멸하게 됩니다.
255);
255);
11
경광등 장치 만들기
실습
else if(num==5)
{
ns_stick.clear();
for(int i=0;i<=3;i++)
{
ns_stick.setColor(i, 255, 0, 0);
ns_stick.show();
}
tone(3,500,200);
delay(200);
ns_stick.clear();
for(int i=4;i<=7;i++)
{
ns_stick.setColor(i, 0, 0, 255);
ns_stick.show();
}
tone(3,1000,200);
delay(200);
}
}
num가 5일 때는 1~4번째 등을 빨간색
5~8번째 등을 파란색으로 번갈아 사면서
점멸합니다.
같은 명령어가 많아지는 관계로
for반복문을 이용합니다.
점멸 할 때마다 스피커가 울리게 합니다.
12
경광등 장치 만들기
실습
void loop()
{
led_bar(num);
int a = analogRead(0);
if (a == green)
{
num = 1;
}
else if (a == white)
{
num = 2;
}
else if (a == blue)
{
num = 3;
}
else if (a == yellow)
{
num = 4;
}
본문으로 들어갑니다.
우선 led_bar()함수를 불러옵니다.
그 다음 키패드의 값을 읽어올
아날로그 명령어를 추가합니다.
조건문을 만들어 키패드가 동작할 때
num의 수치를 변경해 led_bar가 작동하게 합니다.
13
응용 작품 만들기
실습
• 미션) 버튼을 이용해 도, 레, 미, 파, 솔을 구현하고 소리가 날 때 마다
led바가 소리에 맞춰 변화하게 하십시오.(led바는 함수를 이용하십시오)
14
응용 작품 만들기
실습
• 코드 예시 )
#include <NS_Rainbow.h>
int green = 0;
int white = 143;
int blue = 743;
int yellow = 506;
int red = 328;
NS_Rainbow ns_stick = NS_Rainbow(8,2);
void setup() {
ns_stick.begin();
}
void led_bar(int R, int G, int B)
{
ns_stick.clear();
ns_stick.show();
delay(200);
for(int i=0;i<=8;i++)
{
ns_stick.setColor(i, R, G, B);
15