好久没玩树莓派了,今天上手来做一个实验


文章目录

  • 1.实验器材
  • 2.实验原理
    • 2.1基本说明
    • 2.2电路图
    • 2.3接线图
  • 3.代码效果
    • 3.1代码示例
    • 3.2运行效果
  • 结语

1.实验器材

  • 树莓派开发板
  • 40p软排线+T型转接板+面包板
  • 雨滴传感器模块
  • LM393模块
  • PCF8591模数转换器模块(实验12)
  • 一些跳线
  • 一个一字螺丝刀

2.实验原理

2.1基本说明

雨滴传感器的控制模块具有4个输出,其中VCC连接到5V电源,模块的GND引脚接地。DO引脚连接到微控制器的数字引脚以进行数字输出,也可以使用模拟引脚。要使用模拟输出,可以将A0引脚连接到微控制器的ADC引脚。

在雨滴/雨水器系统中,用雨滴传感器检测降雨量并转换控制器检测到的信号。然后根据这些信号自动设置雨刮器的间隔,以方便地控制雨刮器的电机;在智能照明系统中,自动检测驾驶环境并调整照明模式,提高恶劣环境下的行车安全;在智能天窗系统中,检测是否下雨,如果检测到雨滴,则自动关闭天窗。

传感器模块包括一个电位计,LM393比较器,LED,电容器和电阻器。雨板模块由铜轨组成,铜轨用作可变电阻器。它的阻力随雨板上的湿度而变化。

2.2电路图

2.3接线图

树莓派 T型转接板 PCF8591
SDA SDA SDA
SCL SCL SCL
5V 5V VCC
GND GND GND
LM393模块 T型转接板 PCF8591
DO GPIO 17 *
AO * AIN 0
VCC 3.3V *
GND GND *

在连接LM393和雨滴传感器的时候,发现雨滴传感器上并没有明确标出正负极,但是在正极的管脚下方用小点做了标识(负极无该白点)

本次实验需要接的线非常多,注意不要接错了。其中PCF8591模块在接线时需要将所有跳线帽拔出

3.代码效果

3.1代码示例

因为需要使用pcf8591模数转换器,所以需要引用头文件<pcf8591.h>

