임베디드시스템개론 -...

23
임베디드시스템개론 : Arduino 활용 Lecture #2: LED on/off and blink 2012. 3. 9 by 김영주

Upload: others

Post on 29-Dec-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

  • 임베디드시스템개론: Arduino 활용

    Lecture #2: LED on/off and blink

    2012. 3. 9 by 김 영 주

  • 강의 목차

    전자회로 기초“Hello, World!” in Arduino

    LED 켜기pinMode() / digitalWrite()

    시간지연 : delay()LED 깜박이기

    디지털 입력 : digitalRead()버튼 입력으로 LED on/off

    2

  • 전자회로 기초 (1)전자회로(Electronic Circuit)

    전원과 일련의 전자 소자가 연결되어 하나의 전기흐름경로를 구성한 것전자소자는 전원에서 공급되는 전기 에너지를 이용하여 정해진 동작을 수행하며, 이러한 동작들의 조합으로 원하는 기능을 수행

    3

    heart pumps, blood flows voltage pushes, current flows

  • 전자회로 기초 (2)전압(Voltage)

    전자회로에서 두 지점간의 “전위차(electric potential difference)”기본단위: V(Volt)예: 1.5V AA 배터리

    전류(Current)전자회로 내에서의 전자의 흐름 전자소자의 동작 에너지전류가 흐른다 회로의 두 지점간에 전압 차이가 있다

    4

    물은 높은 곳에서 낮은곳으로 흐른다

    전류는 전압이 높은 곳에서 낮은 곳으로 흐른다

  • 전자회로 기초 (3)전자 회로의 구성 요소

    5

  • 전자회로 기초 (4)전자 회로의 구성 요소

    6

  • 전자회로 기초 (5)간단한 전자회로 구성: LED flashlight

    7

    회로 부품: 회로:회로도:

    5V330

    저항은 왜필요한가?

  • “Hello, World!” in Arduino (1)실습 목표

    LED 켜기 프로그램 실습전자부품 LED 및 저항 사용법 이해아두이노 프로그램의 기본 구조 이해아두이노 보드에서의 디지털 출력 함수 활용

    pinMode() / digitalWrite()

    8

  • “Hello, World!” in Arduino (2)사전 지식

    Arduino Mega-ADK 보드에서는 40개의 디지털 입출력 핀(pin)을 지원하나의 디지털 입출력 핀은 입력 및 출력 동작을 지원

    사용 전에 핀의 동작 모드를 설정하여야 함

    디지털 입출력 핀의 전기적 특성출력 모드 : 4.75~5.25V 전압, 최대 40mA 전류 출력입력 모드 : 최대 40mA 전류의 전기 신호 입력 가능

    LED : 규격-3mm, 동작 전기신호-2~2.5V, 5~20mA저항(Register) : LED에 과도한 전압이 걸리지 않도록 전류를 흐름을제한, 용량-330 Ω

    9

  • “Hello, World!” in Arduino (3)회로도 및 회로 구성

    10

    회로도: 연결도: 구성 회로:

  • “Hello, World!” in Arduino (4)아두이노 프로그램

    11

    #define LED_PIN 9

    void setup(){

    pinMode(LED_PIN, OUTPUT);}

    void loop(){

    digitalWrite(LED_PIN, HIGH);}

  • “Hello, World!” in Arduino (5)프로그램 설명

    아두이노 스케치(sketch) 프로그램은 기본적으로 다음의 두 개의함수를 갖는다

    void setup() : 프로그램 초기화 작업을 수행void loop() : 프로그램 주 동작을 수행하는 함수로서 무한반복으로 호출되어 실행됨

    아두이노 라이브러리 함수void pinMode(int pin, int mode) : 디지털 입출력 핀의 동작 모드를 설정, mode 파라미터 값으로 INPUT/OUTPUT 상수를 전달void digitalWrite(int pin, int value) : 디지털 출력 핀에 논리값에 대응하는 전기 신호를 출력, value 파라미터 값으로 HIGH/LOW 상수를 전달

    12

  • “Hello, World!” in Arduino (6)프로그램 다운로드 및 테스트

    프로그램을 컴파일하여 다운로드리셋 후에 아두이노의 동작 확인

    아두이노 보드는 프로그램 다운로드 후에 자동 리셋됨.

    13

  • LED Blink (1)실습 목표

    LED Blink 프로그램 실습LED를 주기적으로 on/off

    시간지연함수 delay() 활용

    사전 지식“Hello, World!” 실습 예제를 사용delay() 함수는 msec 단위로 시간 지연함(busy waiting)

    14

  • LED Blink (2)아두이노 프로그램

    15

    #define LED_PIN 9#define BLINK_INTERVAL 1000 // 1000 msec = 1sec

    void setup(){

    pinMode(LED_PIN, OUTPUT);}

    void loop(){

    digitalWrite(LED_PIN, HIGH);delay BLINK_INTERVAL);

    digitalWrite(LED_PIN, LOW);delay(BLINK_INTERVAL);

    }

  • LED Blink (3)프로그램 다운로드 및 테스트

    프로그램을 컴파일하여 다운로드리셋 후에 아두이노의 동작 확인

    실험LED가 깜박이는 간격을 바꾸어 보아라.

    16

  • LED Fading (1)실습 목표

    LED fading 프로그램 실습LED의 출력 밝기 주기적으로 변화함.

    Arduino에서의 PWM 출력 사용법을 숙지

    17

  • LED Fading (2)사전 지식

    “Hello, World!” 실습 예제를 사용PWM(Pulse Width Modulation)

    디지털 컴퓨터는 아날로그 전기신호를 출력할 수 없다

    단지 디지털 신호(0V or 5V)만 출력

    디지털 출력 핀을 통해 출력 전압을 0V~5V 사이로 출력하는 방법출력 전기 신호의 펄스 폭을 조정 일정 시간 동안의 전압을 조정

    아두이노는 16-bit timer를 사용하여 PWM을 구현

    고정된 PWM 출력핀을 가짐

    analogWrite(pin, value) 함수PWM 출력 함수

    value : 0~255 사이의 값

    pin 변수가 지정하는 출력핀으로 5V*(value/255) 크기의 전압을 출력

    18

  • LED Fading (3)사전 지식

    PWM(Pulse Width Modulation)

    19

    PWM 속성(3가지) :

  • LED Fading (4)회로도 및 회로 구성

    20

  • LED Fading (5)아두이노 프로그램

    21

    #define LED_PIN 9

    int ledSignal;int step;

    void setup(){

    ledSignal = 0;step = 5;

    }

    void loop(){

    analogWrite(LED_PIN, ledSignal);

    ledSignal += step;if ((ledSignal >= 255) || (ledSignal < 0))

    step *= -1;

    delay(100);}

  • LED Fading (6)PWM 응용

    PWM 출력은 다양한 영역에서 적용됨센서의 입력 크기에 비례한 신호 출력이 필요한 응용모터 제어, 속도 제어톤(Tone) 출력 등

    22

  • LED 관련RGB, all-in-one LED

    High-flex LED

    23

    임베디드시스템개론�: Arduino 활용�강의 목차전자회로 기초 (1)전자회로 기초 (2)전자회로 기초 (3)전자회로 기초 (4)전자회로 기초 (5)“Hello, World!” in Arduino (1)“Hello, World!” in Arduino (2)“Hello, World!” in Arduino (3)“Hello, World!” in Arduino (4)“Hello, World!” in Arduino (5)“Hello, World!” in Arduino (6)LED Blink (1)LED Blink (2)LED Blink (3)LED Fading (1)LED Fading (2)LED Fading (3)LED Fading (4)LED Fading (5)LED Fading (6)LED 관련