失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 树莓派 python蜂鸣器播放音乐

树莓派 python蜂鸣器播放音乐

时间:2020-10-22 23:45:03

相关推荐

树莓派 python蜂鸣器播放音乐

python(树莓派蜂鸣器程序注释)

import RPi.GPIO as GPIOimport timeBuzzer = 11 #蜂鸣器接在第11管脚上# 定义低中高频率CL = [0, 131, 147, 165, 175, 196, 211, 248]# Frequency of Low C notesCM = [0, 262, 294, 330, 350, 393, 441, 495]# Frequency of Middle C notesCH = [0, 525, 589, 661, 700, 786, 882, 990]# Frequency of High C notes# 第一首歌谱子频率song_1 = [CM[3], CM[5], CM[6], CM[3], CM[2], CM[3], CM[5], CM[6], # Notes of song1CH[1], CM[6], CM[5], CM[1], CM[3], CM[2], CM[2], CM[3], CM[5], CM[2], CM[3], CM[3], CL[6], CL[6], CL[6], CM[1],CM[2], CM[3], CM[2], CL[7], CL[6], CM[1], CL[5]]# 节奏beat_1 = [1, 1, 3, 1, 1, 3, 1, 1, # Beats of song 1, 1 means 1/8 beats1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3]song_2 = [CM[1], CM[1], CM[1], CL[5], CM[3], CM[3], CM[3], CM[1], # Notes of song2CM[1], CM[3], CM[5], CM[5], CM[4], CM[3], CM[2], CM[2], CM[3], CM[4], CM[4], CM[3], CM[2], CM[3], CM[1], CM[1], CM[3], CM[2], CL[5], CL[7], CM[2], CM[1]]beat_2 = [1, 1, 2, 2, 1, 1, 2, 2, # Beats of song 2, 1 means 1/8 beats1, 1, 2, 2, 1, 1, 3, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 3 ]# 一些初始化操作def setup():GPIO.setwarnings(False) # 先关掉警告,因为操作io口会有警告GPIO.setmode(GPIO.BOARD)# Numbers GPIOs by physical location 树莓派有很多编码模式,这里采用GPIO编码模式GPIO.setup(Buzzer, GPIO.OUT)# Set pins' mode is output Buzzer = 11 #蜂鸣器接在第11管脚上global Buzz# Assign a global variable to replace GPIO.PWMBuzz = GPIO.PWM(Buzzer, 440)# 440 is initial frequency.440HZ初试频率Buzz.start(50)# Start Buzzer pin with 50% duty ration def loop():while True:print '\n Playing song 1...'for i in range(1, len(song_1)):# Play song 1Buzz.ChangeFrequency(song_1[i])# Change the frequency along the song notetime.sleep(beat_1[i] * 0.5)# delay a note for beat * 0.5s time.sleep(1)# Wait a second for next song.print '\n\n Playing song 2...'for i in range(1, len(song_2)):# Play song 1Buzz.ChangeFrequency(song_2[i]) # Change the frequency along the song notetime.sleep(beat_2[i] * 0.5)# delay a note for beat * 0.5s# 释放资源def destory():Buzz.stop()# Stop the buzzerGPIO.output(Buzzer, 1)# Set Buzzer pin to HighGPIO.cleanup()# Release resourceif __name__ == '__main__':# Program start from heresetup()try:loop()except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.destory()

如果觉得《树莓派 python蜂鸣器播放音乐》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。