2021정보영재>피지컬컴퓨팅1주차

디지털 출력

아두이노 핀맵

아두이노 입출력(I/O) 포트(port)

아두이노 디지털 출력 digitalWrite( )

LED(발광다이오드)란?

  • 방향(+, -)이 있는 전자 부품

  • 순방향으로 전압을 가하면 빛이나는 반도체

  • LED: 빛(Light)을 내는(Emitting) 다이오드(Diode)

LED 극성 구분하기

순방향

극성 구분하는 법

LED 보호 저항

LED가 손상되지 않게 보호하려면

  • LED는 보통 2V 내외에서 동작한다.

  • 그 이상의 전압을 가하면 타버린다.

  • 아두이노의 출력은 5V이다.

  • 저항이 3V를 감당하고, LED에 2V정도 공급하려면?

  • 200~300옴 정도의 저항을 직렬로 달아준다.

Blink 예제로 LED 제어

Blink 예제 소스코드

// 설정함수: 한번만 실행

void setup() {

// 내장LED(LED_BUILTIN)와 연결된 디지털핀을 출력으로 설정

pinMode(LED_BUILTIN, OUTPUT);

}


// 루프함수: 영원히 계속 실행

void loop() {

digitalWrite(LED_BUILTIN, HIGH); // LED 켜기(HIGH는 5V 전압)

delay(1000); // 1초(1000밀리초) 동안 기다림

digitalWrite(LED_BUILTIN, LOW); // LED 끄기(LOW는 0V 전압)

delay(1000); // 1초(1000밀리초) 동안 기다림

}

아두이노 외부에 LED 연결하기

회로1

회로2

회로3

[질문] 위 세개의 회로는 서로 같은가?

신호등 LED 모듈

세가지 색상의 LED와 각각의 보호저항을 소형 기판에 구현한 모듈

  • 동작전압: 5V

  • GND: GND

  • R : 빨강

  • Y : 노랑

  • G : 초록

[과제] 삼색 신호등 구현

회로 구성

구현 조건

녹색(2초) → 노랑(0.5초) → 빨강(2초)

부저

능동부저, 수동부저 구별하기 [바로가기]

회로도

[과제] 비프음 발생기 구현

  1. 1초에 한번씩 비프음을 발생하는 buzzer() 함수 작성

  2. n회 비프음 발생 beep(n) 작성

소스코드 01buzzer.ino

#define piezoPin 2 // 부저


void setup() {

pinMode(piezoPin, OUTPUT);

}


void loop() {

//buzzer();

beep(3);

delay(1000);

}


// 부저가 1초 간격으로 동작

void buzzer(){

digitalWrite(piezoPin , HIGH);

delay(1000);

digitalWrite(piezoPin , LOW);

delay(1000);

}


// 비프음 n회 발생

void beep(int n) {

for (int i = 0; i < n; i++) {

digitalWrite(piezoPin , HIGH); // 비프 울림

delay(20);

digitalWrite(piezoPin , LOW); // 비프 꺼짐

if(n>1) delay(30);

}

}