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

x
用微信扫描二维码
分享至好友和朋友圈

  

  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();
}
显示效果

  

  显示效果

  

欢迎转发评论!

特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。

跟贴 跟贴 0 参与 0
© 1997-2019 网易公司版权所有 About NetEase | 公司简介 | 联系方法 | 招聘信息 | 客户服务 | 隐私政策 | 广告服务 | 网站地图 | 意见反馈 | 不良信息举报

Python与Arduino

Python与arduino

头像

Python与Arduino

Python与arduino

87

篇文章

950

人关注

列表加载中...
请登录后再关注
x

用户登录

网易通行证/邮箱用户可以直接登录:
忘记密码