• 검색 결과가 없습니다.

3 주차 2 강 . 7 세그먼트와 LED 제어 IoT 의이해

N/A
N/A
Protected

Academic year: 2022

Share "3 주차 2 강 . 7 세그먼트와 LED 제어 IoT 의이해"

Copied!
31
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

IoT의 이해

전병현 교수

3주차 2강. 7세그먼트와 LED 제어

(2)

학습내용

학습목표

1. 7세그먼트 실습하기

2. 버튼을 사용해 LED 제어하기

1. 7세그먼트를 제어할 수 있다.

2. 버튼을 사용해 LED를 제어할 수 있다.

(3)

1. 7세그먼트 실습하기(1)

실습 준비물 설명

회로도 구성 및 프로그램 설명

실 습

실습 진행 순서

(4)

이미지

준비물 브레드 보드(1개) 아두이노 보드(1개)

이미지

준비물 FND(7세그먼트) -

MT03911AR(1개) 220Ω 저항(8개)

1. 7세그먼트 실습하기(2)

실습 준비물

(5)

1. 7세그먼트 실습하기(3)

1 2

3

1

2

3

회로도 구성(1)

출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com

(6)

1. 7세그먼트 실습하기(4)

회로도 구성(2)

1

(7)

1. 7세그먼트 실습하기(5)

회로도 구성(3)

1 2

(8)

1. 7세그먼트 실습하기(6)

회로도 구성(4)

2

1 3

(9)

1. 7세그먼트 실습하기(7)

회로도 구성(5)

2 1

3 4

(10)

1. 7세그먼트 실습하기(8)

회로도 구성(6)

1

2

5V전원공급 OUTPUT

출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com

(11)

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] .

(12)

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() { }

(13)

이미지

준비물 브레드 보드(1개) 아두이노 보드(1개) Pushbutton(2개)

이미지

준비물 10kΩ 저항(2개) 1kΩ 저항(2개) RED LED(2개)

2. 버튼을 사용해 LED 제어하기(1)

실습 준비물

(14)

2. 버튼을 사용해 LED 제어하기(2)

회로도 구성(1)

풀다운 저항[Pulldown] : 버튼의 한쪽에 10kΩ의 저항을 연결하여 버튼을 누르지 않을 경우에 LED의 상태를 항상 LOW로 유지시킴

출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com

(15)

2. 버튼을 사용해 LED 제어하기(3)

회로도 구성(2)

1

2 3

4

5

(16)

2. 버튼을 사용해 LED 제어하기(4)

회로도 구성(3)

5V전원공급 접지 INPUT OUTPUT

출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com

(17)

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);

}

(18)

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);

}

(19)

학습하기가 끝났습니다.

다음페이지 버튼을 클릭하여

평가문항을 풀어보세요. 프로그램 실습

※ 자료실에서 프로그램 소스 코드를 다운로드 받으세요.

(20)

실습

1. 7세그먼트 실습하기(1)

1. 실습 준비물 : 아두이노 보드(1개), 브레드 보드(1개), 7세그먼트 - 음극형(1개), 220Ω 저항(8개) 2. 아두이노 보드 전압(5v), 7세그먼트 전압(2v), 전류(20mA)

: (5v-2v)-0.02 = 150Ω이 출력됨으로 150Ω 이상의 저항을 사용하면 된다.

실습 준비물

(21)

실습

1. 7세그먼트 실습하기(2)

1. 아두이노 보드의 디지털 핀 3번~10번 핀까지를 배열을 사용하여 선언한다.

2. //는 주석문으로 사용한다.

실습 소스(1)

(22)

실습

1. 7세그먼트 실습하기(3)

3. for문을 사용하여 선언된 배열을 최기화 한다.

4. digitalWrite 명령을 사용하여 디지털 핀을 셋팅한다.

5. 세팅된 7세그먼트는 공통 음극형의 진리표를 사용해야 한다.

6. 공통 음극형인 경우 값이 0이면 LED가 OFF가 되고, 1이면 ON이 된다.

