【树莓派】实验 10 - 干簧管传感器实验
前言
好像没啥可以说的,直接开始进入今天的实验内容吧
关注本专栏,和我一起学习树莓派开发板 30 + 经典实验!
C 语言代码,0 基础剖析!
还等什么😍心动不如行动!👉点我关注
本专栏代码仓库📝:Raspberry-practice
1. 实验器材
- 树莓派开发板
- 40p 软排线 + T 型转接板 + 面包板
- 干簧管传感器模块
- 双色 LED
- 跳线若干
上:干簧管传感器;下:双色 LED
2. 实验原理
干簧管传感器也是一种用于检测磁场的传感器。在常用的程控交换机、复印机、洗衣机、
电冰箱、照相机、消毒碗柜、门磁、窗磁、电磁继电器、电子衡器、液位计、煤气表、水
表等产品中都得到了很好的应用。
个人理解:干簧管传感器的效果和霍尔元件很像,不过后者的体积更小
笔记本电脑中就有霍尔元件,用于检测笔记本屏幕的开关,实现合盖休眠的功能
干簧管是干式舌簧管的简称,是一种有触点的无源电子开关元件,具有结构简单,体积小便于控制等优点。
其外壳一般是一根密封的玻璃管,管中装有两个铁质的弹性簧片电板,还灌有一种叫金属的惰性气体。平时,玻璃管中的两个簧片是分开的。
- 当有磁性物质靠近玻璃管时,在磁场磁力线的作用下,管内的两个簧片被磁化而互相吸引接触,簧片就会吸合在一起,使结点所接的电路连通。
- 外磁力消失后,两个簧片由于本身的弹性而分开,线路也就断开了。
- 因此,作为一种利用磁场信号来控制的线路开关器件,干簧管可以作为传感器用于计数、限位等等场景 (在安防系统中主要用于门磁、窗磁的制作),同时还被广泛使用于各种通信设备中。
- 在实际运用中,通常用磁铁控制这两根金属片的接通与否,所以又被称为 “磁控管”
2.1 电路图
电路图中 Reed Switch(干簧管)
部分,其实就是原理部分提到的密封玻璃管,内部有两个铁片
- 当干簧管部分接触到磁性物体时,两个铁片吸附在一起,电路接通,
DO
管脚输出低电平。同时电路接通,D2 LED
点亮 - 没有检测到磁性物体,两个铁片断开,电路断开,
DO
管脚直连VCC
,输出高电平
2.2 接线图
类似这种通过一个传感器模块来控制双色 LED 的实验我们已经做过好几个了。它们的接线方式基本是一样的👍
树莓派 | T 型转接板 | 干簧管 |
---|---|---|
GPIO 0 | GPIO 17 | DO |
5V | 5V | VCC |
GND | GND | GND |
树莓派 | T 型转接板 | 双色 LED |
---|---|---|
GPIO 1 | GPIO 18 | R (中间) |
GND | GND | GND(-) |
GPIO 2 | GPIO 27 | G(S) |
当接线完毕后,PWM-LED
指示灯常亮
即便没有开启控制程序,当干簧管检测到磁性物体时,DO-LED
指示灯也会亮起
3. 代码示例
和之前控制双色 LED 的代码相同,我们使用 pinMode
设置干簧管传感器为输入模式,将红绿 LED 的管脚都设置成输出模式
- 当
digitalRead
检测到 0(低电平)时,将双色 LED 设置为红色 - 当
digitalRead
检测到 1(高电平)时,将双色 LED 设置成绿色
1 | //干簧管控制双色LED实验 |
更详细的函数解释,可以参考之前实验 6~8 的博客👉专栏链接
3.1 编译代码
在 linux 控制台下输入以下语句,编译生成可执行文件 TEST
1 | gcc -Wall 10reedswitch.c -o TEST -lwiringPi |
3.1.1 GCC 中 - Wall 指令的作用
上一篇博客中,我在编译代码的时候就没有使用 - Wall 指令,但程序依旧编译成功了
实际上,-Wall
指令的作用是让 GCC 编译器显示程序的警告
- 编译器在程序中检查出错误时,会终止编译
- 编译器在程序中检查出警告时,依旧能编译生成可执行文件
windows 系统中的 VS 编译器下,也有错误 / 警告两种报错方式
之前我就没有弄明白 Linux 环境下这两个之间的区别,导致我认为 gcc 编译器中不支持用 ==
直接比较常量字符串(然后就把它改成了 strcmp,当然这样也没错哈)
如果我们在编译的时候去掉 -Wall
指令,就不会显示这两个警告
更多关于
-Wall
指令的知识,大家可以参考这位 dalao 的博客学习一二👉传送门
3.2 实验效果
./TEST
运行可执行文件,查看实验结果
检测到磁性物质时,屏幕打印 Detected Magnetic Material!
没有检测到的时候,打印 No Detected Magnetic Material!
结语
本次实验到这里就结束啦,希望对你学习树莓派的操作有一些帮助
学校高数和大物欠下的学习债终于补上了,可以摸🐟了
- 最新
- 最热
- 最早
- 作者
点击重新获取 | 打开控制台