|
本帖最后由 topdog 于 2020-3-6 07:08 编辑
四位数码管模块是四个数码管和TM1637组成的模块用于信息显示,我国是数码管生产大国,产能巨大,有着各种颜色和尺寸的型号,价廉物美。在能见度低的条件下,数码管发光的特性也是lcd和oled不可替代的。只要把数码管玩溜了,它呈现出来效果也是非常动感,时尚,酷炫的。SHTC3是超低功耗数字湿度传感器,电源电压范围更宽(1.62V至3.6V),精度更高(±2% RH,±0.2°C),包含电容式湿度传感器、带隙温度传感器、模拟和数字信号处理、模数转换器、校准数据内存以及支持I2C快速模式的数字通信接口。该传感器覆盖的湿度测量范围为0至100%相对湿度,温度测量范围为-40°C至125°C。SHTC3的电源电压范围宽,每次测量的能量预算低于1μJ。core+是美科科技推出的基于644p的核心,需要配合usbttl一起使用。
接线图如下:
程序如下:
/* 库文件下载地址和管脚接线
* https://github.com/Seeed-Studio/Grove_4Digital_Display
* TM1637 CORE+
* CLK 2
* DIO 3
* https://github.com/sparkfun/SparkFun_SHTC3_Arduino_Library
* SHTC3 CORE+
* SCL A4
* SDA A5
*/
#include "TM1637.h"
#include "SparkFun_SHTC3.h"
#define CLK 2 // TM1637 的时钟引脚
#define DIO 3 // TM1637 的数据引脚
TM1637 tm1637(CLK, DIO);
SHTC3 mySHTC3;
void setup()
{
Serial.begin(115200);
tm1637.set(BRIGHT_TYPICAL); //柔和的光线保护视力
tm1637.init();
mySHTC3.begin();
Wire.setClock(400000);
delay(1500); //歇歇脚,磨叽磨叽
}
void loop()
{
SHTC3_Status_TypeDef result = mySHTC3.update();
mySHTC3.lastStatus == SHTC3_Status_Nominal;
//显示字符串hello,Grove_4Digital_Display库不是把所有ACSII码列出,注意大小写 //关闭中间冒号显示
//这里显示的是小写o,如果要大写就用数字0
tm1637.point(POINT_OFF);
tm1637.displayStr("HELLo", 1000);
delay(3000);
TemperatureUpdate();
delay(3000); //阻塞的写法,不喜欢的可以改掉。
HumidityUpdate();
delay(3000);
}
//float 数据保留两位小数直接输出的写法
void TemperatureUpdate(void)
{
if (mySHTC3.passRHcrc)
{
float Temperature = mySHTC3.toDegC();
tm1637.clearDisplay();
tm1637.point(POINT_ON);
tm1637.displayNum(Temperature, 2);
}
}
//int 数据转化后输出
/*void TemperatureUpdate(void){
if(mySHTC3.passRHcrc)
{
int Temperature = mySHTC3.toDegC();
int digitoneT = Temperature / 10;
int digittwoT = Temperature % 10;
tm1637.clearDisplay();
tm1637.point(POINT_OFF);
tm1637.display(1,digitoneT);
tm1637.display(2,digittwoT);
tm1637.display(3,12); //此处加C表示摄氏度
}
}
*/
void HumidityUpdate(void)
{
if (mySHTC3.passRHcrc)
{
int Humidity = mySHTC3.toPercent();
int digitoneH = Humidity / 10;
int digittwoH = Humidity % 10;
tm1637.clearDisplay();
tm1637.display(1, 'H'); //此处加H表示湿度
tm1637.display(2, digitoneH);
tm1637.display(3, digittwoH);
}
}
常用的的ACSII需要再添加到库文件里面去,这个问题就留给大家思考,所以文章待续........
|
|