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

  

  显示效果

  

欢迎转发评论!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

跟贴 跟贴 0 参与 0
推荐
资讯
财经
科技
娱乐
游戏
搞笑
汽车
历史
生活
更多
二次元
军事
教育
健身
健康
家居
故事
房产
宠物
旅游
时尚
美食
育儿
情感
人文
数码
三农
艺术
职场
体育
星座
© 1997-2020 网易公司版权所有 About NetEase | 公司简介 | 联系方法 | 招聘信息 | 客户服务 | 隐私政策 | 广告服务 | 侵权投诉 Reporting Infringements | 不良信息举报

Python与Arduino

Python与arduino

头像

Python与Arduino

Python与arduino

87

篇文章

997

人关注

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

用户登录

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