커뮤니티
- 제 목 라즈베리파이 부저( buzzer ) 제어
- 작성자 네오즈 조회 : 9,060 좋아요 : 0 댓글 : 0
- 작성일 2019-09-27 오후 2:18:54
-
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