家で過去買った部品物色してたら、PCからもぎ取ったブザー発見(KC-1206)
型番調べると、パッシブブザーらしいのでラズパイのPWMで音階奏でてみました。
回路?良く分からんのと、ソケットがPWM1(33PIN)、GND(39PIN)で丁度いいので
そのままぶっ刺しました。
色々難ありですが、目で見るより音聞いた方が効果わかりやすいですね。
ソースはこちら。
# import RPi.GPIO as GPIO import time C4 = 261.626 D4 = 293.665 E4 = 329.628 F4 = 349.228 G4 = 391.995 A4 = 440.000 B4 = 493.883 C5 = C4 * 2 D5 = D4 * 2 TEMPO = 70 T4 = 60 / TEMPO T2 = T4 * 2 T8 = T4 / 2 T6 = T4 + T8 melody = [ D4,C4,D4,E4, G4,E4,D4, E4,G4,A4,G4,A4, D5,B4,A4,G4, E4,G4,A4, D5,C5,D5, E4,G4,A4,G4, E4,G4,D4, A4,C5,D5, C5,D5,A4,G4, A4,G4,E4,D4, ] tempo = [ T4,T4,T4,T4, T4,T4,T2, T4,T4,T4,T8,T8, T4,T4,T4,T4, T4,T4,T2, T4,T4,T2, T4,T4,T4,T4, T6,T8,T2, T4,T4,T2, T4,T4,T4,T4, T4,T8,T8,T2, ] print("start") PWM_PIN = 33 # PWM0 12 or 32 / PWM1 33 GPIO.setmode(GPIO.BOARD) GPIO.setup (PWM_PIN,GPIO.OUT) GPIO.output(PWM_PIN,GPIO.LOW) pwm = GPIO.PWM(PWM_PIN,melody[0]) pwm.start(50) #pwm.ChangeDutyCycle(50) for i in range(len(melody)): pwm.ChangeFrequency(melody[i]) time.sleep(tempo[i]) pwm.stop() GPIO.cleanup() print("end") #EOF
コメント