Показать сообщение отдельно
Старый 28.09.2015, 15:12   #79
Accelero Accelero вне форума
Старики-Разбойники
 
В Клубе с: 25.03.2009
Город: afr.3nx.ru
Авто: Говновоз
Сообщений: 16,274
Поблагодарили 281 раз(а)
По умолчанию Re: Есть заядлые электронщики?

Цитата:
Сообщение от Ytm Посмотреть сообщение
И еще кто у тебя лампу и доп-печку выключает если температура выше заданной поднимается?
Физически - реле)
Программно, этот ИФ:
Цитата:
if(t >= 17) //если тмпература равна или выше ?, выключаем ИК лампу и доппечку
{
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
}
Тут ещё косяк всплыл - добавил в код отображение включенных каналов в правом нижнем углу примерно так "Ch.1 2 3 4", т.е. всего четыре реле. Если одно срабатывает, то загорается его порядковый номер, например подогрев пошел "Ch. 2 ". С подогревами все норм - загорается цифра и гаснет, а вот со временем - горит постоянно Самое интересное, что прога уже больше месяца работает в полевых условиях, реле освещения стабильно вкл/выкл по расписанию, а единица на табло выключаться не хочет

Цитата:
if (RTC_Time.hour >= 8 < 18)
{
digitalWrite(10, LOW);
lcd.setCursor(12,1);
lcd.print("1");

}
if (RTC_Time.hour >= 18 || RTC_Time.hour < 8)
{
digitalWrite(10, HIGH);
}
Короче и rtc_time.hour переставлял, и пытался сделать If (digitalWrite(10) == HIGH) - в первом случае горит "1" и не колышет, во втором посылает нах компилятор.

Добавлено через 2 минуты
Цитата:
Сообщение от Ytm Посмотреть сообщение
ищи в библиотеке которая отвечает за датчик температуры-влажности

Либа

/* DHT library

MIT license
written by Adafruit Industries
*/

#include "DHT.h"

DHT:HT(uint8_t pin, uint8_t type) {
_pin = pin;
_type = type;
firstreading = true;
}

void DHT::begin(void) {
// set up the pins!
pinMode(_pin, INPUT);
digitalWrite(_pin, HIGH);
_lastreadtime = 0;
}

float DHT::readTemperature(void) {
float f;

if (read()) {
switch (_type) {
case DHT11:
f = data[2];
return f;
case DHT22:
case DHT21:
f = data[2] & 0x7F;
f *= 256;
f += data[3];
f /= 10;
if (data[2] & 0x80)
f *= -1;

return f;
}
}
Serial.print("Read fail");
return NAN;
}

float DHT::readHumidity(void) {
float f;
if (read()) {
switch (_type) {
case DHT11:
f = data[0];
return f;
case DHT22:
case DHT21:
f = data[0];
f *= 256;
f += data[1];
f /= 10;
return f;
}
}
Serial.print("Read fail");
return NAN;
}


boolean DHT::read(void) {
uint8_t laststate = HIGH;
uint8_t counter = 0;
uint8_t j = 0, i;
unsigned long currenttime;

// pull the pin high and wait 250 milliseconds
digitalWrite(_pin, HIGH);
delay(250);

currenttime = millis();
if (currenttime < _lastreadtime) {
// ie there was a rollover
_lastreadtime = 0;
}
if (!firstreading && ((currenttime - _lastreadtime) < 2000)) {
return true; // return last correct measurement
//delay(2000 - (currenttime - _lastreadtime));
}
firstreading = false;
/*
Serial.print("Currtime: "); Serial.print(currenttime);
Serial.print(" Lasttime: "); Serial.print(_lastreadtime);
*/
_lastreadtime = millis();

data[0] = data[1] = data[2] = data[3] = data[4] = 0;

// now pull it low for ~20 milliseconds
pinMode(_pin, OUTPUT);
digitalWrite(_pin, LOW);
delay(20);
cli();
digitalWrite(_pin, HIGH);
delayMicroseconds(40);
pinMode(_pin, INPUT);

// read in timings
for ( i=0; i< MAXTIMINGS; i++) {
counter = 0;
while (digitalRead(_pin) == laststate) {
counter++;
delayMicroseconds(1);
if (counter == 255) {
break;
}
}
laststate = digitalRead(_pin);

if (counter == 255) break;

// ignore first 3 transitions
if ((i >= 4) && (i%2 == 0)) {
// shove each bit into the storage bytes
data[j/8] <<= 1;
if (counter > 6)
data[j/8] |= 1;
j++;
}

}

sei();

/*
Serial.println(j, DEC);
Serial.print(data[0], HEX); Serial.print(", ");
Serial.print(data[1], HEX); Serial.print(", ");
Serial.print(data[2], HEX); Serial.print(", ");
Serial.print(data[3], HEX); Serial.print(", ");
Serial.print(data[4], HEX); Serial.print(" =? ");
Serial.println(data[0] + data[1] + data[2] + data[3], HEX);
*/

// check we read 40 bits and that the checksum matches
if ((j >= 40) &&
(data[4] == ((data[0] + data[1] + data[2] + data[3]) & 0xFF)) ) {
return true;
}


return false;

}
[свернуть]


Цитата:
Сообщение от Анатолич Посмотреть сообщение
Иванушка из дворца пионеров
Саня, ты по трудовой вообще спец в этом - мож чо посоветуешь?
  Ответить с цитированием