이번에는 부저(buzzer)를 이용한 실험을 해 보겠다. 부저는 소리를 내는 부품으로서 소리 파형을 만들어서 인가하여야 하는 것과 그냥 전압을 걸면 소리가 나는 두 가지 종류가 있으나 실험의 편의상 후자를 택해서 진행한다.
[그림 1] 부저의 외형
부저는 극성이 있으며 조금 긴 다리가 (+)극이고 짧은 쪽은 (-)이다. 극성에 맞게 전압을 걸면 삐~~ 하는 소리가 발생한다. 아두이노 우노의 11번 핀에 부저의 (+)를 꽂으면 (-)핀은 GND에 들어맞게 되어 있다.
[그리 2] 아두이노의 11번 핀에 부저의 (+)를, GND핀에 (-)를 연결했다.
이렇게 연결했다면 부저를 울리는 것은 LED를 동작시키는 것과 똑같다. 단순히 1초 간격으로 삑삑 거리는 프로그램은 다음과 같이 하면 된다.
#define BUZ 11
void setup() {pinMode(BUZ, OUTPUT);}void loop() {digitalWrite(BUZ, HIGH); // 부저가 울리기 시작한다.delay(50);digitalWrite(BUZ, LOW); // 부저가 멈춘다delay(950);} |
이 예제에서는 부저가 울리는 시간을 50ms로 설정했으므로 짧은 시간 동안 ‘삑’하는 소리가 날 것이다. loop()함수 안에 있으므로 이것이 1초 간격으로 반복된다.
두 번째 예제로 13번 핀에 물려 있는 LED와 조합해서 동작하도록 해보자. LED는 0.5초마다 한 번씩 켜지고 부저는 1초 마다 한 번씩 울리게 해서 마치 타이머처럼 동작하도록 하는 예제이다.
#define LED 13
#define BUZ 11
void setup() {pinMode(LED, OUTPUT);pinMode(BUZ, OUTPUT);}void loop() {digitalWrite(LED, HIGH);digitalWrite(BUZ, HIGH);delay(50);digitalWrite(BUZ, LOW);delay(200);digitalWrite(LED, LOW);delay(250);digitalWrite(LED, HIGH);delay(250);digitalWrite(LED, LOW);delay(250);} |
댓글 없음:
댓글 쓰기