本帖最后由 Z_Tam 于 2019-10-2 20:20 编辑

本次实验建立在ADC实验上,通过参考STM32的例程代码移植了DHT11测量温湿度,2路ADC分别测量液位传感器和光敏传感器的值。当液位传感器的值检测到有水滴时启动电机准备用于实现关窗的操作。   
本次实验使用到的传感器有:DHT11、液位传感器、光敏传感器。其他硬件还有:电机、电机驱动、电源、USB数据线*2。
一:系统接线如下所示
1.jpg
接线效果图
13.jpg
接线图
2.jpg
实时测量数据
测试一:光敏传感器测试。
3.jpg
强光测试
4.jpg
强光测试数据
5.jpg
暗光测试
6.jpg
暗光测试数据
测试二:温湿度传感器
7.jpg
打火机升温除湿
8.jpg
高温、干燥数据
9.jpg
常温、湿润数据
实验三:液位传感器测试
当有水滴滴落在液位传感器上时,会启动电机,请注意观察电机的状态。
10.jpg
没水滴状态
11.jpg
有水滴状态
12.jpg
水位传感器数据
二:关键代码截图
代码1.JPG
代码2.JPG
三:心得体会
    在改写ADC实验时因为doc里面的文档所指向的管脚口在M3-PinMap-0131里面查不到,所以在资料的搜索和代码的理解上花了较多的时间,最后在TT_M3HQ User Manual_en里面找到了所引用的管脚口。
    在移植DHT11的时候遇到了很多困难:IO口的输入输出参考LED灯和按键的demo及whik的位带操作;手上没有示波器,延时函数不准确,因此将延时delay_ms放大两万倍去大致修改;
    最后想使用LORA模块将测量到的数据传到STM32上,但是参考UART的代码实在是找不到使用I/O口UART通信的方法。如果有大神知道怎么能用I/O口完成UART通信,欢迎在小弟的贴后留言谢谢。
四:附件
M3-PinMap-0131.pdf (7.21 MB, 下载次数: 6)