아두이노 부저 예제 - adu-ino bujeo yeje

일반적으로 아두이노 키트를 구매하게 되면 능동 부저, 수동 부저는 기본으로 포함되어 있습니다. 보통 수동 부저에는 위 사진처럼 씰이 붙어있습니다. 둘의 차이는 출력할 수 있는 음의 차이입니다. 능동 부저는 한 개 음만 출력 가능한 모듈이고 수동 부저는 Hz를 설정하여 여러 가지 음을 낼 수 있습니다. 

 

1. 보드 구성

수동 부저

부저의 위, 아래를 잘 살펴보면 +, - 표시가 있습니다. +는 아두이노 2번 핀에, -는 GND에 연결해주시면 됩니다.

 

아두이노 보드 구성

 

2. 능동 부저 코드

// 능동 부저 : 한개 음만 출력(On/Off만 가능) int buzzerPin = 2; void setup() { pinMode(buzzerPin, OUTPUT); } void loop() { digitalWrite(buzzerPin, HIGH); delay(1000); digitalWrite(buzzerPin, LOW); delay(1000); }

digitalWrite()를 사용해 전류를 HIGH/LOW로 설정함으로써 On/Off가 가능합니다. 코드는 1초 동안 부저가 켜지고 1초 후에 꺼지는 동작을 반복합니다.

 

3. 수동 부저 코드

// 수동 부저 : 출력하고자 하는 소리 설정 가능 int buzzerPin = 2; void setup() { pinMode(buzzerPin, OUTPUT); } void loop() { tone(buzzerPin, 131); delay(1000); noTone(buzzerPin); delay(1000); tone(buzzerPin, 262); delay(1000); noTone(buzzerPin); delay(1000); }

1초 동안 131Hz의 소리를 내다가 1초 동안 꺼졌다가 1초 동안 262Hz의 소리를 내다가 꺼지는 동작을 반복합니다.

 

능동 / 수동 부저 코드 비교

능동 부저는 digitalWrite()를, 수동 부저는 tone()을 사용하는 것을 제외하고 거의 똑같습니다.

 

4. 실행

능동 부저 테스트 영상입니다.

 

능동 부저 테스트

수동 부저 테스트 영상입니다.

 

수동 부저 테스트

잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.

이 포스팅이 도움이 되었다면 공감 부탁드립니다.

궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다 :D

공유하기

게시글 관리

구독하기하루에 하나 (One a day)

저작자표시 비영리 변경금지

'관리하지않음 > 아두이노' 카테고리의 다른 글

[아두이노] 초음파 센서 사용법  (4)2020.12.30[아두이노] 풍속 측정 센서 키트 사용법  (0)2020.12.28아두이노 프로 미니 with USB to TTL 케이블 (PL2303TA)  (0)2020.12.27[아두이노] 호환 풍속센서 사용법  (2)2020.12.26[아두이노] Octopus 풍속센서 사용법  (0)2020.12.25

피에조 부저는 피에조를 이용하여 소리를 내는 작은 스피커이다. 피에조는 특정 방향으로 압력을 가하면 결정체(수정, 전기석 등)의 표면에서 전기가 발생하는 성질을 이용한 것으로 여기에 얇은 판을 붙여 미세한 떨림으로부터 소리가 나게 된다. 소리가 크지 않다는 단점이 있지만 세밀하게 조작하면 음악도 연주할 수 있다. 피에조 부저는 극성(+, -)가 있다. 부저 윗면에 +라고 써져 있거나 조그만 홈이 파여있는 쪽에 +극을 연결하면 된다.

예제

No

부품명

개수

1

아두이노 우노 R3

1

2

버튼

1

3

피에조 부저

1

4

저항 1k 옴

2

5

점퍼 선

5

브레드 보드 레이아웃

센서 연결

부저

+

7핀

-

GMD

버튼

8핀

소프트웨어 Coding

int buzzer = 7; int button = 6; int btnState = 0; void setup() { pinMode(buzzer, OUTPUT); pinMode(button, INPUT); } void loop() { btnState = digitalRead(button); if(btnState == 1) { digitalWrite(buzzer, HIGH); } else{ digitalWrite(buzzer, LOW); } delay(10); }

피에조 부저(Piezo buzzer)


피에조 부저는 피에조를 이용하여 소리를 내는 작은 스피커이다. 피에조는 특정 방향으로 압력을 가하면 결정체(수정, 전기석 등)의 표면에서 전기가 발생하는 성질을 이용한 것으로 여기에 얇은 판을 붙여 미세한 떨림으로부터 소리가 나게 된다. 소리가 크지 않다는 단점이 있지만 세밀하게 조작하면 음악도 연주할 수 있다. 

피에조 부저는 극성(+, -)가 있다. 부저 윗면에 +라고 써져 있거나 조그만 홈이 파여있는 쪽에 +극을 연결하면 된다.


피에조 부저 옥타브별 음계의 주파수

소리는 공기의 떨림으로 표현하는데 각 음계마다 고유의 떨림 주파수를 가지고 있다. 예를 들어 1옥타브 도의 경우 32.7032라는 고유 진동수를 가지고 있어 피에조 부저를 1초에 대략 32번정도 진동시키면 1옥타브 도의 음을 낼 수 있다.

<이미지 출처 : google image> 

소스 코드를 작성할 때 위의 표를 참고하면 원하는 연주를 할 수있다.


실습 내용

피에조 부저를 이용하여, 도레미파솔라시도를 연주해 보자.


준비물

아두이노, 브레드보드, 점퍼선 2개, 피에조 부저 or 스피커


회로도




소스 코드

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

int piezo = 7;

 

void setup() {

  pinMode(piezo, OUTPUT);

  

  tone(piezo, 523); // 5옥타브 도

  delay(1000);

  tone(piezo, 587); // 레

  delay(1000);

  tone(piezo, 659); // 미

  delay(1000);

  tone(piezo, 698); // 파 

  delay(1000);

  tone(piezo, 784); // 솔

  delay(1000);

  tone(piezo, 880); // 라

  delay(1000);

  tone(piezo, 988); // 시

  delay(1000);

  tone(piezo, 1046); // 6옥타브 도

  delay(1000);

  noTone(piezo);

}

 

void loop() {

  

}

cs

ex4_piezo.ino


응용(배열 이용)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

int piezo = 7;

int tones[] = { 5235876596987848809881046 };

//각 음계 배열에 담는다

 

void setup() {

  pinMode(piezo, OUTPUT);

  for(int i=0; i < 8; i++)  //for문을 이용하여 i값을 증가시켜

  {                         //도레미파솔라시도를 출력한다.

    tone(piezo, tones[i]);   

    delay(1000);

  }

  noTone(piezo);

}

 

void loop() {

  

}

Colored by Color Scripter

cs

ex4_2_piezo.ino


결과 영상


공유하기

게시글 관리

구독하기코딩런

저작자표시 비영리 변경금지

  • 카카오스토리
  • 트위터
  • 페이스북

'아두이노 > 기초 예제' 카테고리의 다른 글

아두이노 예제 7. 초음파센서로 거리 측정  (15)2017.01.13아두이노 예제 6. 7 세그먼트로 숫자 표현하기  (13)2017.01.11아두이노 예제 4. 가변저항으로 led 밝기 조절하기  (7)2017.01.06아두이노 예제 3. RGB LED 제어하기  (8)2017.01.05아두이노 예제 2. 스위치로 led 켜기, 끄기  (7)2017.01.03

Toplist

최신 우편물

태그