esp8266 microPython 蜂鳴器 音樂
今天, 完成一件事, 就是改寫 8051 C 的蜂鳴器音樂程式, 為 esp8266 mPy , 花了一天的功夫, 終於改寫並實測正常。 這是實作的相片。 esp8266 的板子, 拉出 io12 , 3.3V, GND 這3條線, 焊到 ESV 的板子上, ESV 板上有蜂鳴器驅動電路 PNP, 把 Rb 焊移一下, 不要和 8051 連, 將 io12 連到 Rb 3.3V 就焊到 pnp 的 e 腳, gnd 連到 gnd 一開始時, 我是要用 esp8266 + 74HC595 + ULN2803AG 來驅動蜂鳴器。 用 timer 中斷函式, from time import sleep_us, sleep_ms from machine import Timer def count(): for i in range(5): print(i) # sleep_ms(500) tim = Timer(0) #tim.init(period=5000, mode=Timer.PERIODIC, callback=lambda t:count()) tim.init(period=1, mode=Timer.PERIODIC, callback=lambda t:count()) 這支去改寫, 結果失敗, 沒有 do re me 聲音出來。可能是中斷的精度不夠。 所以, 再用替代方案, pwm 來處理。就成功了。 注意事項: 1. 數字陣列,TAB1=[..., ... ,... ] 這是正確的。錯誤是 TAB1={ .....} 2. 陣列大小 len(TAB1) , 在使用時 TAB[i] , i 需要 < len(TAB1) , 也就是 i 最大值是 len(TAB1)-1 3. pmw2.freq() => 為 現在的 頻率 0~1023 4. pmw2.duty() => 為 現在的 pwm 的百分比值 原碼如下。 # pwm_song000.py from machin...