Arduino - 光敏電阻 + 溫溼度感測器 + LCD + LED(photocell + temperature and humidity sensor + LCD +LED)
目的:
將光敏電阻、溫溼度感測器的值顯示於LCD(並讓LCD捲動顯示)
且當溫度感測器到達一個27度C,使一個LED閃爍(未達門檻不閃爍)。
成果:
Arduino Code:
- #include < Wire.h > #include < SPI.h > #include < dht11.h > // DHT11 感測器程式庫
- #include < LiquidCrystal.h >
- const byte LED = 8;
- LiquidCrystal lcd(12, 11, 6, 5, 4, 3);
- dht11 DHT11; // 宣告溫濕度檢測器程式物件
- const byte dataPin = 2;
- int LDR = 0; //光敏電阻輸入,接在anallog pin 0
- float readLDR = 0; //光敏電阻感應到的光源產生的電阻值
- void setup() {
- pinMode(LED, OUTPUT);
- lcd.begin(16, 2); // 初始化 LCD
- lcd.setCursor(2, 0);
- lcd.print("Temp");
- lcd.setCursor(0, 1);
- lcd.print("Hu");
- Serial.begin(9600);
- }
- void loop() {
- lcd.setCursor(0, 1);
- readLDR = analogRead(LDR); //存取光敏電阻的電阻值
- int chk = DHT11.read(dataPin);
- if (chk == 0) {
- lcd.setCursor(7, 0); // 顯示溫度
- lcd.print((float) DHT11.temperature, 2);
- Serial.println(DHT11.temperature);
- lcd.print((char) 0xDF);
- lcd.print("C");
- if (DHT11.temperature > 27) {
- digitalWrite(LED, HIGH);
- delay(500);
- digitalWrite(LED, LOW);
- }
- lcd.setCursor(3, 1); // 顯示濕度
- Serial.println(DHT11.humidity);
- lcd.print((float) DHT11.humidity, 2);
- lcd.print("%");
- lcd.setCursor(10, 1);
- float test = (readLDR * 100) / 1024; // 顯示光敏
- lcd.print(test);
- lcd.print("%");
- Serial.println(readLDR);
- }
- delay(1000);
- }
留言
張貼留言