編集履歴一覧に戻る
nichiconのアイコン画像

nichicon が 2021年01月25日09時56分19秒 に編集

目盛りを追加して見やすくしました。

メイン画像の変更

メイン画像が変更されました

本文の変更

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 ;

+

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 > 127){

+

if(i > 112){ //127

i = 1 ; delay(1000) ; MGLCD.ClearScreen() ;

+

set_screen() ;

value = analogRead(A5) ;

-

y1 = 46-(value/22) ;

+

y1 = 47-(value/22) ;

x1 = 0 ; buf_state = 1 ; } value = analogRead(A5) ; if(buf_state == 1){

-

y2 = 46-(value/22) ;

+

y2 = 47-(value/22) ;

x2 = i ; MGLCD.Line(x1,y1, x2,y2) ; buf_state = 2 ; }else if(buf_state == 2){

-

y1 = 46-(value/22) ;

+

y1 = 47-(value/22) ;

x1 = i ; MGLCD.Line(x2,y2, x1,y1) ; buf_state = 1 ; } }

-

④作り方 ・プログラムをArduino Nanoに書き込んでLCD  と配線したら完成。