Не опрашивается DHT 11 !!!

Sauronkin
Offline
Зарегистрирован: 07.01.2014
 
Помогите люди добрые!!!
 
Идея такова : сделать в частном доме вентиляцию , для этого использовал arduino uno, dht11 ( в планах подключить 3 датчика ), датчик движения ( для туалета),  реле и естественно вентилятор.
 
Проблема в том что при подключенном USB  к компу и открытом окне монитора порта все работает!!! Но как только я подключаю внешнее питание ( блок 12 вольт) ардуинка перестает опрашивать датчик dht11 хотя на пир реагирует реле отлично счелкает выдерживает все паузы.
 
Не судите строго это первая программа .
 
Вот что смог неимоверными усилиями слепить :
 
#include <dht.h> 
#define dht_dpin A0 
dht DHT;
//Время калибровки датчика (10-60 сек. по даташиту)
int calibrationTime = 30;
 
//Время, в которое был принят сигнал отсутствия движения(LOW)
long unsigned int lowIn;
 
//Пауза, после которой движение считается оконченным
long unsigned int pause = 10000;
 
//Флаг. false = значит движение уже обнаружено, true - уже известно, что движения нет
 boolean lockLow = true;
//Флаг. Сигнализирует о необходимости запомнить время начала отсутствия движения
boolean takeLowTime;
 
int pirPin = 2;    //вывод подключения PIR датчика
int ledPin = 13;   //вывод сигнального диода
int relayPin = 4;  //реле пин
 
void setup()
{
    Serial.begin(9600);
    delay(300);
    Serial.println("BJLA>I<HOCTb u TEMIIEPATyPA\n\n");
    delay(700);
   
    pinMode(pirPin, INPUT);
    pinMode(ledPin, OUTPUT);
    pinMode(relayPin, OUTPUT);
   
    //!ВНИМАНИЕ! При использовании n-p-n реле необходимо в след. строчке поменять HIGH на LOW
    digitalWrite(relayPin, HIGH);
    delay(4000);
    digitalWrite(pirPin, LOW);
   
    //дадим датчику время на калибровку
    for(int i = 0; i < calibrationTime; i++)
    {
        //Во время калибровки будет мигать сигнальный диод
        i % 2 ? digitalWrite(ledPin, HIGH) : digitalWrite(ledPin, LOW);
        delay(1000);
    }
    //По окончанию калибровки зажжем сигнальный диод
    digitalWrite(ledPin, HIGH);
    delay(50);
}
 
void loop()
{
 
Label :
    DHT.read11(dht_dpin);
    Serial.print("BJLA>I<HOCTb = ");
    Serial.print(DHT.humidity);
    Serial.print("%  ");
    Serial.print("TEMIIEPATyPA = ");
    Serial.print(DHT.temperature);
    Serial.println("C  ");
    delay(2000);
    if(digitalRead(pirPin) == HIGH)goto label2 ;
    if(DHT.humidity > 45)
    {
        digitalWrite(relayPin, LOW);
        if(DHT.humidity < 45)
        {
            digitalWrite(relayPin, HIGH);
        }
        
        if (digitalRead(relayPin) == LOW)
        {
            goto Label;
        }
    }
 
   //Если обнаружено движение
    if(digitalRead(pirPin) == HIGH)
    {
      label2 : 
        Serial.print("1");
        //Если до этого момента еще не включили реле
        if(lockLow)
        {
            lockLow = false;
            //Включаем реле.
            //!ВНИМАНИЕ! При использовании n-p-n реле необходимо в след. строчке поменять LOW на HIGH
            digitalWrite(relayPin, LOW);
            delay(50);
            Serial.print("2");
        }
        Serial.print("3");
        takeLowTime = true;
    }
 
    Serial.print("4");
 
    //Ели движения нет
    if(digitalRead(pirPin) == LOW)
    {
        //Если время окончания движения еще не записано
        if(takeLowTime)
        {
            Serial.print("5");
            lowIn = millis();          //Сохраним время окончания движения
            takeLowTime = false;       //Изменим значения флага, чтобы больше не брать время, пока не будет нового движения
            Serial.print("6");
        }
        //Если время без движение превышает паузу => движение окончено
        Serial.print("7");
        
        if(!lockLow && millis() - lowIn > pause)
        {
            Serial.print("8");
            //Изменяем значение флага, чтобы эта часть кода исполнилась лишь раз, до нового движения
            lockLow = true;
            digitalWrite(relayPin, HIGH);
            delay(50);
        }
    }
}
Sauronkin
Offline
Зарегистрирован: 07.01.2014

Ау люди помогите профану пожалуйста !!!! есть тут кто живой ?

Sauronkin
Offline
Зарегистрирован: 07.01.2014

Спасибо всем решил вопрос!!!!

inspiritus
Онлайн
Зарегистрирован: 17.12.2012

Схему покажите пожалуйста.