本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

DIY标记信标系统

发布时间:2021-06-23
分享到:

DIY标记信标系统

发布时间:2021-06-23
分享到:

该项目使用三个红外传感器作为标记信标站,使用发光二级管和蜂鸣器作为显示器。当对象到达其范围内时,红外传感器检测为题并向Arduino Uno(微控制器)发出信号,当信号到达Arduino UNO时,根据安装在其中的程序处理信号。然后按照程序运行显示在标记灯的显示屏(安装了三个用于视觉指示的发光二极管灯泡(蓝色、琥珀色和白色)和一个用于听觉指示的蜂鸣器)上。显示器在Arduino UNO的输出上工作,以获得正确的指示。

框图:

硬件部件:

电路图:

红外接近传感器连接:
1.将内部标记(传感器)的输出连接到Arduino的数字引脚6。
2.将中间标记(传感器)的输出连接到Arduino的数字引脚7。
3.将外部标记(传感器)的输出连接到Arduino的数字引脚8
4.将NRI输出(无返回指示传感器)连接到Arduino的数字引脚10。
5.将所有传感器的GRD(即接地)连接到Arduino的引脚接地。
6.将所有传感器的VCC连接到Arduino的+5 V引脚

发光二极管的连接:
1.将内部标记(LED)的+ve端连接到arduino的数字引脚4。
2.将中间标记(LED)的+ve端连接到Arduino的数字引脚2。
3.将外部标记(LED)的+ve端连接到Arduino的数字引脚3。
4.将所有外部标记(LED)连接到Arduino的引脚接地。

蜂鸣器连接:
1.将一端连接到Arduino的数字引脚11。
1.将另一终端连接到arduino的Pin GRD。

信标系统:

模型设计:

代码:

int irInner=6,irMiddle=7,irOuter=8,irRunway=10;
int ledInner=4,ledMiddle=2,ledOuter=3;
int sound = 11;              // 用组件的管脚号声明变量
int valIn=0,valMd=0,valOt=0,valRunway=0;
int check1=0, check2=0, check3=0;  // 变量的声明和初始化

void setup()
{
  
  Serial.begin(9600);
  
  pinMode(irInner, INPUT_PULLUP);  // 输入组件
  pinMode(ledInner, OUTPUT);       //输出组件
  
   pinMode(irMiddle, INPUT_PULLUP);
  pinMode(ledMiddle, OUTPUT);
  
   pinMode(irOuter, INPUT_PULLUP);
  pinMode(ledOuter, OUTPUT);

  pinMode(irRunway,INPUT_PULLUP); 
  
}

void loop()
{
 
  valIn=digitalRead(irInner);  //获取传感器的当前状态(高或低)
  valMd=digitalRead(irMiddle);
  valOt=digitalRead(irOuter);
  valRunway=digitalRead(irRunway);


      if(valOt==LOW  )  //如果外部传感器上有障碍物
      {
        digitalWrite(ledOuter, HIGH); //led 亮
        check1=1;
      }
      else
      {
        digitalWrite(ledOuter,LOW); //led关闭
      }

  
      if(valMd==LOW )
      { 
        digitalWrite(ledMiddle, HIGH);
        check1=0;
        check2=1;
      }
      else
      {
        digitalWrite(ledMiddle, LOW);
      }
     
      
      if(valIn==LOW  )
      {  
        digitalWrite(ledInner, HIGH);
        check3=1;
        check2=0;
      } 
      else
      {
        digitalWrite(ledInner, LOW);
      }

       if(valRunway==LOW)
       {
       check3=0;
        delay(6000);  //程序执行延迟6秒
       }

  
      if(check1==1) //
      {
        tone(sound, 1000, 350); //扬声器或蜂鸣器发出声音
        delay(500);
      }
      if(check2==1)
      {
        tone(sounds, 4000, 100);
        delay(150);
        tone(sounds, 1000, 150);
        delay(300);

      }
      if(check3==1)
      {
          tone(sound, 4000, 100);
        delay(150);
      }
      
}

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论