首页 > 代码库 > NYOJ 171 聪明的kk

NYOJ 171 聪明的kk

今天测试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
}