基本原理:
蜂鳴器共分有主動式與被動式兩種,主動式蜂鳴器在通電時只會有單一蜂鳴音。與主動式蜂鳴器不一樣的地方,被動式蜂鳴器在通電時,只會使蜂鳴器內的薄膜產生位移,整個發聲的原理,回到聲音的本質,是透過振動產生。因此透過恰當的控制,被動式蜂鳴器是能唱出有旋律的音樂。
接線:
+ | GPIO#2 |
- | GND |
Python程式:
主動式蜂鳴器import RPi.GPIO as GPIO
import time
PIN = 2
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
GPIO.setup(PIN, GPIO.OUT)
GPIO.output(PIN, GPIO.LOW)
GPIO.output(PIN, GPIO.HIGH)
time.sleep(1)
GPIO.output(PIN, GPIO.LOW)
import RPi.GPIO as GPIO
import time
PIN = 2
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
GPIO.setup(PIN, GPIO.OUT)
def buzz(freq, leng):
delayValue = 0.5/freq
cycle = freq*leng/1000
for i in range(cycle):
GPIO.output(PIN, GPIO.HIGH)
time.sleep(delayValue)
GPIO.output(PIN, GPIO.LOW)
time.sleep(delayValue)
tone = [262, 294, 330, 349, 392, 440, 494]
duration = 1000/12
for t in tone:
buzz(t, duration)
time.sleep(0.01)
討論:
1. 被動式與主動式都有其適合的使用時機。2. 被動式蜂鳴器的頻率與音符的關係,可以嘗試去找到對應關係,但建議只調整到近似的旋律即可,類似過去紅白機品質的音樂。
沒有留言:
張貼留言