arduino并口屏_Adafruit_GFX驱动ILI9341 2.4寸并口屏
#include
#define DHT11PIN 13 //DHT11 data接13引脚
dht11 DHT11;
#include "Adafruit_GFX.h"// Hardware-specific library
#include
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin
MCUFRIEND_kbv ucg;
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
//左边仪表
void draw(int value) {
int cx = 77; //圆心x
int cy = 120; //圆心y
int cr = 75; //圆半径r
float angle; //数值转换指针偏转角度
float rad; //指针偏转角度转换弧度
//仪表刻度
for(int i=0;i<=100;i+=2){
angle = 150+i*2.4;
rad = angle/180*PI;
if(i==0 ||i==20 ||i==40 ||i==60 ||i==80 ||i==100)
{
//刻度线
ucg.drawLine(cx+(cr-13)*cos(rad),cy+(cr-13)*sin(rad),cx+(cr-3)*cos(rad),cy+(cr-3)*sin(rad),WHITE);
//刻度数值
ucg.setTextSize(2);
ucg.setTextColor(WHITE);
ucg.setCursor((cx-10)+(cr-33)*cos(rad),(cy-8)+(cr-33)*sin(rad));
ucg.print(int(i));
}
else if(i==10 ||i==30 ||i==50 ||i==70 ||i==90)
{
//刻度线
ucg.drawLine(cx+(cr-13)*cos(rad),cy+(cr-13)*sin(rad),cx+(cr-3)*cos(rad),cy+(cr-3)*sin(rad),WHITE);
}
else
{
//刻度线
ucg.drawLine(cx+(cr-8)*cos(rad),cy+(cr-8)*sin(rad),cx+(cr-3)*cos(rad),cy+(cr-3)*sin(rad),WHITE);
}
}
//仪表外圆
ucg.drawCircle(cx,cy,cr,BLUE);
ucg.drawCircle(cx,cy,(cr-1),BLUE);
ucg.drawCircle(cx,cy,(cr-2),BLUE);
//仪表指针及轨迹
for(float i=0;i<=value;i+=0.25)
{
angle = 150+i*2.4;
rad = angle/180*PI;
if(i
{
ucg.drawLine(cx+(cr-8)*cos(rad),cy+(cr-8)*sin(rad),cx+(cr-3)*cos(rad),cy+(cr-3)*sin(rad),WHITE);
}
else
{
ucg.drawLine(cx+(cr-60)*cos(rad),cy+(cr-60)*sin(rad),cx+(cr-3)*cos(rad),cy+(cr-3)*sin(rad),BLUE);
}
}
//仪表中心小圆
ucg.fillCircle(cx,cy,(cr-60),BLUE);
//中心小圆符号
ucg.setTextSize(2);
ucg.setTextColor(WHITE);
ucg.setCursor((cx-5),(cy-7));
ucg.print("H");
}
//右边仪表
void draw2(int value) {
int cx = 243; //圆心x
int cy = 120; //圆心y
int cr = 75; //圆半径r
float angle; //数值转换指针偏转角度
float rad; //指针偏转角度转换弧度
//仪表刻度
for(int i=0;i<=50;i+=1){
angle = i*4.8+150;
rad = angle/180*PI;
if(i==0 ||i==10 ||i==20 ||i==30 ||i==40 ||i==50)
{
//刻度线
ucg.drawLine(cx+(cr-18)*cos(rad),cy+(cr-18)*sin(rad),cx+(cr-3)*cos(rad),cy+(cr-3)*sin(rad),WHITE);
//刻度数值
ucg.setTextSize(2);
ucg.setTextColor(WHITE);
ucg.setCursor((cx-10)+(cr-33)*cos(rad),(cy-8)+(cr-33)*sin(rad));
ucg.print(i);
}
else if(i==5 ||i==15 ||i==25 ||i==35 ||i==45)
{
//刻度线
ucg.drawLine(cx+(cr-13)*cos(rad),cy+(cr-13)*sin(rad),cx+(cr-3)*cos(rad),cy+(cr-3)*sin(rad),WHITE);
}
else
{
//刻度线
ucg.drawLine(cx+(cr-8)*cos(rad),cy+(cr-8)*sin(rad),cx+(cr-3)*cos(rad),cy+(cr-3)*sin(rad),WHITE);
}
}
//仪表外圆
ucg.drawCircle(cx,cy,cr,RED);
ucg.drawCircle(cx,cy,(cr-1),RED);
ucg.drawCircle(cx,cy,(cr-2),RED);
//仪表指针及轨迹
for(float i=0;i<=value;i+=0.25)
{
angle = 150+i*4.8;
rad = angle/180*PI;
if(i
{
ucg.drawLine(cx+(cr-8)*cos(rad),cy+(cr-8)*sin(rad),cx+(cr-3)*cos(rad),cy+(cr-3)*sin(rad),WHITE);
}
else
{
ucg.drawLine(cx+(cr-60)*cos(rad),cy+(cr-60)*sin(rad),cx+(cr-3)*cos(rad),cy+(cr-3)*sin(rad),RED);
}
}
//仪表中心小圆
ucg.fillCircle(cx,cy,(cr-60),RED);
//中心小圆符号
ucg.setTextSize(2);
ucg.setTextColor(WHITE);
ucg.setCursor((cx-5),(cy-7));
ucg.print("T");
}
void setup()
{
pinMode(DHT11PIN,OUTPUT);
ucg.begin(0x9341); //ILI9341
ucg.setRotation(3); //屏幕旋转270度
}
void loop()
{
int chk = DHT11.read(DHT11PIN); //将读取到的值赋给chk
int tem=(float)DHT11.temperature; //将温度值赋值给tem
int hum=(float)DHT11.humidity; //将湿度值赋值给tem
ucg.fillScreen(BLACK); //清屏
draw(hum);
draw2(tem);
delay(5000); //5秒刷新一次
}
arduino并口屏_Adafruit_GFX驱动ILI9341 2.4寸并口屏相关推荐
- 电子纸 墨水屏的驱动办法
电子纸 墨水屏的驱动办法 电子纸或者叫墨水屏是一种非常适合用在低功耗项目的显示器件 硬件电路 驱动程序 测试效果 获取完整代码 联系方式 电子纸或者叫墨水屏是一种非常适合用在低功耗项目的显示器件 它最 ...
- 全自动测试治具7寸触摸串口屏+电流读取+电压读取+称重模块
使用: 1,HX711 100克称重模块 2,INA226电流传感器(也可以读取电压) 3,mega2560 模拟口直接读取电压 4,7寸触摸串口屏 本程序使用freerots作为框架取代定时器,与串 ...
- arduino并口屏_Arduino 驱动串口屏(入门级)
Arduino 以其易用性及强大的程序控制功能已经迅速吸引了国内外众多电子爱好者和产品开发人员的眼球,人们纷纷试水,用它来制作个性化的小产品,同时随着开源硬件成本的不断下调,使用Arduino开发商用 ...
- Arduino框架下通过TFT_eSPI库驱动ESP32+合宙1.54“ 电子墨水屏(e-paper)显示
Arduino框架下通过TFT_eSPI库驱动ESP32+合宙1.54" 电子墨水屏(e-paper)显示 demo演示效果 相关库 EPD_Libraries:https://github ...
- STM32 FSMC接口驱动4.3寸TFT LCD屏
STM32 FSMC接口驱动4.3寸TFT LCD屏 STM32的FSMC接口是并行总线接口,可以用于驱动存储芯片如FLASH/SRAM等,也可以用于驱动并口LCD屏. 这里以STM32F103VET ...
- arduino使用oled代码_实用!Arduino平台最强大的“显卡”驱动:Adafruit GFX 图形库8000字详细使用指南...
概述 Arduino的Adafruit_GFX库为我们所有的LCD和OLED显示屏提供了通用语法和图形功能集.这使得Arduino示例程序可以很容易地在不同类型的显示屏之间进行调整,并且任何新特性.性 ...
- 使用micropython(ESP8266、ESP32)驱动SES 2.66寸墨水屏显示中文
由于需要做一些低功耗的东西,所以最近在尝试玩墨水屏.出于成本考虑(没钱的另一种委婉说法)从咸鱼淘到2块便宜的二手SES 2.66寸三色墨水屏,并使用micropython将其驱动起来,并用字库的方法显 ...
- STM32驱动4寸ST7796S LCD-TFT屏
STM32驱动4寸ST7796S LCD-TFT屏 简介 屏幕与STM32F103RCT6开发板接线 屏幕原理图 STM32驱动程序 屏幕显示效果 简介 屏幕驱动芯片ST7796S最大支持320*48 ...
- 【Proteus仿真】Arduino UNO +74C922键盘解码驱动4X4矩阵键盘
[Proteus仿真]Arduino UNO +74C922键盘解码驱动4X4矩阵键盘 Proteus仿真 本例因为使用了74C922解码芯片,使得程序代码非常简单,在按下不同按键时,数码管将显示对应 ...
最新文章
- python网络编程--socket简单实现
- 字节Java高级岗:javaio流面试题
- php连接mysql总结_php连接数据库的三种方式的总结
- mysql 透明代理_透明代理MySQL_基于zbus的MySQL透明代理(100行)-云栖社区
- 《信息存储与管理(第二版):数字信息的存储、管理和保护》—— 2.12 闪存盘简介...
- 主成分分析中特征值分解与SVD(奇异值分解)的比较及其相关R语言的实现
- SQL SERVER 2008 R2最大并发连接数修改为2后,SQL连接无法超过2个。
- MIT机器人轻松搞定桌游叠叠乐:你能玩过它算我输 | 《科学》子刊
- docker python3环境搭建
- 考勤系统——代码分析datagrid
- c++中正则表达式(regex)
- Codeforces Round #277 (Div. 2) E. LIS of Sequence DP
- 《计算机应用基础》测试题,《计算机应用基础》测试题(一)
- 钢板弹簧matlab,Matlab/GUI在钢板弹簧悬架设计中的应用
- TikTok和抖音差别大吗?
- 【教程】创建活动报名二维码(活动报名/会议签到扫码,带微信手机号认证)
- CentOS 7 Shipyard启动时一直显示省略号的解决办法
- 【报错】Cannot uninstall ‘certifi‘. It is a distutils installed project and thus we cannot accurately
- 相亲聊什么?想要避免尬聊,就从这6个话题入手
- 文件上传数据库,并下载(包含删除,根据条线查询等功能)