//雨滴探测传感器实验
#include <stdio.h>
#include <wiringPi.h>
#include <pcf8591.h>
#include <math.h>#define  makerobo_PCF    120 // 基础管脚120
#define makerobo_DOpin   0   // 雨滴传感器管脚//打印雨滴传感器提示信息
void makerobo_Print(int x)
{switch(x){case 1:            //没有雨滴printf("\n************************\n"  );printf(  "* makerobo Not Raining *\n"  );printf(  "************************\n\n");break;case 0:             //有雨滴printf("\n**********************\n"  );printf(  "* makerobo Raining!! *\n"  );printf(  "**********************\n\n");break;default:         //打印数据错误printf("\n**********************\n"  );printf(  "* Print value error. *\n"  );printf(  "**********************\n\n");break;}
}int main()
{int makerobo_analogVal;           // 定义模拟量存储变量int makerobo_tmp, makerobo_status;// 定义状态信息//初始化连接失败时,将消息打印到屏幕if(wiringPiSetup() == -1){printf("setup wiringPi failed !");return 1;}//在基本引脚120上设置pcf8591,地址0x48pcf8591Setup(makerobo_PCF, 0x48);//设置雨滴传感器管脚为输入模式pinMode(makerobo_DOpin, INPUT);//默认状态值设置为0makerobo_status = 0; //无限循环while(1) {makerobo_analogVal = analogRead(makerobo_PCF + 0);//获取AIN0上的值printf("%d\n", makerobo_analogVal); //打印出该值 makerobo_tmp = digitalRead(makerobo_DOpin); //读取数字IO口电平,读取数字雨滴传感器DO端口if (makerobo_tmp != makerobo_status) //状态发生改变{makerobo_Print(makerobo_tmp); //打印出雨滴传感器检测信息makerobo_status = makerobo_tmp;  //状态值重新赋值}delay (200);   //延时200ms}return 0;
}

注意:雨滴传感器其实是LM393和雨滴感应模块的集合体,所以代码注释中说的设置管脚为input模式,实际上设置的是LM393模块的管脚(毕竟只有它连上了T型转接板)

本次博客的代码和之前的实验很相似,其中PCF8591在上篇实验12博客中已经有过讲解,所以在这里就不bb啦

3.2运行效果

当你把湿纸巾印在雨滴传感器上,屏幕上会打印出makerobo Raining!!,数值会随着雨滴量的大小变化(我这里测试的是,水多的时候打印的值小)但最后会趋于稳定,打印128

如果没有水,屏幕上打印makerobo Not Raining,数值打印255

在LM393模块上有两个LED指示灯,在传感器探测到水后,DO-LED会亮起

如果你的DO-LED没有亮起,可以通过该传感器上蓝色的模块,用十字螺丝调节LM393模块的灵敏度(这个蓝色模块调节的是电阻)

结语

有了这个东西,你可以把雨滴传感器丢到窗台上,在不在家的时候,就可以运行代码,看看家里有无下雨了(毕竟时候工作上学的地方和家里隔了十几公里,天气就可能完全不同)

配合cpolar实现内网穿透,效果更佳哦

【树莓派C语言开发】实验13:雨滴传感器模块(关联PCF8591)相关推荐

  1. 【树莓派C语言开发】实验12:PCF8591模数转换器模块

    文章目录 前言 1.实验器材 2.实验原理 2.0 元件介绍 2.1 i2c总线 2.2 第一字节 2.3 控制字节 2.4 模块电路 2.5 电路接线 3.程序控制 3.1 在树莓派中开启I2C 3 ...

  2. 【树莓派C语言开发】实验01:双色LED

    文章目录 前言 1.实验器材 2.实验原理 3.控制代码 3.1显示器的PWM调光和DC调光 3.2 编译代码 3.2.1直接使用Geany编译器内部选项 3.2.2 使用linux语言 4.如何在使 ...

  3. c语言程序设计实验13文件,C语言程序设计实验指导书

    C语言程序设计实验指导书 C 语言程序设计实验指导书 C 语言程序设计实验指导书 实验一:C语言的运行环境及运行 C 程序的方法(2 学时) 一.实验目的和要求:一.实验目的和要求: (1)了解所用的 ...

  4. 树莓派空气质量检测之——GP2Y1010AU0F粉尘传感器模块的使用记录

    项目场景: 笔者前段时间接触到了一个环境监测类的项目,需要对空气质量进行读取.也因此买了部分气体类的传感器进行调试.调试过程中就遇到了这么一个粉尘传感器--GP2Y1010AU0F.在树莓派上很多资料 ...

  5. 【树莓派C语言开发】实验15:电位计传感器(关联PCF8951)

    今天的这个实验需要用上两位常驻嘉宾! 它们就是PCF8591和双色LED! 文章目录 1.实验器材 2.实验原理 2.1基本原理 2.2接线图 3.实验效果 3.1代码示例 3.2实验效果 结语 1. ...

  6. 【树莓派C语言开发】实验10:干簧管传感器

    文章目录 前言 1.实验器材 2.实验原理 2.1电路图 2.2接线图 3.代码示例 3.1编译代码 3.1.1 GCC中-Wall指令的作用 3.2实验效果 结语 前言 好像没啥可以说的,直接开始进 ...

  7. 【树莓派C语言开发】实验02:RGB小灯

    文章目录 前言 1.实验器材 1.1树莓派运行库准备 2.元件接线 3.函数解释 3.1关于softPwmWrite的使用问题,大大的疑惑 4.代码样例 4.1初始化针脚 4.2颜色参数设置 4.3完 ...

  8. 【树莓派C语言开发】实验03:七彩LED模块

    文章目录 前言 1.实验器材 2.实验接线 3.实验效果 结语 前言 学习太累,那就玩玩树莓派"陶冶情操"吧! 关注本专栏,和我一起学习树莓派开发板30+经典实验! C语言代码,0 ...

  9. 【树莓派C语言开发】实验07:倾斜开关模块

    文章目录 前言 1.实验器材 2.实验原理 2.1实验接线 2.2实物接线图 3.代码示例 3.1部分代码解释 去抖动操作 直接用`==`比较字符串 3.2 Linux编译运行代码 3.3运行效果 结 ...

  10. 【树莓派C语言开发】实验08:振动开关模块

    文章目录 前言 1.实验器材 2.实验原理 2.1电路图 2.2接线图 3.代码示例 3.1代码思路讲解 参数`clb_tmp`问题 3.2linux运行代码 结语 前言 今天折腾vim编辑器折腾了老 ...

最新文章

  1. Python标准库——collections模块的Counter类
  2. rust拆自己家门_非常“掉价”的四大汽车装潢,豪车装上也难看,车主:回去拆了...
  3. mysql取最接近的两个值_Mysql:获取一行中另一个字段的最高值和最...
  4. R语言ggplot2可视化分面图(facet,facet_wrap): 不同分面配置不同的数据范围、自定义每个分面的轴数据格式化形式及数据范围
  5. 「GNN,简直太烂了」,一位Reddit网友的深度分析火了
  6. 1.内存优化(一)内存泄漏
  7. 02-CA/TA编程:aes demo
  8. rust(28)-具名结构体
  9. 端口复用(解决C/S模型的BUG)
  10. python 设置x轴_python matplotlib坐标轴设置的方法
  11. hive 百分比_HIVE短期内再次突破前高
  12. JEECG常见问题大全征集
  13. java注册系统服务_奇葩需求:springboot项目注册为windows系统服务并设置开机自启...
  14. Android 系统编译环境设置及源代码编译
  15. spring+hibernate中clob、blob字段的处理方法
  16. 第三方API的简单调用
  17. python3 爬虫入门 简单爬取京东商品名称案例 详细笔记说明
  18. 【产品经理】 产品经理进阶之路(十一):怎么看微信的公众号和百度的直达号,哪个更有优势
  19. CentOS 6.5 ZIP、RAR文件压缩解压操作详解
  20. 怎么把计算机拉到桌面上,怎么把电脑游戏放到桌面

热门文章

  1. html斜删除线怎么设置,html如何设置加粗、倾斜、下划线、删除线等字体效果
  2. 数字化工厂-Process Simulate中的运动学定义
  3. iPhone 4 Cydia使用教程 精选Cydia源 cydia怎么添加源 Cydia源使用方法 越狱后使用cydia
  4. Adobe-CC-2017 安装教程
  5. eclipse_开启出现弹窗_Subversive Connector Discovery
  6. Intellij IDEA2017安装破解
  7. bootdo框架使用步骤总结
  8. java winform程序_重拾JAVA之WinForm实战之(四)
  9. python编程菜鸟_python菜鸟教程
  10. hbase mysql hdfs_Alex的Hadoop菜鸟教程:第8课Sqoop1导入Hbase以及Hive