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

네오즈 · 2019-09-27 · 0

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 
0
댓글 0
첫 댓글을 남겨보세요.