IoT의 이해
전병현 교수
3주차 2강. 7세그먼트와 LED 제어
학습내용
학습목표
1. 7세그먼트 실습하기
2. 버튼을 사용해 LED 제어하기
1. 7세그먼트를 제어할 수 있다.
2. 버튼을 사용해 LED를 제어할 수 있다.
1. 7세그먼트 실습하기(1)
실습 준비물 설명
회로도 구성 및 프로그램 설명
실 습
◉ 실습 진행 순서
이미지
준비물 브레드 보드(1개) 아두이노 보드(1개)
이미지
준비물 FND(7세그먼트) -
MT03911AR(1개) 220Ω 저항(8개)
1. 7세그먼트 실습하기(2)
◉ 실습 준비물
1. 7세그먼트 실습하기(3)
1 2
3
1
2
3
◉ 회로도 구성(1)
•출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com
1. 7세그먼트 실습하기(4)
◉ 회로도 구성(2)
1
1. 7세그먼트 실습하기(5)
◉ 회로도 구성(3)
1 2
1. 7세그먼트 실습하기(6)
◉ 회로도 구성(4)
2
1 3
1. 7세그먼트 실습하기(7)
◉ 회로도 구성(5)
2 1
3 4
1. 7세그먼트 실습하기(8)
◉ 회로도 구성(6)
1
2
5V전원공급 OUTPUT
•출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com
1. 7세그먼트 실습하기(9)
◉ 실습 소스(1)
int pin_fnd[] = {3, 4, 5, 6, 7, 8, 9, 10};
//pin_fnd[0] a //pin_fnd[1] b //pin_fnd[2] c //pin_fnd[3] d //pin_fnd[4] e //pin_fnd[5] f //pin_fnd[6] g //pin_fnd[7] .
1. 7세그먼트 실습하기(10)
◉ 실습 소스(2)
void setup() {
for(int i= 0; i<8; i++)
pinMode(pin_fnd[i], OUTPUT);
digitalWrite(pin_fnd[0], 0);
digitalWrite(pin_fnd[1], 1);
digitalWrite(pin_fnd[2], 0);
digitalWrite(pin_fnd[3], 0);
digitalWrite(pin_fnd[4], 1);
digitalWrite(pin_fnd[5], 0);
digitalWrite(pin_fnd[6], 0);
digitalWrite(pin_fnd[7], 0);
}
void loop() { }
이미지
준비물 브레드 보드(1개) 아두이노 보드(1개) Pushbutton(2개)
이미지
준비물 10kΩ 저항(2개) 1kΩ 저항(2개) RED LED(2개)
2. 버튼을 사용해 LED 제어하기(1)
◉ 실습 준비물
2. 버튼을 사용해 LED 제어하기(2)
◉ 회로도 구성(1)
• 풀다운 저항[Pulldown] : 버튼의 한쪽에 10kΩ의 저항을 연결하여 버튼을 누르지 않을 경우에 LED의 상태를 항상 LOW로 유지시킴
•출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com
2. 버튼을 사용해 LED 제어하기(3)
◉ 회로도 구성(2)
1
2 3
4
5
2. 버튼을 사용해 LED 제어하기(4)
◉ 회로도 구성(3)
5V전원공급 접지 INPUT OUTPUT
•출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com
2. 버튼을 사용해 LED 제어하기(3)
◉ 실습 소스(1)
int led1= 6;
int led2= 7;
int key1 = 12;
int key2 = 13;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(key1, INPUT);
pinMode(key2, INPUT);
}
2. 버튼을 사용해 LED 제어하기(4)
◉ 실습 소스(2)
• 디지트(digit)는 사람의 손가락이나 동물의 발가락을 의미
• 연속적인 물리량을 문자 또는 숫자로 표현
예) 온도, 전압, 전류, 속도, 시간, 유량, 스위치 등
void loop(){
if(digitalRead(key1) == HIGH) digitalWrite(led1, HIGH);
else
digitalWrite(led1, LOW);
if(digitalRead(key2) == HIGH) digitalWrite(led2, HIGH);
else
digitalWrite(led2, LOW);
delay(100);
}
학습하기가 끝났습니다.
다음페이지 버튼을 클릭하여
평가문항을 풀어보세요. 프로그램 실습
※ 자료실에서 프로그램 소스 코드를 다운로드 받으세요.
실습
1. 7세그먼트 실습하기(1)
1. 실습 준비물 : 아두이노 보드(1개), 브레드 보드(1개), 7세그먼트 - 음극형(1개), 220Ω 저항(8개) 2. 아두이노 보드 전압(5v), 7세그먼트 전압(2v), 전류(20mA)
: (5v-2v)-0.02 = 150Ω이 출력됨으로 150Ω 이상의 저항을 사용하면 된다.
◉ 실습 준비물
실습
1. 7세그먼트 실습하기(2)
1. 아두이노 보드의 디지털 핀 3번~10번 핀까지를 배열을 사용하여 선언한다.
2. //는 주석문으로 사용한다.
◉ 실습 소스(1)
실습
1. 7세그먼트 실습하기(3)
3. for문을 사용하여 선언된 배열을 최기화 한다.
4. digitalWrite 명령을 사용하여 디지털 핀을 셋팅한다.
5. 세팅된 7세그먼트는 공통 음극형의 진리표를 사용해야 한다.
6. 공통 음극형인 경우 값이 0이면 LED가 OFF가 되고, 1이면 ON이 된다.
◉ 실습 소스(2)
실습
1. 7세그먼트 실습하기(4)
1. digitaWrite 값을 모두 1을 주게 되면 세그먼트에 8의 숫자가 출력이 된다.
◉ 실행하기
실습
2. 버튼을 사용해 LED 제어하기(1)
1. 실습 준비물 : 아두이노 보드(1개), 브레드 보드(1개), 푸시 버튼(2개), 10kΩ 저항(2개), 1kΩ 저항(2개), LED(2개)
2. 푸시 버튼이 눌러지지 않으면 플로팅 상태가 됨으로 10kΩ 저항을 사용하여 LOW 상태를 유지한다.
◉ 실습 준비물
실습
2. 버튼을 사용해 LED 제어하기(2)
1. 팅커캐드 홈페이지에 접속하여 구성요소 모두를 설정한다.
2. 아두이노 보드, 브레드 보드를 설정하고, 푸시 버튼, LED를 브레드 보드에 탑재한다.
3. 푸시 버튼의 저항은 10kΩ, LED에는 1kΩ 저항을 탑재한다.
◉ 회로도 구성
실습
2. 버튼을 사용해 LED 제어하기(3)
1. 아두이노 보드 디지털 핀 6번, 7번, 12번, 13번 핀을 선언한다.
2. void setup 함수에서 6번, 7번 핀을 OUTPUT 핀으로 설정한다.
3. 12번, 13번 핀을 INPUT 핀으로 설정한다.
◉ 실습 소스(1)
실습
2. 버튼을 사용해 LED 제어하기(4)
4. loop 함수에서 digitalRead(key1) == HIGH는 key1이 눌러졌는지를 체크하여 lel1을 ON 시킨다.
5. digitalRead(key2) == HIGH는 key2이 눌러졌는지를 체크하여 lel2를 ON 시킨다.
◉ 실습 소스(2)
실습
2. 버튼을 사용해 LED 제어하기(4)
1. 각 버튼의 작동에 따라서 LED의 불이 켜진다.
◉ 실행하기
실습점검
실습 재미있게 해보셨나요?
‘7세그먼트와 LED 제어하기’에 대해 실습한 내용과
자신의 실습 결과물을 비교해 보세요.
1. 실습에 필요한 보드와 부품이 준비가 되었나요?
2. 7세그먼트를 제어할 수 있나요?
3. 버튼을 사용해 LED를 제어할 수 있나요?
예 예 예
아니오
아니오
아니오
실습점검
1. 7세그먼트 실습하기
- 7세그먼트의 공통 양극형인지 음극형인지를 확인
- 배열을 사용하여 변수와 아두이노 보드 디지털 핀을 설정 - digitaWrite를 사용하여 7세그먼트에 숫자를 출력
2. 버튼을 사용해 LED 제어하기
- 푸시 버튼, LED, 저항 등을 확인
- 아두이노 보드 디지털 핀의 OUTPUT과 INPUT 핀 설정
- digitalRead 함수의 역할 : 푸시 버튼에서 들어오는 값을 Read함
◉ 교수자 실습 Tip
다음시간에는…
에 대해 학습해 보겠습니다.
참고문헌