最新消息:

arduino从零开始(29)温度历史显示器

Arduino 少儿编程 1374浏览 0评论

arduino从零开始(29)温度历史显示器

arduino


你将学到什么

你将学到如何使用OLED显示模块制作一个温度历史显示器

主要元件

OLED显示模块、温度传感器

arduino代码

这里的温度以随机数模拟。

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);

#if (SSD1306_LCDHEIGHT != 64)

#error(“Height incorrect, please fix Adafruit_SSD1306.h!”);

#endif

void setup() {

  // put your setup code here, to run once:

Serial.begin(9600);

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  

display.display();

delay(2000);

 // Clear the buffer.清空

  display.clearDisplay();

}

int tempArray[100];//保存100个温度值

int currentTemp;

void loop() {

  // put your main code here, to run repeatedly:

  getTemp();

  drawScreen();

  delay(5000);//等待5s

}

void getTemp()//获取温度值的函数

{

  currentTemp=random(10,15);

  for(int a=99;a>=1;a–)

  {

    tempArray[a]=tempArray[a-1]; //将数组中的数据整体向右移动一位

    }

  tempArray[0]=currentTemp;//保存最新数据在数组的第一位置

  }

void drawScreen()//显示图形

{

  int q;

  display.clearDisplay();

  display.setTextSize(1);//字体大小

  display.setTextColor(WHITE);//文字颜色

  display.setCursor(25,0);   

  display.print(“Current:”);

  display.print(currentTemp);

  display.setCursor(0,0);

  display.print(64); 

  display.setCursor(0,15);

  display.print(48); 

  display.setCursor(0,31);

  display.print(32); 

  display.setCursor(0,47);

  display.print(16); 

  for(int a=28;a<127;a++)

  {

    q=63-tempArray[a-28];//将坐标校正过来

    display.drawPixel(a, q, WHITE);

    }

  display.display();

  }

显示效果

arduino从零开始(29)温度历史显示器

显示效果


欢迎转发评论!


您必须 登录 才能发表评论!