具体讲解
KY-027魔术灯杯模块是一组两块板,每块板都有一个led和一个水银倾斜开关。使用PWM驱动每个模块上的LED,可以实现倾斜时将光从一个模块“神奇地”传递到另一个模块的效果。
KY-027是一对模块,每个模块由水银开关,LED和10kΩ电阻组成。每个板都有一个引脚来控制开关,LED,电源和地
电路连接
使用下图连接每个模块。
KY-027(A) Arduino的
G 地线
- 5伏
小号 8
大号 9
KY-027(B) Arduino的
G 地线 - 5伏
小号 7
大号 6代码实现
在这个Arduino草图中,我们将使用两个KY-027模块来创建魔术灯杯效果。每个模块中的水银开关提供一个数字信号,该信号用于使用PWM来调节LED的亮度。倾斜模块会降低一个模块的亮度,同时增加另一个模块的亮度,从而产生幻觉地从一个模块传递到另一个模块的光幻觉。
int ledPinA = 9;
int switchPinA = 8;
int switchStateA = 0;
int ledPinB = 6;
int switchPinB = 7;
int switchStateB = 0;
int brightness = 0;
void setup()
{
pinMode(ledPinA, OUTPUT);
pinMode(ledPinB, OUTPUT);
pinMode(switchPinA, INPUT);
pinMode(switchPinB, INPUT);
}
void loop()
{
switchStateA = digitalRead(switchPinA);
if (switchStateA == HIGH && brightness != 255)
{
brightness ++;
}
switchStateB = digitalRead(switchPinB);
if (switchStateB == HIGH && brightness != 0)
{
brightness --;
}
analogWrite(ledPinA, brightness); // A slow fade out
analogWrite(ledPinB, 255 - brightness); // B slow bright up
delay(20);
}