资讯详情

【树莓派C语言开发】实验05:激光传感器模块

文章目录

  • 前言
  • 1.实验器材
  • 2.实验原理
    • 2.1电路图
    • 2.2接线图
  • 3.代码示例
    • 3.1Genay编译器
    • 3.2LinuxGcc编译器
  • 结语

前言

在我手头的信息中,我说了一堆与本实验相关但无关的内容

还得自己找资料确认我的猜想,具体是什么,再往下看!

关注这个专栏,和我一起学习树莓派开发板

  • 还在等什么?心不如行动!点我注意

  • 本专栏代码仓库:Raspberry-practice


1.实验器材

2.实验原理

测距常用于激光传感器。、由激光检测器和测量电路组成。其优点是无接触远距离测量,速度快,精度高,量程大。

激光传感器模块由一个激光传感器模块组成激光二极管头和一个组成

IMG_20220407_163028

激光传感器工作时,激光发射二极管对准目标发射激光脉冲。激光在目标反射后向各个方向散射。部分散射光返回,雪崩光电二极管被光学系统接收成像。它是一种具有放大功能的光学传感器,因此它可以检测到极其微弱的光信号,并将其转换为相应的电信号。


书中介绍了这么多,好像这个小家伙集成了上面三个传感器。刚看书的时候,,这么小的东西可以测距吗?只有找到自己的信息,才能自己测距?,它就是一个罢了。

作为一个可爱的新人,书中的内容确实误导了我,需要自己查阅资料,有点浪费时间。

2.1电路图

2.2接线图

树莓派 T型转接板 激光传感器模块
GIPO 0 GPIO 17 SIG(S)
5V 5V VCC
GND GND GND(-)

实物接线图如下,本实验接线比较简单

右上角的它与本实验无关


3.代码示例

同样,给出C语言代码。

#include <wiringPi.h> #include <stdio.h>  #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; } 

代码中的两个在上篇实验博客中有讲解👉传送

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!关注,为什么不关注!

标签: 激光传感器激光头红色620nm二极管905脉冲激光二极管模块450nm二极管cd22激光传感器9370c型传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台