arduino实现1602液晶显示屏按键切屏功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arduino实现1602液晶显示屏按键切屏功能相关的知识,希望对你有一定的参考价值。

arduino,将测量的几个事实数据通过1602的液晶屏显示出来,每个数据占一页,使用两个按键翻页,可以向前或者向后变换页面;到那一页就能显示对应页的事实数据

参考技术A 当你按下按键,才会被翻页,所以每按下一次就记录一次flag。一个flag对应一个状态。然后用switch case去进入对应的屏幕页 参考技术B 按键中断 配合 Switch Case 可以简单实现本回答被提问者采纳 参考技术C ???:,,,,

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实现1602液晶显示屏按键切屏功能的主要内容,如果未能解决你的问题,请参考以下文章

Arduino 将1602液晶显示屏改造为IIC接口

Arduino怎么样使用串行1602液晶

Arduino:我的液晶lcd1602不会显示文字了

我用arduino做的超声波测距,现在想把测到的距离用lcd1602液晶显示屏显示出来,该怎么做,

lcd1602显示17个字母

LabVIEW控制Arduino驱动1602液晶显示屏(基础篇—10)