пробегитесь по коду глазами
- Войдите на сайт для отправки комментариев
Ср, 01/06/2016 - 13:06
Добрый день)
Я совсем новичек, прошу пинать, матюгать, но в нужную сторону. Пишу небольшую программу для "теплички".
#include <LiquidCrystal.h> #include <DHT.h>; //TEMPERATURES////// byte tmax = 35; // byte thigh = 27; // byte tnorm = 25; // byte tmin = 20; // //////////////////// static byte t1; static byte t2; static byte h1; byte maxTemp = 0; byte minTemp = 99; //PINS///////////////////////////////////////////// LiquidCrystal lcd(8, 9, 4, 5, 6, 7); #define DHT1PIN 2 #define DHT2PIN 13 #define RELAY1 10 #define RELAY2 1 #define RELAY3 12 #define RELAY4 3 #define DHT1TYPE DHT21 // DHT 21 (AM2301) #define DHT2TYPE DHT21 // DHT 21 (AM2301) DHT dht1(DHT1PIN, DHT1TYPE); DHT dht2(DHT2PIN, DHT2TYPE); unsigned long HpsOffTime; bool HpsState; void setup() { Serial.begin(9600); Serial.println("Growbox 1.0 -- SERIAL MODE --"); lcd.begin(16, 2); dht1.begin(); dht2.begin(); pinMode(RELAY1, OUTPUT); pinMode(RELAY2, OUTPUT); pinMode(RELAY3, OUTPUT); pinMode(RELAY4, OUTPUT); digitalWrite(RELAY1, HIGH); digitalWrite(RELAY2, HIGH); digitalWrite(RELAY3, HIGH); digitalWrite(RELAY4, LOW); HpsState = false; } void loop() { t1=get_t1(); delay(500); t2=get_t2(); delay(500); h1=get_h1(); delay(500); LCD(); reley(); } byte get_t1() { byte t1 = dht1.readTemperature(); if ((isnan(t1))) { return 0; } else { return t1; } } byte get_h1() { byte h1 = dht1.readHumidity(); if ((isnan(h1))) { return 0; } else { return h1; } } byte get_t2() { byte t2 = dht2.readTemperature(); if ((isnan(t2))) { return 0; } else { return t2; } } byte max_t() { if (t1 > maxTemp) maxTemp = t1; return maxTemp; } byte min_t() { if (t1 < minTemp && t1!=0) minTemp = t1; return minTemp; } void reley() { //HIGH T///////////////////////////////////////// if(t1 >= thigh) { digitalWrite(RELAY2, LOW); } else if(t1 <= tnorm) { digitalWrite(RELAY2, HIGH); } //NORM T///////////////////////////////////////// if(t1 >= tnorm) { digitalWrite(RELAY1, LOW); } else { digitalWrite(RELAY1, HIGH); } //HEATER////////////////////////////////////////////////// if(t1 <= tmin && t1!=0) { digitalWrite(RELAY3, LOW); } else if(t1 >= tnorm && t1!=0) { digitalWrite(RELAY3, HIGH); } //HPS//////////////////////////////////////////////////// if (t1 >= tmax || t1==0) { digitalWrite(RELAY4, HIGH); HpsOffTime = millis(); HpsState = true; } if(HpsState) { if(millis() - HpsOffTime > 300000 && t1!=0 && t1 <= tnorm) { digitalWrite(RELAY4, LOW); HpsState = false; } } } void LCD() { lcd.setCursor(0, 0); lcd.print("T"); lcd.setCursor(2, 0); lcd.print(get_t1()); lcd.setCursor(0, 1); lcd.print("T"); lcd.setCursor(2, 1); lcd.print(get_t2()); lcd.setCursor(5, 0); lcd.print("Mx"); lcd.setCursor(8, 0); lcd.print(max_t()); lcd.setCursor(5, 1); lcd.print("Mn"); lcd.setCursor(8, 1); lcd.print(min_t()); // lcd.setCursor(11, 0); // lcd.print("I"); // lcd.setCursor(13, 0); // lcd.print(H_INDEX); lcd.setCursor(11, 1); lcd.print("H"); lcd.setCursor(13, 1); lcd.print(h1); }
код гавно - delay(500);
А как тогда дать время подумать по другому, если даже офф. образец сделан на "дилай"
А как тогда дать время подумать по другому, если даже офф. образец сделан на "дилай"
если официальный образец - гавно, то твой код - не гавно. это логично.
http://arduino.ru/tutorials/BlinkWithoutDelay
Нуу, хорошо это переделаем. В планах подключить GSM и будет тупо пропустить смс во время дилай...
во время дилай...
снова за рыбу деньги - нет делай, забудь о делай.
класс титановый велосипед для delay без delay().
А как тогда дать время подумать по другому, если даже офф. образец сделан на "дилай"
Не парьтесь на делэефобов.
Делэй плохо когда процессору есть чем заняться другим. Если у Вас ему всё равно больше нечего делать, то делай не страшен. Конечно, лучше бы не использовать delay а просто на это время выключить питание (перейти в режим power-down), но если гринпису не говорить, что Вы этого не делаете, то и ничего :)
Никогда не ссылайтесь на т.н. "офф. образцы" - ничего кроме смеха Вы этим не вызовете. Назначение этих примеров - показать, что устройство работает и всё. Поэтому их авторы не парятся например над тем, что их код сожрёт столько ресурсов, что кроме него уже никто работать не сможет.