
一共1013行的代码分析。由于各种原因这里不会直接上整体代码,仅仅进行分析与流程分析。
本代码包括该电路箱的各个模块,包括舵机、风扇、摇杆、温湿度传感器、滑动变阻器、语音模块、指纹模块、超声波模块、OLED屏、按键模块、蓝牙模块、还有视觉处理模块,串口显示屏。
如下图所示:

接下来是代码分析:
- 首先引入库文件,

2.预定义部分

其中
DHT dht39(39,11)是定义引脚,39是引脚号,11是温湿度传感器的型号。
3.接下来定义变量

不全部进行显示,以此为例。
4.接下来进行真正的代码块部分
- 超声波部分

首先进行定义超声波距离的函数,超声波工作原理
超声波模块的需要一个高低电平脉冲进行触发。

float checkdistance_12_11() //净距离超声波函数
{
digitalWrite(12, LOW); //先给一个低电平
delayMicroseconds(2); //持续时间2毫秒
digitalWrite(12, HIGH); //再给一个高电平
delayMicroseconds(10); //持续时间10毫秒
digitalWrite(12, LOW); //再产生一个低电平
//前四句是产生10us的TTL信号
float distance = pulseIn(11, HIGH) /58;
//pulseIn()单位为微秒bai,声速340m/s,单片机的晶du振频率约为14MHZ, 所以距zhi离cm=340*100/(1000000-14000)*pulseIn()/2,及化简dao为pulseIn()/[(1000000-14000)*2/(340*100)]等于pulseIn()/58.0.
delay(10);
return distance;
}
TTL电平
TTL电平信号规定,+5V等价于逻辑“1”,0V等价于逻辑“0”(采用二进制来表示数据时)。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。
- · void setup()函数部分
初始化变量,管脚模式,调用库函数等
其中我认为关键的我不太容易直接看出来的摘录分析,比较简单的启动温湿度传感器的等省略。

其中定义这几个变量储存字符串,具体功能随后分析。
- void loop()
连续执行函数内的语句

目的:所有收到的数据全部存放在data中,先将所有传感器数据收集起来,组成一个字符串,到Python再拆开。

当串口是闲置,item的值为读取串口的字符串,当读到字符串是=时,item1是item的第i个字符,item2接收了item的所有字符
String.charAt() 方法返回指定索引处的char值。索引范围是从0到length() - 1。对于du数组索zhi引,序列的第一个char值是在索引为dao0,索引1,依此类推。
这一串代码的目的主要是进行RGB灯亮度调节,等号后面跟的数字就是亮度。

void U8G2::drawXBM(u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t w, u8g2_uint_t h, const uint8_t *bitmap)
void U8G2::drawXBMP(u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t w, u8g2_uint_t h, const uint8_t *bitmap)
本文详细解析了一段涉及多种传感器和模块的电路箱控制代码,包括温湿度传感器、超声波模块、舵机等,阐述了代码的工作原理及各部分功能。
1746

被折叠的 条评论
为什么被折叠?



