今天测试PWM做呼吸灯,以及用光敏电阻做达文西呼吸灯,并输出串口光敏AD值,可作为智能家居中,卧室慢慢亮起的地灯,或根据室内光线调节光亮等效果。
呼吸灯:
void setup ()
{
pinMode(13,OUTPUT);
}
void loop()
{
for (int a=1; a<=100;a++) //循环语句,控制PWM亮度的增加
{
analogWrite(13,a);
delay(20); //当前亮度级别维持的时间,单位毫秒
}
for (int a=100; a>=1;a--) //循环语句,控制PWM亮度减小
{
analogWrite(13,a);
delay(20); //当前亮度的维持的时间,单位毫秒
}
delay(500); //完成一个循环后等待的时间,单位毫秒
}
左边是LED呼吸灯,右边是光敏电阻。
#define ADpin A0
#define LED 13
int ADBuffer = 0;
void setup()
{
pinMode(LED,OUTPUT);
Serial.begin(9600); //波特率9600
}
void loop()
{
ADBuffer = analogRead(ADpin); //读取AD值
Serial.print("GMAD = ");
Serial.println(ADBuffer);
if(ADBuffer < 180) //ADBuffer值大于设定值,相当于光照强度小于设定值
{
for (int a=1; a<=100;a++) //循环语句,控制PWM亮度的增加
{
analogWrite(LED,a);
delay(20); //当前亮度级别维持的时间,单位毫秒
}
for (int a=100; a>=1;a--) //循环语句,控制PWM亮度减小
{
analogWrite(13,a);
delay(20); //当前亮度的维持的时间,单位毫秒
}
delay(500);
}
else
{
digitalWrite(LED,LOW); //关闭LED
}
delay(500); //延时500ms
}