基于传感器开发套件玩转树莓派编程 pdf,树莓派控制传感器

  基于传感器开发套件玩转树莓派编程 pdf,树莓派控制传感器

  文章目录前言1。实验设备。实验原理2.1电路图2.2接线图3。代码示例3.1 GCC 3 . 1 . 1实验效果结论前言中-Wall指令的作用好像没什么可说的。先开始今天的实验内容吧。

  关注本专栏,和我一起学习树莓派开发板30的经典实验!

  c语言代码,0基础分析!

  你还在等什么?心动不如行动!为什么我不关注本专栏的代码仓库?覆盆子-做法

  1.实验设备:草莓派开发板40p软排线T型转接板,面包板簧片开关传感器模块,若干双色LED跳线

  顶部:簧片开关传感器;下部:双色LED

  2.实验原理簧片开关传感器也是一种用来检测磁场的传感器。在常用的程控交换机、复印机、洗衣机、

  冰箱、相机、消毒橱柜、门磁、窗磁、电磁继电器、电子衡器、液位计、煤气表、水

  等产品得到了很好的应用。

  个人理解:干簧管传感器的作用和霍尔元件类似,只是后者更小。

  笔记本电脑里有一个霍尔元件,用来检测笔记本屏幕的开关,实现关闭和睡眠的功能。

  是干簧管干簧管的缩写,是一种带触点的无源电子开关元件。它具有结构简单、体积小、易于控制的优点。

  它的外壳通常是一个密封的玻璃管,里面装有两块铁质弹性簧片和一种叫做金属的惰性气体。通常,玻璃管中的两个簧片是分开的。

  当一个磁性物质靠近玻璃管时,在磁力线的作用下,管内的两个簧片被磁化并相互吸引,簧片会被吸引在一起,从而使连接到节点的电路接通。外部磁力消失后,两个簧片因自身弹性而分离,电路断开。因此,干簧管作为一种受磁场信号控制的线路开关器件,可以作为计数、限位等场景的传感器(主要用于制作安防系统中的门磁、窗磁),也广泛应用于各种通讯设备中。在实际中,磁铁通常用来控制两个金属片是否连接,所以也叫“磁控管”。2.1电路图中的干簧管部分其实就是原理部分提到的密封玻璃管,里面有两个铁片。

  当簧片开关部分接触到磁性物体时,两个铁片被吸引在一起,电路接通,DO引脚输出低电平。同时接通电路,D2 LED灯亮,检测不到磁性物体,两个铁片断开,电路断开,DO引脚直接接VCC,输出高电平。

  2.2接线图类似于这个用一个传感器模块控制双色LED的实验,我们做过几次实验。它们基本上是以同样的方式连接的?

  树莓派

  t形适配器

  簧片开关

  GPIO 0

  GPIO 17

  防御命令(Defense Order)

  5V

  5V

  VCC

  地线

  地线

  地线

  树莓派

  t形适配器

  双色LED

  GPIO 1

  GPIO 18

  r(中间)

  地线

  地线

  GND(-)

  GPIO 2

  GPIO 27

  一般事务人员

  接线完成后,PWM-LED指示灯会一直亮起。

  即使没有打开控制程序,当簧片开关检测到磁性物体时,DO-LED指示灯也会亮起。

  3.该代码示例与前面控制双色LED的代码相同。我们使用pinMode将簧片开关传感器设置为输入模式,并将红色和绿色led的引脚设置为输出模式。

  当digitalRead检测到0(低电平)时,将双色LED设置为红色。当digitalRead检测到1(高电平)时,将双色LED设置为绿色。//干簧管控制双色LED实验。

  #包含wiringPi.h

  #包含stdio.h

  #define makerobo_ReedPin 0 //簧片开关传感器引脚定义

  #define makerobo_Rpin 1 //红色LED模块引脚定义

  #define makerobo_Gpin 2 //绿色LED模块引脚定义

  //双色LED控制功能

  void double_colorLED(char* color)

  {

  pinMode(makerobo_Rpin,OUTPUT);//红色LED引脚设置为输出模式

  pinMode(makerobo_Gpin,输出);//绿色LED引脚设置为输出模式

  if(color== makerbored )//点亮红色LED灯

  {

  digitalWrite(makerobo_Rpin,高);

  digitalWrite(makerobo_Gpin,低);

  }

  else if(color== makerobogreen )//打开绿色LED。

  {

  digitalWrite(makerobo_Rpin,低);

  digitalWrite(makerobo_Gpin,高);

  }

  其他

  printf(“双色LED错误”);

  }

  int main()

  {

  //当初始连接失败时,将消息打印到屏幕上。

  if(wiringPiSetup()==-1){

  printf(安装wiringPi失败!);

  返回1;

  }

  //簧片开关传感器引脚设置为输入模式。

  pinMode(makerobo_ReedPin,INPUT);

  double _ colorLED( makeroboGREEN );//点亮绿色LED模块

  while(1){

  //簧片开关传感器抖动消除处理

  if(0==digital read(make robo _ reed pin))

  {//簧片开关传感器检测到磁性物质

  延迟(10);//延迟去抖动

  if(0==digital read(make robo _ reed pin)){

  double _ colorLED( makeroboRED );//点亮红色LED灯

  printf(检测到磁性物质!\ n’);//打印出检测到的磁性物质。

  }

  }

  else if(1==digital read(make robo _ reed pin))

  {//簧片开关传感器检测不到磁性物质。

  延迟(10);//延迟去抖动

  if(1==digital read(make robo _ reed pin)){

  而(!digital read(make robo _ reed pin));

  double _ colorLED( makeroboGREEN );//点亮绿色LED灯

  printf(未检测到磁性物质!\ n’);//打印出没有检测到磁性物质

  }

  }

  }

  返回0;

  }

  关于函数更详细的解释,可以参考之前实验6~8的博客?列链接

  3.1编译代码在linux控制台下输入以下语句,编译生成可执行文件TEST。

  gcc -Wall 10簧片开关中-Wall指令的作用。c-o测试-lwiringpi 3.1.1在上一篇博客中,我在编译代码时没有使用-wall指令,但程序仍然编译成功。

  实际上-Wall指令的作用是让GCC编译器显示程序的警告。

  当编译器检测到程序中有错误时,它将终止编译。当编译器在程序中检测到警告时,它仍然可以编译并生成可执行文件。在windows系统的VS编译器下,也有两种报错方式:错误/警告。

  之前在Linux中不明白两者的区别,导致我认为gcc编译器不支持用==直接比较常量字符串(然后改成strcmp,当然是对的)

  如果我们在编译时删除-Wall指令,这两个警告将不会显示。

  想了解更多关于-Wall指令的信息,你可以参考这个dalao博客来了解一二?入口

  3.2实验结果。/TEST运行可执行文件以查看实验结果。

  检测到磁性物质时,屏幕会打印检测到的磁性物质!

  未检测到时,打印未检测到磁性材料!

  结论这个实验到此结束。希望对你学习草莓派的操作有帮助。

  高数和大物欠下的学校学习债终于补上了。你能摸到它吗?从高处或远处观看

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 树莓派pip3换源,树莓派pi3b+
  • 树莓派网络配置文件,树莓派上网设置
  • 基于树莓派人脸识别,基于树莓派的人脸识别技术
  • 树莓派安装系统,树莓派 电视系统
  • 树莓派4b温控风扇安装方法,树莓派4散热风扇安装
  • 树莓派数据采集卡,以树莓派为例的数据采集过程介绍
  • 树莓派4 b,玩转树莓派4B新手入门手册pdf
  • 树莓派安装拼音输入法,树莓派中文输入法安装
  • 树莓派tcp通信,树莓派多线程编程
  • 树莓派4b刷ubuntu,树莓派4b ubuntu18.04
  • 树莓派i2s接口,树莓派增加i2c
  • 树莓派检测不到i2c设备,树莓派温度监控
  • 树莓派4b 软路由,树莓派4b做软路由能发挥多少宽带
  • 树莓派打开wifi的命令,树莓派命令行连接wifi
  • can总线 树莓派,树莓派和单片机串口通信
  • 留言与评论(共有 条评论)
       
    验证码: