سلام دوستان
بنده یک ترموستات با آردوینو ساختم ک علاوه بر کنترل دما و رطوبت یک led را به هر 5 ثانیه به مدت 2 ثانیه به حرکت در میاره.
میخوام برای زمان هنگ کردن میکرو برنامه watchdog رو به برنامم اضافه کنم.مطالبی ک خوندم(متوجه نشدم)کمکی بهم نکرد.امکان داره از دوستان زحمت وارد کردنش رو بکشه؟
کد:#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <SHT1x.h> LiquidCrystal_I2C lcd(0x27,16,2); #define dataPin A0 #define clockPin A1 SHT1x sht1x(dataPin, clockPin); int hitter=4; int humm=3; int ledPin = 13; // the number of the LED pin int ledState = LOW; // ledState used to set the LED unsigned long previousMillis = 0; // will store last time LED was updated long OnTime = 2000; // milliseconds of on-time long OffTime = 5000; // milliseconds of off-time void setup() { lcd.init(); // initialize the lcd // Print a message to the LCD. lcd.backlight(); lcd.setCursor(1,0); lcd.print("IN THE NAME OF "); lcd.setCursor(7,1); lcd.print("GOD"); Serial.begin(9600); pinMode(4,OUTPUT); //hiter relay pinMode(3,OUTPUT); // humm fan relay pinMode(ledPin, OUTPUT); } void loop() { lcd.setCursor(0,1); float temp_c; float humidity; // Read values from the sensor temp_c = sht1x.readTemperatureC(); humidity = sht1x.readHumidity(); lcd.clear(); lcd.setCursor(2,0); lcd.print("tmp: "); lcd.print(temp_c); lcd.setCursor(2,1); lcd.print("Hum: "); lcd.print(humidity); lcd.print("%"); Serial.print("Temp: "); Serial.print(temp_c, DEC); Serial.print("Humidity: "); Serial.print(humidity); Serial.println("%"); if(temp_c<33.5){ //lighting up the led digitalWrite(4,HIGH); } if(temp_c>33.9){ //lighting up the led digitalWrite(4,LOW); } if(humidity<57){ digitalWrite(3,HIGH); } if(humidity>61){ digitalWrite(3,LOW); } unsigned long currentMillis = millis(); if((ledState == HIGH) && (currentMillis - previousMillis >= OnTime)) { ledState = LOW; // Turn it off previousMillis = currentMillis; // Remember the time digitalWrite(ledPin, ledState); // Update the actual LED } else if ((ledState == LOW) && (currentMillis - previousMillis >= OffTime)) { ledState = HIGH; // turn it on previousMillis = currentMillis; // Remember the time digitalWrite(ledPin, ledState); // Update the actual LED lcd.clear(); lcd.setCursor(2,0); lcd.print("MOTOR >>> ON "); lcd.setCursor(2,1); lcd.print("EVRY >>> 5S"); } delay(1000); }


LinkBack URL
About LinkBacks



پاسخ با نقل قول