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

nichicon が 2021年01月25日09時58分34秒 に編集

コメント無し

本文の変更

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

+

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  と配線したら完成。