#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);//设置LCD地址为0x27和0x3F为20字符和2行显示
#define LDR_PIN 2//光敏传感器引脚
int redPin= 7;
int greenPin = 6;
int bluePin = 5;
int Intensity =0;//定义此变量
#define AD5 A5//定义模拟口A5
void setup() {
pinMode(LDR_PIN, INPUT);
lcd.init();
lcd.backlight();
while (!Serial) {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
}
void loop() {
Intensity = analogRead(AD5); //读取模拟口AD5的值,存入Intensity变量
Serial.print("Intensity = "); //串口输出"Intensity = "
Serial.println(Intensity); //串口输出Intensity变量的值,并换行
delay(500); //延时500ms
if(Intensity>=800){
digitalWrite(redPin,HIGH);
digitalWrite(greenPin,LOW);
digitalWrite(bluePin,LOW);
if(Intensity<800 && Intensity>=400){
digitalWrite(redPin,LOW);
digitalWrite(greenPin,HIGH);
digitalWrite(bluePin,LOW);
if(Intensity>=100 && Intensity<400){
digitalWrite(redPin,LOW);
digitalWrite(greenPin,LOW);
digitalWrite(bluePin,HIGH);
}
else{
digitalWrite(redPin,LOW);
digitalWrite(greenPin,LOW);
digitalWrite(bluePin,LOW);
}
}else{
digitalWrite(redPin,LOW);
digitalWrite(greenPin,LOW);
digitalWrite(bluePin,LOW);
}
}else{
digitalWrite(redPin,LOW);
digitalWrite(greenPin,LOW);
digitalWrite(bluePin,LOW);
}
}
lcd.setCursor(2, 0);
lcd.print("Room: ");
if (digitalRead(LDR_PIN) == LOW) {
lcd.print("Light!");
} else {
lcd.print("Dark ");
}
delay(100);
}
void setColor(int redValue, int greenValue, int blueValue) {
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
}