冰楓論壇

標題: Atmel ATmega8A-PU 製作溫控排風系統 [打印本頁]

作者: 洪嵐峰    時間: 2023-4-8 08:12
標題: Atmel ATmega8A-PU 製作溫控排風系統
所需零件:

Atmel ATmega8A-PU 微控制器
DHT11 溫濕度傳感器
16x2 LCD 液晶顯示器
10k 電位器
繼電器模組
雙極性電容(220uF)
電阻器(220歐姆、10K歐姆)
三極繼電器
DC 風扇
連結腳位:

DHT11 溫濕度傳感器:VCC 至 VCC、GND 至 GND、Data 至 PB0
16x2 LCD 液晶顯示器:VSS 至 GND、VDD 至 VCC、VO 至 10k 電位器、RS 至 PB1、RW 至 GND、E 至 PB2、D4 至 PB3、D5 至 PB4、D6 至 PB5、D7 至 PB6
繼電器模組:IN 至 PD2、VCC 至 VCC、GND 至 GND
三極繼電器:COM 至 GND、NO 至 DC 風扇、NC 至 繼電器模組的 NO
程式碼:


#include <dht.h>
#include <LiquidCrystal.h>

#define DHT_PIN 0
#define RELAY_PIN 2
#define FAN_PIN 3

#define TEMP_THRESHOLD 25.0

dht DHT;
LiquidCrystal lcd(1, 2, 3, 4, 5, 6);

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  pinMode(FAN_PIN, OUTPUT);

  lcd.begin(16, 2);
}

void loop() {
  float temp;
  float hum;

  int chk = DHT.read11(DHT_PIN);
  temp = DHT.temperature;
  hum = DHT.humidity;

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temp:");
  lcd.print(temp);
  lcd.print("C");
  lcd.setCursor(0, 1);
  lcd.print("Humidity:");
  lcd.print(hum);
  lcd.print("%");

  if (temp > TEMP_THRESHOLD) {
    digitalWrite(RELAY_PIN, HIGH);
    digitalWrite(FAN_PIN, HIGH);
    lcd.setCursor(0, 1);
    lcd.print("Fan is ON ");
  } else {
    digitalWrite(RELAY_PIN, LOW);
    digitalWrite(FAN_PIN, LOW);
    lcd.setCursor(0, 1);
    lcd.print("Fan is OFF");
  }

  delay(2000);
}




歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