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")

使いかた

以下の操作ができます. CONFIG()でSTARTFILEで起動時実行するようにしておくことで, PCレスでmicro:bit単体で動かすことができます.
nll> CONFIG("STARTFILE","osc.nll")

メールは kozos(アットマーク)kozos.jp まで