文章目录
- 前言
- 1.实验器材
- 2.实验原理
-
- 2.1电路图
- 2.2接线图
- 3.代码示例
-
- 3.1Genay编译器
- 3.2LinuxGcc编译器
- 结语
前言 我手头的资料上,又说了一堆和本实验相关但又毫不相关的内容
还是得自己找资料才能确认我的“猜想”,具体是啥,且往下细看!
关注本专栏,和我一起学习树莓派开发板30+经典实验!1.实验器材
C语言代码,0基础剖析!
- 还等什么心动不如行动!点我关注
- 本专栏代码仓库:Raspberry-practice
文章图片
- 树莓派开发板
- 40p软排线+T型转接板+面包板
- 激光传感器模块(其实只是一个发射器)
- 跳线若干
激光传感器模块由一个650nm红色激光二极管头和一个电阻器组成
文章图片
激光传感器工作时,先由激光发射二极管对准目标发射激光脉冲。经目标反射后激光向各方向散射。部分散射光返回到传感器接收器,被光学系统接收后成像到雪崩光电二极管上。雪崩光电二极管是一种内部具有放大功能的光学传感器,因此它能检测极其微弱的光信号,并将其转化为相应的电信号。
书上介绍了这么一堆,弄的好像这个小家伙就集成了上面3个传感器一样。我刚看书的时候,一脸懵逼,这么小一个玩意就能测距?自己找了资料才能勉强确认,它就是一个单纯的激光发射器罢了。
作为一个萌新,书上的内容的确对我产生了误导,还需要自己查阅资料,有点浪费时间。2.1电路图
文章图片
文章图片
2.2接线图
树莓派 | T型转接板 | 激光传感器模块 |
---|---|---|
GIPO 0 | GPIO 17 | SIG(S) |
5V | 5V | VCC |
GND | GND | GND(-) |
文章图片
实物接线图如下,本实验接线比较简单
右上角的红黑线是接给树莓派散热风扇的,和本实验无关
文章图片
3.代码示例 老样子,给出C语言代码。
#include
#include #define makerobo_LaserPin 0//定义激光传感器管脚int main()
{
//初始化连接失败时,将消息打印到屏幕
if(wiringPiSetup() == -1){
printf("setup wiringPi failed !");
return 1;
}
pinMode(makerobo_LaserPin, OUTPUT);
// 激光传感器设置为输出模式
int k=2;
while(k--)
{
digitalWrite(makerobo_LaserPin, HIGH);
//打开激光传感器
delay(1000);
//延时1s
digitalWrite(makerobo_LaserPin, LOW);
//关闭激光传感器
delay(1000);
//延时1s
}
digitalWrite(makerobo_LaserPin, LOW);
//循环结束后,恢复关闭状态
delay(500);
return 0;
}
代码中的两个wiringPi函数在上篇实验博客中有讲解传送3.1Genay编译器 老样子,三板斧(其实这句话都是从之前的博客复制过来的)
文章图片
在Geany里面用生成命令引用wiringPi库效果如下,激光发射器在延时后不断开关
在Geany的build(生成)-->set build commands(设置生成命令)中输入以下指令 gcc -Wall -c "%f" -lwiringPi
请不要将激光发射器对准任何人!伤眼!!!
文章图片
3.2LinuxGcc编译器
为了防止Linux-Gcc环境中无法正常终止程序,建议不要使用while(1)
死循环。你可以将k设置得大一点,方便观察实验结果
cd
打开对应文件路径,ls
显示当前路径下的文件输入以下指令编译代码,生成可执行文件TEST
gcc -Wall 05laser.c -o TEST -lwiringPi
./TEST
运行可执行文件文章图片
如果没有报错,那就是编译成功了,你可以观察到相同的实验结果
结语 欸这博客都看到这里了,怎么不点关注啊?
就算你不想关注我,那就关注一下专栏嘛!传送门
TNND!关注,为什么不关注!
【没事就吃树莓派|【树莓派C语言开发】实验05(激光传感器模块)】
文章图片
推荐阅读
- 总结|关于c++中的临时变量
- 竞赛习题|蓝桥杯第十二届个人省赛C/C++B组(欢迎大家在底部评论留下自己疑问)
- C|C进阶?- 01数据在内存中的存储形点
- C语言进阶|【C语言进阶】从入门到入土(数据的存储)
- C语言重难点进阶|数据的存储【C进阶】
- c语言|C语言进阶---数据存储——浮点型在内存中的存储
- C语言进阶|【C语言进阶2——数据的存储(2)- 整形提升】
- C语言进阶|【C语言进阶1——数据的存储(1)】
- C语言基础|【C语言基础9 ——操作符详解(2)】