嵌入式技术论坛
直播中

李俊

7年用户 1304经验值
私信 关注
[经验]

瑞萨RA2L1结合红外传感器控制不同的LED灯

  授人以鱼不如授人以渔,我们今天就来说一下瑞萨 RA2L1结合红外传感器控制不同的LED灯。
  主角介绍完毕就是配角出场,就是我们这个既简单又便宜量又足的红外传感器。
  它的原理就是通过一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),并且可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3V-5V。
  它有三只脚,1只就是VCC,1只就是GND,另一个就是OUT-IO,这个只需要接一个GPIO,然后监测它输出的是高电平还是低电平,当低电平就是检测到障碍物。
2.jpg
  看开发板的电路图,我们得知J1的11和12分别是VCC和GND,分别对接上红外传感器vcc和GND,下面就是关键的OUT-IO这个就是红外传感器返回的数据(高低电平),这个我们在开发板找个闲置的GPIO进行接收,这里J1的29(P303)脚作为接收的GPIO,物理线路搞掂。
  我们就代码了,因为GPIO是最容易对接的,那么我们代码也很简单。首先声明接口,然后读取判断就可以了,具体代码如下:
  #define infrared “P303”//定义引脚
  static int out; //初始变量
  out = rt_pin_read(MOMM_pin) ? PIN_LOW : PIN_HIGH;
  if (PIN_LOW == out){
  rt_kprintf(“n 存在障外物n”);
  }else{
  rt_kprintf(“n 一路畅通n”);
  }
  最后扫一下盲,什么是GPIO就是通用输入/输出端口,通俗地说,就是一些CPU的引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平;就是0:1输入和输出。



原作者:jmtgj

更多回帖

发帖
×
20
完善资料,
赚取积分