Arduinoで電子工作

更新日 2021.08.07

Arduinoでいろいろなものを作ってて楽しんでいます。
まず、ほかの人が公開してくれているものを試してから、自分なりに変更しています。

最近Arduinoの限界を感じて、ESP32Sも買いました。(2021.09.13追記) Raspberry Pi Picoも良いかなと思って買っちゃいましたが、まだうまく使いこなせません。

  1. 九州工業大学の簡易オシロスコープ
  2. PCと接続したままArduinoでAD変換したデータをPC側のProsessingアプリで表示し操作できるオシロスコープ。 性能・機能・操作性ともになかなか良いです。単一チャンネルなら等価時間サンプリングで1us/divまで行けます。100kHzの矩形波がなんとか観測できました。
    Arduino 簡易オシロスコープ

  3. ペン型オシロスコープ
  4. 128x64OLEDモジュールを使ったオシロスコープ。ブレッドボード版もあります。時間軸は4倍拡大で50us/divまで。
    ラジオペンチ ペン型オシロスコープ

    これを4倍拡大で20us/div(25samples/div)まで出来るようにしてみました。ついでにFFTによるスペクトラム表示もできるようにしてみました。 メモリに余裕がないので128ポイントでのFFTです。 等価時間サンプリングで16Mspsまで出来るようにしました。 改造結果はこちら、Arduinoでオシロスコープ

    320x240TFTカラー液晶シールド用に修正したものもあります。空きピンがA5しかないのでタッチスクリーンで操作できるようにしました。 メモリに余裕があったので256ポイントのFFTによるスペクトラム表示ができます。

  5. 簡易オシロスコープ
  6. 320x240LCDを使ったオシロスコープ。2チャンネルで2.3ms/divまで、1チャンネルのみで1.2ms/divまで。
    Arduino でオシロスコープ

    ロシアの方(?)がタッチスクリーンで操作できるようにしたもの
    Arduino uno Oscilloscope for touch 2,4" TFT display
    があったので、それをベースにして97us/div(30samples/div)まで出来るようにしてみました。 さらに等価時間サンプリングで16Mspsまで出来るようにしました。 こちらは2チャンネル観測出来るのと、低速では逐次表示出来るのを生かして改良したいと思います。Arduino UNO互換機でCPUにQFPパッケージを使ったものの中にはA6とA7のスルーホール付きのものがあるので、それを使えば2チャンネルもできます。
    改造結果はこちら、 ArduinoとLCDタッチシールドで2CHオシロスコープ

    (2021.08.25追記) 元々は128x64 LCDを使ったものなので、それを基に128x64 OLEDに表示できるようにし、多機能化してみました。等価時間サンプリングはもとよりパルスジェネレータやファンクションジェネレータや周波数カウンタも使えるようになりました。 ArduinoとOLEDで2CHオシロスコープ・Pulse generator・Function Generator・周波数カウンタ

    (2022.05.31追記) ESP32に移植してみました。 ESP32とOLEDで2CHオシロスコープ・Pulse generator・Function Generator

    (2022.05.31追記) Raspberry Pi Picoに移植してみました。 Raspberry Pi PicoとOLEDで2CHオシロスコープ・Pulse generator・Function Generator

    (2022.06.30追記) ESP32版をWEBオシロスコープにしてみました。 ESP32で2CH WEBオシロスコープ・Pulse generator・Function Generator

  7. Oscilloscope in a Matchbox - Arduino
  8. マッチ箱サイズのオシロスコープといううたい文句の128x64OLEDモジュールを使ったオシロスコープ。USBシリアル通信でPCからも操作・表示できます。1チャンネルで50us/divまで。1Mspsということですが本当かどうか確認中です。一応20kHz の正弦波がゆったり表示できています。どうやら見かけは1Mspsだが実際は250kspsらしい。ADCのフラグを見ずに1Mspsで読みに行ってますね。4回同じ値が出ると言っているし、ごまかすためか3サンプルの移動平均をとっています。ロジアナの方は1Mspsで問題ありません。
    Oscilloscope in a Matchbox - Arduino

    AC入力にOPアンプを入れて感度を上げたり、4チャンネルロジックアナライザー、周波数カウンター、電圧計、テスト信号発生といろいろな機能を盛り込んであります。基板設計も公開していて、3階建てで小型化しています。画面の文字表示が簡単過ぎて状態が分かりにくいのが残念なところです。

    一番シンプルな構成は、OLEDと抵抗1本とタクトスイッチ2個でDC入力のみの動作確認できます。抵抗は入力の保護で、スイッチは無くてもPCから操作できるので、極端な場合はOLEDを付けるだけで動作確認できます。I2Cの高速化のためのプルアップ抵抗は無くても動いています。ラジオペンチさんのペン型オシロスコープと甲乙付け難いOLEDオシロスコープです。

  9. Ardutester
  10. ドイツで開発されたAVR Transistortester をArduino IDEに移植したものです。 トランジスタやFETだけでなく抵抗やコンデンサやインダクタ等の3端子以内の部品を自動判定して測定します。 Amazonなどで1000円前後で買える中華製のLCR-T4やMega328も大元の設計は同じです。

    1602キャラクタ液晶トランジスタテスター
    ArduTester V1.13: The Arduino UNO Transistor Tester
    OLEDモジュール対応トランジスタテスター
    ArduTester Millenium, the ultimate UNO & MEGA Versions

  11. コンデンサ容量計
  12. なんと外付け部品無しで1pFから470uFまで測定できます。 発振器を構成して周波数をカウントして容量を割り出す方式に比べて腰が砕けるほど簡単です。 1000pF以下はコンデンサとアナログ入力の浮遊容量との分圧電圧で測定し、案外正確です。 それ以上は内部プルアップ抵抗を使った充放電で測定します。 低容量はArdutesterよりも安定して測定できます。
    Capacitance Meter Mk II

  13. 周波数カウンタ・周期カウンタ
  14. 周波数カウンタ
    FreqCount
    周期カウンタ
    FreqMeasure

  15. 赤外線リモコン
  16. IRremote.hライブラリを使って各社の赤外線リモコンの送受信ができます。 ただ、エアコンの長い信号を受けると暴走するので、暴走を止める方法を検討中です。
    (2021.06.16追記)2021年4月30日にライブラリが更新されて暴走は無くなったようだ。 ただ、以前はデータは全部MSBファーストだったのが、仕様がLSBファーストになっているフォーマットはLSBファースト表記に変わってしまったので、その前に作ったソースを修正するのが面倒くさい。

<= Siliconvalley4066番地に戻る
siliconvalley4066@yahoo.co.jp