【電子工作】コンパクトなATTINY1614簡易オシロ付きロジックチェッカを作りました(その1) | トドお父さん通信

トドお父さん通信

北部九州在住 高BMI中高年のオタク趣味の活動記録


近隣のおもちゃ病院のおもちゃドクターさんから、おもちゃ病院開院時に、「Mさん、反射型センサが動作しているか、わかりますか?」と聞かれてオシロがないのでテスターで受光側の電圧をみると1Vくらいでした。

劣化で漏れ電流が増えていたのでしょう。

オシロがあればなぁ?と思いましたが、オシロはおもちゃドクターには敷居が高いのでロジックチェッカでも作ってみようかと思いました。

基本はLEDがDCレベルで”H”で緑、”L”で赤、中間電位で”オレンジ”
ACレベルで変化があれば、オレンジの点滅。
みたいな仕様かな?

LEDだけでなく、電圧表示があると嬉しいですね。
欲を言えば、簡易オシロ機能で波形も見れるといいかな?

って、こんな感じでプロジェクトが始まりました。

今回のこのプロジェクトのベースにするのは、下記のラジオペンチさんの簡易オシロの記事です。
“0.96インチOLEDを使ったオシロ、機能確認版の製作 (Arduino)”

仕様は下記のようになっています。簡易オシロとしては十分です。
波形のアベレージを計算してくれるので、ロジックチェッカとしては、この表示値を使って判定すればいいことになります。

  • Arduino Nanoと0.96’ OLEDディスプレイを使う

  • 垂直感度(フルスケール当たりの値)
     固定レンジ:50V, 20V, 10V, 5V, 2V, 1V, 0.5V, 0.2V
     Autoレンジ:50V, 5V (波形が出来るだけ大きく表示されるように上/下限の値を自動調整)

  • 水平レンジ(div当たりの値、4div=フルスケール)
     50ms, 20ms, 10ms, 5ms, 2ms, 1ms, 500us, 200us

  • トリガ
     波形PPの1/2レベルで自動トリガ。トリガスロープUP/DOWNの指定が可能

     トリガ非検出でも波形は表示し、トリガ検出失敗表示する (unsync と表示)

  • 電圧計機能
     波形メモリーの値の平均値を画面に表示。簡易電圧計として使えるはず。

  • 画面ホールド
     ホールドスイッチを押すと画面をホールド、再度スイッチを押すとホールド解除。なお、ホールド中はholdと画面に表示。

  • 設定状態のリジューム機能
     ボタン操作の5秒後に設定内容をEEPROMに保存。保存した内容は次回パワーON時に反映。

  • 波形の周波数とデューティ比の測定機能を追加(V2.0以降)

心配なのはメモリです。
もとのArduino Nano版 PMO-RP1_V2.0 で、コンパイルして確認しました。
フラッシュメモリ:最大30720バイトのうち、スケッチが23682バイト(77%)を使っています。
RAM:最大2048バイトのRAMのうち、グローバル変数が825バイト(40%)を使っていて、ローカル変数で1223バイト使うことができます。
→ RAMは1223バイト空きがあるとの表示ですが、実際はグラフィックライブラリのAdafruit GFXがフレームバッファとして128x64=1kB使っているので、空きは200バイト前後しかありません。

今回はArduino Nanoを使って、ブレッドボード上でグラフィックライブラリの削減を検討して、ATTINY1614でのオシロ機能の実現性を確認しました。

一緒にSleepモードやロジックチェッカ機能の確認も行いました。
下記のnoteに記事を書いています。

 

 


これができれば、超小型のオシロ機能付きロジックチェッカが実現することになります。
でも、老眼のおもちゃ病院ドクターに使ってもらえるか心配です。

まずは自分が使うことを考えましょうか?!
今回のブレッドボードはこんな形になりました。

ピン変化割り込みを使ったので、部品が少なくシンプルにまとまりました。


それでは、次回以降にATTINY1614への移植と、タカチSW53ケース組み込みを行います。
こうご期待!