资讯详情

【树莓派C语言开发】实验11:U型光电传感器

文章目录

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

前言

这个实验类似于上一个博客的实验。我们应该学会使用它U型光电传感器来控制双色LED

QQ图片20220419104557

这些都是基础实验中不可或缺的内容,因为我们需要学会交叉使用不同的传感器来控制更复杂的电路。那些是学习真正的意义

无论如何,继续努力!

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

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

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

1.实验器材

IMG_20220419_105013

上:U型光电传感器;下:双色LED


2.实验原理

U光电传感器是一种红外感应光点产品。,分别位于U形槽的两侧形成光轴。当检测到物体通过时U型槽并阻断光轴时,就能产生对应的电信号。

2.1电路图

以下是U光电传感器模块的电路图

  • 当无障碍物被阻挡时,D1\D2-LED都亮起,OUT低电平0检测到管脚
  • 当障碍物被阻挡时,D1-LED熄灭,OUT管脚检测到高电平1

11.U 型光电传感器实验原理图

2.2接线图

树莓派 T型转接板 U型光电传感器
GPIO 0 GPIO 17 OUT
5V 5V VCC
GND GND GND
树莓派 T型转接板 双色LED
GPIO 1 GPIO 18 R(中间)
GND GND GND(-)
GPIO 2 GPIO 27 G(S)

image-20220419111105684

image-20220419113059634

但是我手上的传感器没有两个指示灯。只有一个,当传感器被阻挡时,指示灯会被阻挡

光影魔术手拼图


3.代码示例

//U型光电传感器实验#include  <wiringPi.h>#include  <stdio.h>#define  makerobo_LBPin  0  // U光电传感器管脚定义#define  makerobo_Rpin  1  // 红色LED定义模块管脚#define  makerobo_Gpin  2  // 绿色LED定义模块管脚// 双色LED控制函数void  double_colorLED(int  color){
     	pinMode(makerobo_Rpin, OUTPUT); // 红色LED管脚设置为输出模式	pinMode(makerobo_Gpin, OUTPUT); // 绿色LED管脚设置为输出模式		if (color == 0){
                     // 点亮红色LED灯		digitalWrite(makerobo_Rpin, HIGH);		digitalWrite(makerobo_Gpin, LOW);	}	else if (color == 1){
               // 点亮绿色LED灯		digitalWrite(makerobo_Rpin, LOW);		digitalWrite(makerobo_Gpin, HIGH);	}}// 有物体挡住时,打印出提示信息void makerobo_Print(int x){
     	if ( x == 0 ){
     		printf("makerobo Light was blocked!\n");	}	else{
     		printf("clear!\n");// 没有挡住	}}// 主函数int main(){
            //初始化连接失败时,将消息打印到屏幕	if(wiringPiSetup() == -1){
      		printf("setup wiringPi failed !");		return 1; 	}    //U型光电传感器Pin设置为输入模式	pinMode(makerobo_LBPin, INPUT);	int clb_temp=0;	while(1){
     		//U型光电传感器有无物体挡住信息检测		if ( digitalRead(makerobo_LBPin) == 0 ){
       			clb_temp = 1;//低电平,代表没有阻挡		}		if ( digitalRead(makerobo_LBPin) == 1 ){
     			clb_temp = 0;//高电平,代表被阻挡		}		double_colorLED(clb_temp); // 控制双色LED灯显示		makerobo_Print(clb_temp);  // 信息打印	}	return 0;}

3.1LinuxGCC编译代码

在控制台输入以下指令,编译出可执行文件TEST

gcc -Wall 11photoeletricsensor.c -o TEST -lwiringPi

执行该文件,当传感器被阻挡时,双色LED变红,屏幕打印makerobo Light was blocked!

不被阻挡时,双色LED亮绿灯,屏幕打印clear

GIF

3.2 效果

Screenshot_2022_0419_115746


结语

本次实验到这里就结束啦!如果有什么问题,欢迎在评论区提出哦!

QQ图片20220419103136

标签: 光开关传感器光电传感器感应开关

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

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