友情提示:380元/半年,儿童学编程,就上码丁实验室。
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();
}
显示效果
显示效果
欢迎转发评论!