求怎样才能将多个传感器连接在一起!!如何更改代码!!-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 610|回复: 4

[未解决] 求怎样才能将多个传感器连接在一起!!如何更改代码!!

[复制链接]
发表于 2022-4-18 13:01 | 显示全部楼层 |阅读模式
本帖最后由 TETSUYA 于 2022-4-18 13:12 编辑

将MQ-2烟雾传感器和火焰传感器连接在一起


这是MQ-2烟雾传感器的代码
int Led=11;        //定义LED灯控制引脚  
int Buzzer_pin=13; //定义有源蜂鸣器引脚
int SensorPin=12; //定义传感器引脚
int val=0;        //定义数字变量val
void setup()
{  
  pinMode(Led,OUTPUT);      //定义LED 为输出接口  
  pinMode(Buzzer_pin,OUTPUT);
  pinMode(SensorPin,INPUT);//定义传感器为输入接口
  Serial.begin(9600);
}  
void loop()
{  
  val=digitalRead(SensorPin);//将数字接口的值读取赋给val
  Serial.println(val);
  if(val==0)
     {
       digitalWrite(Led,HIGH);
      digitalWrite(Buzzer_pin,HIGH);
     }
  else
     {  
       digitalWrite(Led,LOW);
       digitalWrite(Buzzer_pin,LOW);
     }
}


这是火焰传感器的代码
int fire_pin = 12 ;     // 定义火灾传感器引脚的控制引脚为12
int buzzer = 13 ;        // 定义蜂鸣器引脚
int LED_PIN = 11;       //定义LED灯控制引脚
int val = 0;
int count = 0 ;
void setup()
{
  pinMode(buzzer, OUTPUT);
  pinMode(LED_PIN, OUTPUT);
  pinMode(fire_pin, INPUT);
  Serial.begin(9600);
  digitalWrite(buzzer, LOW);     // 设置蜂鸣器的初始状态为保持安静
}
void loop()
{
  val = digitalRead(fire_pin);    // 读取火焰传感器引脚的电平信号
  Serial.println(val);
  if ( val == 0 )             // 判断火焰传感器信号是否达到阀值
  {
    count++ ;
  }
  else
  {
    count = 0 ;
  }
  if ( count >= 5 )             //判断有火灾信号的次数是否达到5次
  {
    digitalWrite(buzzer , HIGH );
    digitalWrite(LED_PIN , HIGH );
  }
  else
  {
    digitalWrite(buzzer , LOW );   // disable an alarm
    digitalWrite(LED_PIN , LOW );
  }
  delay(500);
}

怎样更改代码才能同时控制两个传感器啊,求解!!!
希望有大佬帮忙解决一下,孩子毕设实在是不会了,球球了!!!

发表于 2022-4-18 15:54 | 显示全部楼层
  1. int Led=11;        //定义烟雾LED灯控制引脚  
  2. int Buzzer_pin=13; //定义有源蜂鸣器引脚
  3. int SensorPin=12; //定义传感器引脚
  4. int val=0;        //定义数字变量val
  5. int fire_pin = 10 ;     // 定义火灾传感器引脚的控制引脚为10
  6. int LED_PIN = 9;       //定义火焰LED灯控制引脚为9
  7. int val2 = 0;
  8. int count = 0 ;

  9. void fire()
  10. {
  11.   val = digitalRead(fire_pin);    // 读取火焰传感器引脚的电平信号

  12.   if ( val2 == 0 )             // 判断火焰传感器信号是否达到阀值
  13.   {
  14.     count++ ;
  15.   }
  16.   else
  17.   {
  18.     count = 0 ;
  19.   }
  20.   if ( count >= 5 )             //判断有火灾信号的次数是否达到5次
  21.   {
  22.     digitalWrite(Buzzer_pin , HIGH );
  23.     digitalWrite(LED_PIN , HIGH );
  24.   }
  25.   else
  26.   {
  27.     digitalWrite(Buzzer_pin , LOW );   // disable an alarm
  28.     digitalWrite(LED_PIN , LOW );
  29.   }
  30. }
  31. void setup()
  32. {  
  33.   pinMode(Led,OUTPUT);      //定义LED 为输出接口  
  34.   pinMode(Buzzer_pin,OUTPUT);
  35.   pinMode(SensorPin,INPUT);//定义传感器为输入接口
  36.   

  37.   pinMode(LED_PIN, OUTPUT);  //pin9
  38.   pinMode(fire_pin, INPUT);  //pin10
  39.   digitalWrite(Buzzer_pin, LOW);     // 设置蜂鸣器的初始状态为保持安静
  40.   Serial.begin(9600);
  41. }  
  42. void loop()
  43. {  
  44.   fire();
  45.   val=digitalRead(SensorPin);//将数字接口的值读取赋给val
  46.   Serial.print(val);
  47.   Serial.print("  ");
  48.   Serial.println(val2);
  49.   if(val==0)
  50.      {
  51.        digitalWrite(Led,HIGH);
  52.       digitalWrite(Buzzer_pin,HIGH);
  53.      }
  54.   else
  55.      {  
  56.        digitalWrite(Led,LOW);
  57.        digitalWrite(Buzzer_pin,LOW);
  58.      }
  59. }
复制代码


能力有限,这样可否
 楼主| 发表于 2022-4-18 16:20 | 显示全部楼层
lzs303 发表于 2022-4-18 15:54
能力有限,这样可否

我试了一下,上传成功之后蜂鸣器一直响,LED灯也一直亮,我检查了一下接线是没问题的,不知道是什么原因
发表于 2022-4-18 23:06 | 显示全部楼层
本帖最后由 lzs303 于 2022-4-18 23:13 编辑
TETSUYA 发表于 2022-4-18 16:20
我试了一下,上传成功之后蜂鸣器一直响,LED灯也一直亮,我检查了一下接线是没问题的,不知道是什么原因: ...

9 10 11 12 13都用上了,LED灯现在有两个了哦。还有火焰传感器 烟雾传感器 感应到火焰和烟雾输出的是1还是0?如果是1就把条件判断里面的0改成1.这两传感器我手头没有。
 楼主| 发表于 2022-4-19 11:19 | 显示全部楼层
lzs303 发表于 2022-4-18 23:06
9 10 11 12 13都用上了,LED灯现在有两个了哦。还有火焰传感器 烟雾传感器 感应到火焰和烟雾输出的是1还是 ...

我是连接了两个LED灯的,还有一个蜂鸣器,一个火焰传感器和一个烟雾传感器,串口监视器一直显示的都是0,我实在是不太会这个,找不到是什么原因,不过还是很感谢你帮我,让我前进了一大步,谢谢你哦!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:26 , Processed in 0.070592 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表