Arduino Nanoを使ってオシロスコープを作りました。サンプリングを高速化するためにADCのクロック分周比を1:8にしています。計れる電圧の範囲は0〜5Vです。グラフィック液晶のライブラリには、しなぷすのハード製作記(https://synapse.kyoto/lib/MGLCD/page001.html)さんのMGLCDライブラリを使用しました。
材料
・Arduino Nano x1
・AQM1248A x1
・1MΩ x1
配線
Arduino AQM1248A
3V3 --> VDD
D8 --> CS
D9 --> RS
MOSI --> SDI
SCK --> SCLK
GND --> GND
1MΩはA5ピンとGNDの間に入れます。
LCDのRESET端子はオープンにします。
*LCDのVDDに5Vを接続しないでください。
プログラム
#include <MGLCD.h>
#include <MGLCD_SPI.h>
#include <SPI.h>
#define CS 8
#define DI 9
#define MAX_FREQ 8000000L
MGLCD_AQM1248A_SPI MGLCD(MGLCD_SpiPin2(CS, DI), MAX_FREQ);
uint16_t value ;
uint8_t x1, y1, x2, y2, i, buf_state ;
void set_screen(void){
MGLCD.Line(113,0, 113,47) ;
MGLCD.Line(111,37, 114,37) ;
MGLCD.Line(111,28, 114,28) ;
MGLCD.Line(111,19, 114,19) ;
MGLCD.Line(111,10, 114,10) ;
MGLCD.Line(111,1, 114,1) ;
MGLCD.Locate(19, 0) ;
MGLCD.print("5V") ;
}
void setup() {
// put your setup code here, to run once:
ADCSRA |= 0b00000011 ;
pinMode(A5, INPUT) ;
MGLCD.Reset() ;
value = analogRead(A5) ;
y1 = 46-(value/22) ;
x1 = 0 ;
buf_state = 1 ;
}
void loop() {
// put your main code here, to run repeatedly:
i++ ;
if(i > 112){
i = 1 ;
delay(1000) ;
MGLCD.ClearScreen() ;
set_screen() ;
value = analogRead(A5) ;
y1 = 47-(value/22) ;
x1 = 0 ;
buf_state = 1 ;
}
value = analogRead(A5) ;
if(buf_state == 1){
y2 = 47-(value/22) ;
x2 = i ;
MGLCD.Line(x1,y1, x2,y2) ;
buf_state = 2 ;
}else if(buf_state == 2){
y1 = 47-(value/22) ;
x1 = i ;
MGLCD.Line(x2,y2, x1,y1) ;
buf_state = 1 ;
}
}
作り方
プログラムをArduino Nanoに書き込んでLCD
と配線したら完成。
使い方
Arduino NanoのA5ピンを測定したい物と繋
ぐと、その波形が表示されます。
投稿者の人気記事
-
nichicon
さんが
2021/01/15
に
編集
をしました。
(メッセージ: 初版)
Opening
3duilab
2021/01/16
nichicon
2021/01/17
3duilab
2021/01/17
nichicon
2021/01/17 -
nichicon
さんが
2021/01/25
に
編集
をしました。
(メッセージ: 目盛りを追加して見やすくしました。)
-
nichicon
さんが
2021/01/25
に
編集
をしました。
-
nichicon
さんが
2021/02/22
に
編集
をしました。
-
nichicon
さんが
2021/02/27
に
編集
をしました。
-
nichicon
さんが
2021/12/09
に
編集
をしました。
ログインしてコメントを投稿する高校生でこれは凄い、将来が楽しみ動画で見たいです
ありがとうございます。
動画も撮ったのですが載せ方が分からないので、代わりに動いているのが分かりやすい写真を載せておきます。
動画はgifかYouTubeですね、
改善ポイントとして、座標、時間、トリガー位置など画面の他、
入力を+ーの差動入力にするとより使いやすくなります。
エンジニアは英語検索が必須なので英語もがんばって
gifが使えるんですね。
Y座標に電圧を表示するなど、改良していこうと思います。アドバイスありがとうございます。