TV OUT

Тема в разделе "Глядите, что я сделал", создана пользователем MeDiAtoR, 9 мар 2016.

  1. MeDiAtoR

    MeDiAtoR Нуб

    Есть кто сталкивался с такой задачей. Надо сделать контроль температуры и влажности на DHT11 и выводить данные на тв. У меня проблема возникает при подключении библиотеки DHT в цикл ТВ. если убрать ДХТ то изображение есть на экране. Как только ставлю его обратно так сразу исчезает сигнал.
     
  2. Jeid

    Jeid Нерд

    Совсем не понятно, что и куда вы подключаете
     
  3. Unixon

    Unixon Оракул Модератор

    Если сигнал генерируется программно, то просто так ничего не выйдет. Вешайте опрос датчика на отдельный МК и соединяйте их по SPI.

    А вообще неплохо бы такой вопрос начинать с приведения кода.
     
  4. MeDiAtoR

    MeDiAtoR Нуб

    Сделал. выходит отчет на тв.
    только управление релейное
     

    Вложения:

  5. MeDiAtoR

    MeDiAtoR Нуб

    #include<DHT.h>

    #include <TVout.h>

    #include <fontALL.h>

    #define DHTPIN 2 // what pin we're connected to



    #define DHTTYPE DHT22 // DHT 22 (AM2302)

    int temp=13;

    int hum=11;

    int temp1=12;

    int temp2=10;

    DHT dht(DHTPIN, DHTTYPE);

    TVout TV;















    //#include <DHT.h>

    void setup() {

    TV.begin(NTSC,120,96);

    dht.begin();

    pinMode(temp,OUTPUT);

    pinMode(hum,OUTPUT);

    pinMode(temp1,OUTPUT);

    pinMode(temp2,OUTPUT);



    }



    void loop() {







    float h = dht.readHumidity();

    float t = dht.readTemperature();

    int val = analogRead(0);

    int valh = analogRead(1);

    valh = constrain (valh, 0, 1000);

    val = constrain (val, 18, 1000);

    int templevel = map(val, 18, 1000, 95, 0);

    int humlevel = map(valh, 0, 1000, 100.0, 0.0);

    delay(1);



    if (t<templevel){

    digitalWrite(temp,HIGH);

    } else

    digitalWrite(temp,LOW);//main relay

    if (t<templevel-5){

    digitalWrite(temp1,HIGH); }

    else //secondary relay

    digitalWrite(temp1,LOW);

    if (t<templevel-8){

    digitalWrite(temp2,HIGH); }

    else //aux relay

    digitalWrite(temp2,LOW);

    if (h<95){

    digitalWrite(hum,HIGH);}

    else

    digitalWrite(hum,LOW);

    if (isnan(t) || isnan(h)) {

    TV.select_font(font6x8);

    TV.println("CHECK DHT");

    } else {

    TV.select_font(font8x8);

    TV.println(" HUMIDITY %: ");



    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);

    TV.println(h);

    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);

    TV.println("Required H");

    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);

    TV.println(humlevel);

    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);

    delay(5000);

    TV.clear_screen();

    TV.println(" Temperture *C: ");



    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);

    TV.println( t);

    TV.select_font(font4x6);

    TV.println( "\n");



    TV.select_font(font8x8);

    TV.println("Required T");

    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);



    TV.println(templevel);

    delay(5000);

    TV.clear_screen();



    }

    }
     
  6. Securbond

    Securbond Гуру

    А можно ещё написать так
    Код (C++):

    #include<DHT.h>

    #include <TVout.h>

    #include <fontALL.h>

    #define DHTPIN 2 // what pin we're connected to

    #define DHTTYPE DHT22 // DHT 22 (AM2302)

    int temp=13;

    int hum=11;

    int temp1=12;

    int temp2=10;

    DHT dht(DHTPIN, DHTTYPE);

    TVout TV;


    //#include <DHT.h>

    void setup() {

    TV.begin(NTSC,120,96);

    dht.begin();

    pinMode(temp,OUTPUT);

    pinMode(hum,OUTPUT);

    pinMode(temp1,OUTPUT);

    pinMode(temp2,OUTPUT);

    }

    void loop() {

    float h = dht.readHumidity();

    float t = dht.readTemperature();

    int val = analogRead(0);

    int valh = analogRead(1);

    valh = constrain (valh, 0, 1000);

    val = constrain (val, 18, 1000);

    int templevel = map(val, 18, 1000, 95, 0);

    int humlevel = map(valh, 0, 1000, 100.0, 0.0);

    delay(1);


    if (t<templevel){

    digitalWrite(temp,HIGH);

    } else

    digitalWrite(temp,LOW);//main relay

    if (t<templevel-5){

    digitalWrite(temp1,HIGH); }

    else //secondary relay

    digitalWrite(temp1,LOW);

    if (t<templevel-8){

    digitalWrite(temp2,HIGH); }

    else //aux relay

    digitalWrite(temp2,LOW);

    if (h<95){

    digitalWrite(hum,HIGH);}

    else

    digitalWrite(hum,LOW);

    if (isnan(t) || isnan(h)) {

    TV.select_font(font6x8);

    TV.println("CHECK DHT");

    } else {

    TV.select_font(font8x8);

    TV.println(" HUMIDITY %: ");

    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);

    TV.println(h);

    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);

    TV.println("Required H");

    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);

    TV.println(humlevel);

    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);

    delay(5000);

    TV.clear_screen();

    TV.println(" Temperture *C: ");


    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);

    TV.println( t);

    TV.select_font(font4x6);

    TV.println( "\n");


    TV.select_font(font8x8);

    TV.println("Required T");

    TV.select_font(font4x6);

    TV.println( "\n");

    TV.select_font(font8x8);


    TV.println(templevel);

    delay(5000);

    TV.clear_screen();

    }
    }

    Согласитесь приятнее читать.