실습 소스(2)

(23)

실습

1. 7세그먼트 실습하기(4)

1. digitaWrite 값을 모두 1을 주게 되면 세그먼트에 8의 숫자가 출력이 된다.

실행하기

(24)

실습

2. 버튼을 사용해 LED 제어하기(1)

1. 실습 준비물 : 아두이노 보드(1개), 브레드 보드(1개), 푸시 버튼(2개), 10kΩ 저항(2개), 1kΩ 저항(2개), LED(2개)

2. 푸시 버튼이 눌러지지 않으면 플로팅 상태가 됨으로 10kΩ 저항을 사용하여 LOW 상태를 유지한다.

실습 준비물

(25)

실습

2. 버튼을 사용해 LED 제어하기(2)

1. 팅커캐드 홈페이지에 접속하여 구성요소 모두를 설정한다.

2. 아두이노 보드, 브레드 보드를 설정하고, 푸시 버튼, LED를 브레드 보드에 탑재한다.

3. 푸시 버튼의 저항은 10kΩ, LED에는 1kΩ 저항을 탑재한다.

회로도 구성

(26)

실습

2. 버튼을 사용해 LED 제어하기(3)

1. 아두이노 보드 디지털 핀 6번, 7번, 12번, 13번 핀을 선언한다.

2. void setup 함수에서 6번, 7번 핀을 OUTPUT 핀으로 설정한다.

3. 12번, 13번 핀을 INPUT 핀으로 설정한다.

실습 소스(1)

(27)

실습

2. 버튼을 사용해 LED 제어하기(4)

4. loop 함수에서 digitalRead(key1) == HIGH는 key1이 눌러졌는지를 체크하여 lel1을 ON 시킨다.

5. digitalRead(key2) == HIGH는 key2이 눌러졌는지를 체크하여 lel2를 ON 시킨다.

실습 소스(2)

(28)

실습

2. 버튼을 사용해 LED 제어하기(4)

1. 각 버튼의 작동에 따라서 LED의 불이 켜진다.

실행하기

(29)

실습점검

실습 재미있게 해보셨나요?

‘7세그먼트와 LED 제어하기’에 대해 실습한 내용과

자신의 실습 결과물을 비교해 보세요.

1. 실습에 필요한 보드와 부품이 준비가 되었나요?

2. 7세그먼트를 제어할 수 있나요?

3. 버튼을 사용해 LED를 제어할 수 있나요?

아니오

아니오

아니오

(30)

실습점검

1. 7세그먼트 실습하기

- 7세그먼트의 공통 양극형인지 음극형인지를 확인

- 배열을 사용하여 변수와 아두이노 보드 디지털 핀을 설정 - digitaWrite를 사용하여 7세그먼트에 숫자를 출력

2. 버튼을 사용해 LED 제어하기

- 푸시 버튼, LED, 저항 등을 확인

- 아두이노 보드 디지털 핀의 OUTPUT과 INPUT 핀 설정

- digitalRead 함수의 역할 : 푸시 버튼에서 들어오는 값을 Read함

교수자 실습 Tip

(31)

다음시간에는…

에 대해 학습해 보겠습니다.

참고문헌

3주차. 디지털 입력과 출력

3강. LED와 스피커 제어

• 팅커캐드. http://www.tinkercad.com

• ㈜메카솔루션. http://mechasolution.com

참조

관련 문서

- 문장들의 수행 횟수를 조정, 프로그램의 흐름을 지시하는 데 사용되는 문장 - 처리기에 제어정보를 전달하는 기계어 명령어가 아닌 기호로 된 문장. - 여러 조건들 중 특정한 하나의

※ 자료실에서 프로그램 소스 코드를 다운로드 받으세요.... 실습에 필요한 보드와 준비물이

C언어 변수와 연산자에 대하여 설명할 수 있다.... C언어

블록을 삭제하려면 휴지통에 넣거나 Delete 키를 활용하여