라즈베리파이 부저( 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와 지식 제공자(기업포함) 이외에는 상업화 용도로 사용할 수 없습니다. 영리 목적 이외의 사용 시 출처를 밝혀야 합니다.