【Arduino13】倾斜传感器与火焰传感器控制RGB三色灯实验

硬件准备

RGB三色灯:1个

火焰传感器:1个

倾斜传感器:1个

220欧电阻:3个

1K电阻:2个

杜邦线:若干

面包板:1个

硬件连线

1、就RGB三色灯、倾斜传感器、火焰传感器插入面包板

2、用三根杜邦线和三个220欧电阻分别将RGB三色灯的三色极接到11号(红色)、10号(绿色)、9号(蓝色)引脚

3、用一根杜邦线将RGB三色灯的正极接到带加号的横排插口上

4、用两根杜邦线分别将倾斜传感器的两边接入接到竖排插口和带加号的横排插口

5、将1k电阻的一端接到倾斜传感器的一端

6、用杜邦线将1k电阻的另一端接到带减号的横排插口上

7、用杜邦线将倾斜传感器与1k电阻相连的那端接到A0接口;

8、用杜邦线将火焰传感器的负极接到 带加号的横排插口

9、用杜邦线将火焰传感器的正极接到 A5 引脚

10、用电阻将火焰传感器的另一端接到到带减号的横排插口上

11、用杜邦线将GND接口接到带减号的横排插口上

12、用杜邦线将5V接口接到带加号的横排插口上

软件程序

int redpin = 11;//红色引脚
int greenpin = 10;
int bluepin = 9;

int redval = 0;//红色变量
int blueval = 0;
int greenval = 0;

int flamepin = A5;//定义火焰传感器引脚
int tiltpin = A0;//定义倾斜传感器引脚

int flameval = 0;//存储火焰传感器的模拟值
int tiltval = 0;//存储倾斜传感器的模拟值

void setup(){
  Serial.begin(9600);
  pinMode(redpin,OUTPUT);
  pinMode(bluepin,OUTPUT);
  pinMode(greenpin,OUTPUT);
}

void loop(){
  flameval = analogRead(flamepin);//获取火焰传感器的模拟值并赋值给flameval
  tiltval = analogRead(tiltpin);//获取倾斜传感器的模拟值并赋值给tiltval
  Serial.print(flameval);
  Serial.print(" ");
  Serial.print(tiltval);
  Serial.println(" ");
  if ( (flameval>51) && (tiltval==0) ){
    redFlicker();//红灯闪烁
  }
  else if (flameval > 51){
    RED();//红灯
  }
  else if (tiltval == 0){
    YELLOW();//黄灯
  }
  else{
    runLight(0,0,0);//灯灭
  }
}

void runLight(int red, int green, int blue){
  analogWrite(redpin,255-red);
  analogWrite(bluepin,255-blue);
  analogWrite(greenpin,255-green);
}

void redFlicker(){
  runLight(255,0,0);
  delay(1000);
  runLight(0,0,0);
  delay(1000);
}

void RED(){
  runLight(255,0,0);
}

void YELLOW(){
  runLight(255,255,0);
}

成品展示视频

当只倾斜时,黄灯亮;当只有火焰时,红灯亮;当又倾斜又着火时,红灯闪烁

【Arduino13】火焰传感器与倾斜传感器联合控制三色灯

总结

通过设计并完成这个实验,我能够熟练地运用倾斜传感器和火焰传感器,并复习了RGB三色灯的使用。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值