[아두이노 기초] 전체 글 목록

우리는 디지털 입출력방법에 대해 배웠으므로 이번시간에는 부저를 사용하여 소리를 내어보도록 하겠습니다.

그렇다면 부저는 무엇일까요?

부저는 TV, 세탁기, 에어컨 등에서 Alarm음으로 사용되기도 하고 도난 경보기, 디지털 도어 록등에서 사용되는 작은 스피커라고 생각하면 됩니다.


디지털 출력으로 부저 울리기

1초에 한번씩 부저를 켰다 껐다 반복하도록 제작

디지털핀 8번으로 출력을 주어 부저를 동작하게하는 구조입니다.

int buzzer = 8;

void setup()

{

pinMode(buzzer, OUTPUT);

}

 

void loop()

{

digitalWrite(buzzer, HIGH); // Buzzer on

delay(1000);

digitalWrite(buzzer, LOW); // Buzzer off

delay(1000);

}

pinMode로 8번핀을 출력으로 설정하였습니다.

digitalWrite를 사용하여 부저를 on한뒤 1초뒤에 off하는것을 반복합니다.


코드를 업로드한뒤 동작을 확인하여보면 1초에 한번씩 부저가 켜졌다 꺼졌다 하는것을 볼수 있습니다.


실습예제

1. 버튼으로 디지털입력을 받아서 부저를 울리도록 구현

회로구성 - 버튼에 5v연결후 반대쪽을 입력핀으로 연결, 부저는 출력핀에 연결

int buzzer = 8;

int button =9;

void setup()

{

pinMode(buzzer, OUTPUT);

pinMode(button, INPUT);

}

 

void loop()

{

if(digitalRead(button)==HIGH)

digitalWrite(buzzer,HIGH);

else

digitalWrite(buzzer,LOW);

}

2. 버튼으로 디지털입력을 받으면 LED는 켜져있고 부저는 ON/OFF반복 구현 

회로구성 - 버튼에 5v연결후 반대쪽을 입력핀으로 연결, 부저, led는 출력핀에 연결

int led=7;

int buzzer = 8;

int button =9;

int buzzer_count=0;

int buzzer_flag=0;

void setup()

{

pinMode(led, OUTPUT);

pinMode(buzzer, OUTPUT);

pinMode(button, INPUT);

}

 

void loop()

{

if(digitalRead(button)==HIGH)

digitalWrite(led,HIGH);

else

digitalWrite(led,LOW);


if(buzzer_count<200)

{

buzzer_count++;

}

else

{

buzzer_count=0;

if(buzzer_flag==0)

buzzer_flag=1;

else

buzzer_flag=0;

}

if(buzzer_flag)

digitalWrite(buzzer.HIGH);

else

digitalWrite(buzzer,LOW);

}

코드를 꼭 이해하시고 더좋은 방향을 바꾸어 보시길 바랍니다.

다음시간에는 시리얼 통신에 대해 알아보도록 하겠습니다.

+ Recent posts