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