Arduino 示波器 (LCD12864)制作出來的實(shí)物圖如下:
IMG_20181221_203348.jpg (175.22 KB, 下載次數(shù): 107)
下載附件
2018-12-21 20:45 上傳
IMG_20181221_203342.jpg (148.49 KB, 下載次數(shù): 103)
下載附件
2018-12-21 20:45 上傳
實(shí)驗?zāi)康?顯示變化頻率的正弦波 硬件:Arduino UNO,LCD12864 代碼: #include <U8glib.h> //聲明庫
U8GLIB_ST7920_128X64_4X u8g(13, 12, 11); // 聲明液晶屏 SPI Com: SCK =13, MOSI = 12, CS = 11
int x,y; //繪點(diǎn)坐標(biāo)
int Buffer[128]; //緩存值儲存數(shù)組
const uint8_t grap [] U8G_PROGMEM ={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x80,0x0C,0xE0,0x00,0x08,
0x40,0x00,0x00,0x60,0x00,0x00,0x00,0x00,
0x07,0x80,0x30,0x80,0x7F,0x60,0x00,0x08,
0x40,0x00,0x01,0xC0,0x08,0x00,0x00,0x00,
0x07,0x80,0x10,0xC0,0x2D,0xC0,0x00,0x08,
0x40,0x00,0x02,0xC0,0x18,0x01,0x00,0x00,
0x06,0x00,0x15,0xE0,0x3D,0xC0,0x00,0x08,
0x40,0x00,0x04,0x80,0x10,0x02,0x00,0x00,
0x1B,0xE0,0x07,0x20,0x0E,0xC0,0x00,0x08,
0x40,0x00,0x09,0x80,0x70,0x20,0x00,0x80,
0x7F,0xF0,0x45,0x40,0x07,0xF0,0x00,0x08,
0x40,0x00,0x7F,0xBD,0xE3,0x6C,0xDB,0xC0,
0x73,0x00,0x45,0x80,0xFD,0x80,0x00,0x08,
0x40,0x00,0xFF,0xAB,0x22,0xD8,0xB6,0x80,
0x0B,0x00,0x4D,0xC0,0xC8,0x80,0x00,0x08,
0x40,0x00,0x42,0x52,0x45,0x51,0x64,0x80,
0x33,0x60,0x67,0x40,0x30,0xE0,0x00,0x08,
0x40,0x00,0x85,0x1E,0xD7,0xB5,0xBC,0xC0,
0x6A,0x20,0x68,0x80,0x4F,0xE0,0x00,0x08,
0x40,0x01,0x06,0x1B,0x62,0xD9,0x23,0x00,
0x06,0x00,0x4B,0x70,0x3D,0x60,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x40,0x3C,0x39,0xE0,0x00,0x08,
0x40,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFD,0xFF,0xBF,0xC3,0xC7,0x1F,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x18,0x00,0x00,0x00,0x00,0x00,
0x00,0x10,0x00,0x00,0x10,0x02,0x20,0x08,
0x40,0x00,0x24,0x00,0x00,0x00,0x00,0x02,
0x30,0x18,0x0F,0x00,0x90,0x0A,0x60,0x08,
0x40,0x00,0x42,0x00,0x00,0x00,0x00,0x02,
0x40,0x20,0x1D,0x81,0x58,0x0F,0xA0,0x08,
0x40,0x00,0x81,0x00,0x00,0x00,0x00,0x07,
0xC0,0x3C,0x13,0x83,0xF0,0x07,0x60,0x08,
0x40,0x01,0x00,0x80,0x00,0x40,0x00,0x0F,
0x40,0xDC,0x1E,0x43,0x3C,0x0F,0x60,0x08,
0x40,0x02,0x00,0x40,0x00,0x80,0x00,0x07,
0xE0,0xE0,0x39,0x81,0x70,0x3A,0xA0,0x08,
0x40,0x3F,0xFF,0xFF,0xFF,0xF0,0x00,0x0B,
0x70,0x30,0x1B,0x01,0x10,0x06,0xA0,0x08,
0x40,0x08,0x00,0x10,0x02,0x00,0x00,0x04,
0xC0,0x2C,0x2E,0xC1,0x10,0x0B,0xA0,0x08,
0x40,0x10,0x00,0x08,0x04,0x00,0x00,0x02,
0x00,0x60,0x18,0x00,0x10,0x02,0x60,0x08,
0x40,0x00,0x00,0x04,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x10,0x00,0x20,0x08,
0x40,0x00,0x00,0x02,0x10,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x01,0x20,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};//首頁圖片
void setup( ){
Serial.begin(9600);
u8g.firstPage(); //清屏
do draw1( ); //顯示
while( u8g.nextPage( ));
delay(1000);
}
//采樣
void sample(int j){
for(x = 0;x < 128;x++)
//Buffer[x] = analogRead(A0); //信號采樣
//Buffer[x] =0; //信號采樣
Buffer[x]=int(sin(x*(j*3.1412/180))*208-j);
for(x = 0;x < 128;x++)
//Buffer[x] = 32-(Buffer[x]); //計算縱坐標(biāo)值
//Serial.println(Buffer[x]);
Buffer[x] = 32-(Buffer[x]>>4); //計算縱坐標(biāo)值
}
//顯示
void draw( ){
for(x = 0;x < 128;x++)
u8g.drawLine(x, Buffer[x],x,Buffer[x+1]); //畫相鄰兩點(diǎn)連線
u8g.drawLine(64,0,64,63); // 畫坐標(biāo)軸
u8g.drawLine(0,32,128,32);
for(x=0;x<128;x+=8) //畫坐標(biāo)軸刻度
u8g.drawLine(x,31,x,33);
for(x=0;x<64;x+=8)
u8g.drawLine(63,x,65,x);
u8g.drawFrame(0,0,128,64); //畫邊框
}
void loop( ){
for(int j=8;j<32;j++){
sample(j); //采樣
u8g.firstPage(); //清屏
do draw( ); //顯示
while( u8g.nextPage( ));
delay(500);
}
u8g.firstPage(); //清屏
do draw1( ); //顯示
while( u8g.nextPage( ));
delay(3000);
}
void draw1(void) {
u8g.setColorIndex(1);
u8g.drawBitmapP ( 0 , 0 , 16 , 64 , grap);
}
視頻效果:
|