프로젝트 대표사진

라즈베리파이 부저( buzzer ) 제어

라즈베리파이 PWM을 이용해 도, 레, 미, 파, 솔, 라, 시, 도 음계를 부저( buzzer )를 통해 출력한다.
라즈베리파이 부저( buzzer ) 제어 작성자 : 네오즈

1. BUZZER 테스트 회로 구성

Buzzer : GPIO 1번 연결

2. BUZZER 테스트 Python 코드

코드 작성 및 실행 방법은 " 라즈베리파이 GPIO 포트 ( LED, 버튼 ) 제어 " 가이드 참조

 

PWM을 이용해 “도, 레, 미, 파, 솔, 라, 시, 도” 음계를 buzzer를 통해 출력하는 코드.

 

import RPi.GPIO as GPIO                    # RPi.GPIO에 정의된 기능을 GPIO라는 명칭으로 사용
import time                                # time 모듈

GPIO.setmode(GPIO.BCM)                     # GPIO 이름은 BCM 명칭 사용

buzz = 1                                   # 핀번호 1 대신 buzz 명칭사용을 위해 치환
GPIO.setup(buzz, GPIO.OUT)                 # GPIO buzz핀(1)을 출력으로 설정

freq = [523,587,659,698,784,880,988,1047]  # freq 리스트 ( 음계 주파수 리스트 )

def makeTone(freq):                        # 매개변수로freq를 받는 makeTone함수 정의 시작
	scale = GPIO.PWM(buzz, freq)           # buzz핀으로 freq(Hz) PWM파형을 생성하는 scale 정의
	scale.start(10)                        #      scale 시작
	time.sleep(0.5)                        #      0.5초 대기
	scale.stop()                           #      scale 정지 ( makeTone함수 정의 끝 )

try:

	for x in freq:                         #   freq 리스트 만큼 반복 시작 
		makeTone(x)                        #   makeTone 함수에 freq 
	GPIO.cleanup()                         #   GPIO 관련설정 Clear

except KeyboardInterrupt:                  # Ctrl-C 입력 시 
	GPIO.cleanup()                         # GPIO 관련설정 Clear 

 

※ e4ds make에 등록된 자료는 e4ds와 지식 제공자(기업포함) 이외에는 상업화 용도로 사용할 수 없습니다. 영리 목적 이외의 사용 시 출처를 밝혀야 합니다.