HOME > 電子工作
Arduino Uno R3 を用いて簡易オシロスコープ(リアルタイム・オシロスコープ)をつくる

はじめに
Arduino Uno R3 を用いて簡易オシロスコープ(リアルタイム・オシロスコープ)を制作しましたのでご紹介します。ATmega328PのADC変換時間は、安定して取得するためには、20μsほど掛かるため、制作した簡易オシロスコープのサンプリングレートは、50KS/sです。
用意するもの
制作に必要なものは下記の通りです。
- Arduino Uno Rev3を1つ
- Arduino用ユニバーサル プロトシールド基板 ガラスコンポジット 金フラッシュを1つ
- I2Cバス用双方向電圧レベル変換モジュール(FXMA2102)を1つ:3.3V←→5Vのレベル変換に用います
- 3mm赤色LED 625nm 70度 OSR5JA3Z74Aを1つ
- 小型スライドスイッチ 1回路2接点 SS12D01G4を1つ:5V、3.3Vの切り替え
- ダイオード 1N4148を2つ
- 半固定ボリューム 3362P 20kΩ [203]を1つ:分圧
- カーボン抵抗(炭素皮膜抵抗) 1/4W15kΩを1つ:分圧
- カーボン抵抗(炭素皮膜抵抗) 1/6W1kΩを1:保護
- カーボン抵抗(炭素皮膜抵抗) 1/6W4.7kΩを2つ:プルアップ抵抗
- カーボン抵抗(炭素皮膜抵抗) 1/6W330Ωを1つ
- ピンヘッダー 1×40 (40P)を1つ
- ピンヘッダー (オスL型) 1×40 (40P)を1つ
![]() |
回路図
簡易オシロスコープの回路は上図のようになります。
信号入力の回路は、分圧により、0V-10Vを入力することができます。Wave Generatorの回路は、レベル変換することにより、スイッチで3.3Vと5Vが選択できます。
信号入力の回路は、分圧により、0V-10Vを入力することができます。Wave Generatorの回路は、レベル変換することにより、スイッチで3.3Vと5Vが選択できます。
1)信号入力は、18kΩの抵抗と20kΩのボリュームで分圧しています。1:1になうよう、ボリュームで調整します。
2)3.3V←→5Vのレベル変換するのには、I2Cバス用レベル変換モジュール FXMA2102を利用します。

レベル変換モジュールに何を選択するか、またプルアップ抵抗の抵抗値を何にするかによって、高周波数信号の波形がなまってきます。 色々なPICマイコンへの書き込みで試しましたが、FXMA2102でもいけます。プルアップ抵抗の抵抗値は ATmega328Pでは4.7kΩがいいようです。
ソフトウェア
オシロスコープ操作
下記のように、PCとUSB接続(仮想COM、UART)して、PCより操作します。
Windows用ソフト(2025.5.26更新)
1)簡易オシロスコープのCH1にターゲットの信号を入力します。
2)PCとUSB接続(仮想COM、UART)して、PCより簡易オシロスコープを操作します。自作のWindows用ソフトを作成しましたので、下記に紹介します。
Windows用ソフト(2025.5.26更新)

![]() |
簡易オシロスコープをPCとUSB接続して、PC側より、Windows用ソフトを起動します。 |
![]() |
入力信号をOffします。 |
![]() |
トリガーを設定します。 |
![]() |
入力信号をOnすると、トリガーにより、波形を捉えることができます。 |
終わりに
以上です。この他にも、自作PICライタを制作したりしています。