木曜日, 10月 10, 2019

micro:bit 簡易DC発生器

(追記)

良く調べたら,micro:bitの「アナログ出力」とは,PWM出力でした。波形も見ずに投稿してすみません。こちらのドキュメントによれば,最小で256usということなので,3.906kHzということになります。

テスターで確認した時,適当にRMSになったようです。申し訳ありません。

(追記終わり)

設計仕様
  • ポート P1 に,電圧を出力する。
  • 電圧値は [A] [B] ボタンを押して設定する。調整は+/-0.1V単位。0 〜 3.3Vとなる。
  • 設定値をLEDで表示する。
コメント
  •  家にある安いデジタルテスターで動作確認した。設計値よりも若干低い値が出ている? だが,十分に実用となるだろう。
  • エディターのエミュレーションでは,出力値が 0 か 1 しか表示しない。残念!
電圧表示の様子。左が2個で1Vを示し,右が1個で0.1Vを示すようにしてみた。この例では1.5V(エディター画面からコピペ)




input.onButtonPressed(Button.B, function () {
    if (volt > 0) {
    volt += -1
    display_volt()
    }
})
input.onButtonPressed(Button.A, function () {
    if (volt < 34) {
    volt += 1
    display_volt()
    }
})
function display_volt() {
    // basic.showNumber(volt)
    basic.showLeds(`
    . . . . .
    . . . . .
    . . . . .
    . . . . .
    . . . . .
    `)
    for (let i = 0; i <= Math.floor(volt / 10) - 1; i++) {
    led.plot(0, 4 - i)
    led.plot(1, 4 - i)
    }
    for (let i = 1; i <= (volt - 10 * Math.floor(volt / 10)); i++) {
    led.plot(3 + (i % 2), 5 - Math.round(i / 2))
    }
}
let volt = 0
basic.forever(function () {
    pins.analogWritePin(AnalogPin.P1, 1023 * volt / 33)
})


0 件のコメント: