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解码芯片,使得程序代码非常简单,在按下不同按键时,数码管将显示对应 ...
最新文章
- 安装旧版本插件_iOS 应用降级插件,支持任意版本升降
- Windows下有关NDK的安装资料
- 判断手势_手势密码有几种?
- AngularJS2 环境搭建:
- 计算程序执行时间的函数
- 项目管理随感-项目管理是什么?
- 浏览器访问网页的详细内部过程
- 团队编程项目开发环境搭建过程
- Selenium 自动测试软件的使用(自动化操作)
- 以太坊系列之十四: solidity特殊函数
- openCV 下载地址
- GNU Radio系列教程(四):初级篇之GNU Radio GRC采样率
- 华为HCIE-CloudComputing备考笔记-2021.10
- 本地打印后台处理程序服务没有运行和windows无法连接到打印机拒绝访问
- Java中的接口详解
- windows系统镜像修复计算机,电脑映像损坏怎么修复_windows提示损坏的映像怎么处理...
- 二叉树的遍历和线索线索二叉树
- VS 2013 产品密钥
- C# 将PPT的每一页保存为图片
- Android 中获取随机颜色算法