Arduino配合电位计和oled液晶屏显示波形 Processing联动
Posted 村头陈师傅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino配合电位计和oled液晶屏显示波形 Processing联动相关的知识,希望对你有一定的参考价值。
Arduino配合电位计和oled液晶屏显示波形 Processing联动
公众号:STCode
Arduino配合电位计和oled液晶屏显示波形 Processing联动
1)描述
本作品使用Arduino配合电位计和oled液晶显示器显示波形,并且将数据上传至Processing,波形在Processing端也能够实时显示。
2)硬件介绍
①电位计
②oled液晶显示器
3)接线说明
4)示例代码
Arduino部分:
/*-----------------------------
作者:STCode
时间:2021-11-2
公众号:STCode
-----------------------------*/
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);
const int WIDTH=128;
const int HEIGHT=64;
const int LENGTH=WIDTH;
const int analogInPin = A0;
int analogInValue = 0;
int x;
int y[LENGTH];
void clearY()
for(int i=0; i<LENGTH; i++)
y[i] = -1;
void drawY()
u8g.drawPixel(0, y[0]);
for(int i=1; i<LENGTH; i++)
if(y[i]!=-1)
//u8g.drawPixel(i, y[i]);
u8g.drawLine(i-1, y[i-1], i, y[i]);
else
break;
void setup(void)
Serial.begin(9600);
x = 0;
clearY();
void loop(void)
analogInValue = analogRead(analogInPin);
y[x] = map(analogInValue, 0, 1023, HEIGHT-1, 0);
Serial.write(y[x]);
u8g.firstPage();
do
drawY();
while( u8g.nextPage() );
//delay(10);
x++;
if(x >= WIDTH)
x = 0;
clearY();
Processing部分
/*-----------------------------
作者:STCode
时间:2021-11-2
公众号:STCode
-----------------------------*/
import processing.serial.*;
int WIDTH=128;
int HEIGHT=64;
Serial myPort;
int data;
int x;
int i;
int last_x = 0;
int last_y = 0;
int[] y = new int[10000];
int flag = 0;
void setup()
x = 0;
i = 0;
myPort =new Serial(this,"COM26",9600);
size(128,64);
noStroke();
background(204);
myPort.clear();
void draw()
strokeWeight(1);
stroke(0);
if(myPort.available()>0)
data=myPort.read();
println(data);
flag = 1;
if(flag == 1)
y[i] = data;
if(i!=0)
line(last_x,last_y,x,y[i]);
last_x = x;
last_y = y[i];
x+=1;
i++;
flag = 0;
if(x>=WIDTH)
x = 0;
i = 0;
background(204);
5)效果演示
以上是关于Arduino配合电位计和oled液晶屏显示波形 Processing联动的主要内容,如果未能解决你的问题,请参考以下文章
Arduino配合电位计和oled液晶屏显示波形 Processing联动
Arduino配合电位计和oled液晶屏显示波形 Processing联动
Arduino STM32+OLED绘制正弦余弦锯齿波形图形显示