커뮤니티

  • 제 목 라즈베리파이 부저( buzzer ) 제어
  • 작성자 네오즈 조회 : 8,079 좋아요 : 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 
    

     

  • #유튜브 #제목