PWM発振器
概要
SSD1306の外部ディスプレイを利用した,PWMによる簡易的な発振器です.
PWMで正弦波・三角波・方形波・のこぎり波を発振できます.
(ただしPWM制御によるものなので,実際にはパルス波になります.
ローパスフィルタを通せばアナログ波形にできると思います)
実行画面はこんな感じです.
(外部ディスプレイ(SSD1306)を接続して利用してください)
MODEは波形(SIN:正弦波,TRI:三角波,SQR:方形波,SAW:のこぎり波)です.
FREQはPWMの周波数です.
波形の後に出ている数値(上の図では「SIN」の後の「16」)は,波形の分割数です.
例えば16ならば,正弦波の1周期を16分割して出力します.
TVALはPWM制御時のカウンタ上限値です.
これらにより,出力される波形の周波数は
「(FREQの値)÷(TVALの値)÷(波形の分割数)」
になります.
起動方法
以下のosc.nllをYMRECV()でmicro:bitに転送してください.
micro:bit上で以下を実行して,osc.nllをロードしてください.
nll> LOAD "osc.nll"
ロード後に,以下のように実行してください.
(注意:引数として出力先のピン番号を与えることができます.未指定の場合には外部端子の0番ピンから出力されます)
nll> RUN
以下のようにして出力先をmicro:bitのスピーカーにすると,
スピーカーからピーピーガーガーと音を出すことができます.
nll> RUN ,("0")
使いかた
以下の操作ができます.
- Aボタン:メニューカーソルを移動
- Bボタン:指定(メニューカーソルが一番左にある場合は,メニューカーソルを下に移動)
CONFIG()でSTARTFILEで起動時実行するようにしておくことで,
PCレスでmicro:bit単体で動かすことができます.
nll> CONFIG("STARTFILE","osc.nll")
メールは kozos(アットマーク)kozos.jp まで