본문 바로가기
장인으로의 여정/라즈베리파이

라즈베리파이 Buzzer(부저)편

by 유기농프로그래밍 2019. 10. 7.
반응형

이번 목표는 부저(Buzzer)를 이용하여 다양한 소리를 내는 것이다.

 

[준비물]

(1) 라즈베리파이 3 Model B+

(요즘 나오는 최신거 쓰면 된다)

(2) 피에조부조

(3) 점퍼 케이블

 

 

[설치]

라즈베리파이 OS가 아래와 같이 설치되어 있다는 가정하에 진행한다.

 

라즈베리파이 버전

Linux raspberrypi 4.19.57-v7+ #1244 SMP Thu Jul 4 18:45:25 BST 2019 armv7l GNU/Linux

 

개발 라이브러리를 설치한다.

sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio

[연결]

라즈베리파이와 피에조부저를 점퍼 케이블로 연결해야한다.

아래는 라즈베리파이의 핀 내용이다.

피에조부저는 전원과 GPIO가 필요하다.

3.3V GPIO12를 연결한다.

 

+ - 확인

출처 : www.theengineeringprojects.com

 

Sample Code

import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)
gpio_pin = 12
scale = [ 261, 294, 329, 349, 392, 440, 493, 523 ]
GPIO.setup(gpio_pin, GPIO.OUT)
list = [4, 4, 5, 5, 4, 4, 2, 4, 4, 2, 2, 1]
 
try:
    p = GPIO.PWM(gpio_pin, 100)
    p.start(100)
    p.ChangeDutyCycle(90)
 
    for i in range(12):
        p.ChangeFrequency(scale[list[i]])
        if i == 6:
            time.sleep(1)
        else :
            time.sleep(0.5)
 
    p.stop()
finally:
    GPIO.cleanup()

[설명]

1. gpio12번에 연결을 했으니 gpio_pin 변수에 12를 넣고 setup을 한다.

2. scale은 도레미파솔라시도에 대한 주파수 값이다.(아래 표를 참고, 반올림함)

3. 솔솔라라솔솔미솔솔미미레를 list에 넣는다.

4. for loop을 돌면서 주파수 값을 변경한다.

 

  • 주파수는 아래 표를 참고(출처 : 구글 이미지)

출처/인용

www.theengineeringprojects.com

반응형

댓글