您当前位置: Arduino >  魔术光杯模块

扫描二维码,快速下载本应用说明文档(免费)

魔术光杯模块      

下载: 10  点击: 5072


大小:0.56KB 价格:0.00元 更新日期:2016-06-18 开发者:小R科技
  

魔术光杯模块
    • 应用名称
    • 所属分类
    • 更新时间
    • 立即下载
    • 魔术光杯模块
    • Arduino
    • 2016-06-18
【魔术光杯模块】 应用介绍

Arduino-魔术光杯

 
实验概述
      水银开关多了一个独立的LED,俩组可以组成魔术光杯,从本实验可以学到不同的传感器可以组合成不同的玩法。

实验原理
      利用水银开关来检测模块的倾斜状态,用PWM波来控制独立的LED,使其可以有由亮暗的不同程度的变化,俩者结合当水银开关检测倾斜时,LED灯会越来越暗,另一个灯会越来越亮,使之像心跳一样!

 
实验步骤
      将魔术光杯其中一个模块的S脚接arduino电源板上面的A5引脚,LED控制接数字引脚3(实现PWM功能)另一个模块 S接A4,LED控制数字引脚4。

 

代码解析
      首先我们定义了俩个led和模块引脚分别为3,4,A5和A4,setup()里面将这四个个初始化为输入和输出,主循环里面,我们做了俩个判断,当读取到A模块引脚有电平信号时,LED的PWM信号不是最大时,PWM信号增加,读取到模块B引脚有电平信号时,LED的PWM信号不是最小时,PWM信号减小,然后将PWM信号赋值到LED A 将PWM信号的反差值赋值到LED B,俩个LED此消彼长。

Int ledpinA = 3;
Int ledpinB = 4;
Int buttonpinA = A5;
Int buttonpinB = A4;
Int buttonstateA = 0;
Int buttonstateB = 0;
Int brightness = 0;
Void setup()
{
pinMode(ledpinA,OUTPUT);
pinMode(ledpinB,OUTPUT);
pinMode(buttonpinA,INPUT);
pinMode(ledpinB,INPUT);
}
Void loop()
{
buttonstateA  = digitalRead(buttonpinA);//读取模块A
If(buttonstateA == HIGH && brightness !=255)//当模块A检测到有信号时,并且亮度不是最大时,亮度值增加。
{
brightness ++;
}
buttonstateB  = digitalRead(buttonpinB);
If(buttonstateB == HIGH && brightness != 0)//当模块A检测到有信号时,并且亮度不是最小时,亮度值减小。
 
{
brightness --;
}
analogWrite(ledpinA,brightness );//A慢渐暗
analogWrite(ledpinB,255-brightness );//B慢渐亮
Delay(25);
//俩者相加的和为255,亮度此长彼消的关系
}


实验现象
      打开arduino开发板的开关,上传代码后,当一个水银开关倾斜时,自己的LED灯会越来越暗,另一个灯会越来越亮,像心跳一样!

 
 

网友评论仅供网友表达个人看法,并不表明 小R科技 Robots-Store机器人应用商城 同意其观点或证实其描述
昵称: 验证码: