Помогите пожалуйста кто то с кодом

Murat
Offline
Зарегистрирован: 15.08.2014

оно работает только както не так

#include <DHT.h> // Подключаем библиотеку для работы с датчиком 

#include <UTFT.h>
#include <UTouch.h>
#include <UTFT_Buttons.h>
extern uint8_t BigFont[];
UTFT        myGLCD(ITDB32S,38,39,40,41);  
UTouch      myTouch(6,5,4,3,2);
UTFT_Buttons  myButtons(&myGLCD, &myTouch);


#define DHTPIN 21 // Считывающий пин с датчика 
#define DHTTYPE DHT11 // Модель датчика 
#define tPIN 20 // Пин управления температурой 
#define hPIN 19 // Пин управления влажностью 

DHT dht(DHTPIN, DHTTYPE); // Создаем объект dht 



int tStatus = HIGH; // определяем переменную, отвечающую за состоянеие нагревателя HIGH=выкл, LOW=вкл 
int temp = 28; // Желаемая температура в градусах Цельсия (изменить на нужную) 
int hStatus = HIGH; // определяем переменную, отвечающую за состоянеие увлажнителя HIGH=выкл, LOW=вкл 
int hum = 45; // Желаемая влажность (изменить на нужную) 

void setup() // инициализация основных данных 
{ 
Serial.begin(9600); // Инициализируем COM-порт
dht.begin(); // Инициализируем датчик 

    myGLCD.InitLCD();
    myGLCD.clrScr();
    myGLCD.setFont(BigFont);
    myTouch.InitTouch();
    myTouch.setPrecision(PREC_MEDIUM);
    myButtons.setTextFont(BigFont);  


pinMode(tPIN, OUTPUT); // Определяем пин для управления температурой как Вывод 
digitalWrite(tPIN, tStatus); // Притягиваем пин к начальному статусу (Выкл) 


  

} 


void loop() // зацикливание (код управляющей программы) 


{
int h = dht.readHumidity(); // Считываем влажность 
int t = dht.readTemperature(); // Считываем температуру 
tStatus = (t > temp) ? LOW:HIGH; // Если температура меньше желаемой, то статус обогревателя=Вкл, в противном случае Выкл 
digitalWrite(tPIN, tStatus); 
if (h < hum) hStatus = LOW; else hStatus = HIGH; // Если влажность меньше желаемой, то статус увлажнителя=Вкл, в противном случае Выкл 
digitalWrite(hPIN, hStatus); 
delay(500); // Задержка в 1 секунду 
Serial.print("t="); Serial.print(t); Serial.print(" h="); Serial.println(h); // Отправляем информацю о климате на COM-порт
myGLCD.print(String(int(t)), 20, 40);



int pressed_button, butup, butdwn;
boolean default_colors = true;



myButtons.deleteAllButtons(); 
butup = myButtons.addButton( 10, 100, 300, 30, "up");
butdwn = myButtons.addButton( 10, 200, 300, 30, "dwn");
myButtons.drawButtons();

  while (true)

  if (myTouch.dataAvailable() == true)
    
    {
      pressed_button = myButtons.checkButtons();
      if (pressed_button==butup)
    {
      temp++, delay(100),myGLCD.print(String(int(temp)), 20, 20);
      myButtons.enableButton(butup);
break;      
    }
  
  if(pressed_button==butdwn)
    {
       temp--, delay(100),myGLCD.print(String(int(temp)), 20, 20);    
       myButtons.enableButton(butdwn);
break;

    }
     
}

} 

 

 

Leshiy
Offline
Зарегистрирован: 19.07.2014

Надо где-то что-то исправить, так думаю. Коллеги, ваше мнение?

Murat
Offline
Зарегистрирован: 15.08.2014

если можно иправьте 3 день сижу

 

leshak
Offline
Зарегистрирован: 29.09.2011

Похождение бравого солдата Швейка пишет:

— Твое место в секте гезихастов,— с состраданием произнес ученый повар Юрайда,— те по целым дням смотрели на свой пупок, пока им не начинало казаться, что вокруг пупка появилось сияние. После этого они считали, что достигли третьей степени совершенства.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Да! Нужно исправить!

Leshiy
Offline
Зарегистрирован: 19.07.2014

Ладно, раз пошла такая пьянка... Murat - где что не так работает? Ардуино за пивом не бегает, или бегает, но как-то не так? Что не работает-то?

Murat
Offline
Зарегистрирован: 15.08.2014
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

#include "DHT.h"
#include <UTFT.h>
#include <UTFT_Buttons.h>
#include <UTouch.h>
UTFT myGLCD(ITDB32S,38,39,40,41);
UTouch      myTouch(6,5,4,3,2);
UTFT_Buttons  myButtons(&myGLCD, &myTouch);


extern uint8_t SevenSeg_XXXL_Num[];
extern uint8_t BigFont[];


#define DHTPIN 21 // Считывающий пин с датчика 
#define DHTTYPE DHT11 // Модель датчика 
#define tPIN 20 // Пин управления температурой 
#define hPIN 19 // Пин управления влажностью 



// Uncomment whatever type you're using!
#define DHTTYPE DHT11   // DHT 11 

DHT dht(DHTPIN, DHTTYPE);

int tStatus = HIGH; // определяем переменную, отвечающую за состоянеие нагревателя HIGH=выкл, LOW=вкл 
int temp ; // Желаемая температура в градусах Цельсия (изменить на нужную) 
int hStatus = HIGH; // определяем переменную, отвечающую за состоянеие увлажнителя HIGH=выкл, LOW=вкл 
int hum ; // Желаемая влажность (изменить на нужную) 


void setup() {
 
  
   myGLCD.InitLCD(1);
   myGLCD.setFont(BigFont);
   myGLCD.setBackColor(0,0,0);
   myGLCD.clrScr();
   myGLCD.setFont(BigFont);
   myTouch.InitTouch();
   myTouch.setPrecision(PREC_MEDIUM);
   myButtons.setTextFont(BigFont);
   delay(1000);
   dht.begin();
  
  pinMode(tPIN, OUTPUT); // Определяем пин для управления температурой как Вывод 
  digitalWrite(tPIN, tStatus); // Притягиваем пин к начальному статусу (Выкл)
}

void loop() {
   int pressed_button, butupt, butdwnt,butuph, butdwnh;
   boolean default_colors = true;
   
    myButtons.deleteAllButtons(); 
    butupt = myButtons.addButton( 10, 120, 50, 40, "+");
    butdwnt = myButtons.addButton( 10, 190, 50, 40, "-");
    butuph = myButtons.addButton( 260, 120, 50, 40, "+");
    butdwnh = myButtons.addButton( 260, 190, 50, 40, "-");
    myButtons.drawButtons();
    
   int h = dht.readHumidity(); // Считываем влажность 
   int t = dht.readTemperature(); // Считываем температуру 
   
    tStatus = (t > temp) ? LOW:HIGH; // Если температура меньше желаемой, то статус обогревателя=Вкл, в противном случае Выкл 
    digitalWrite(tPIN, tStatus); 
    hStatus = (h < hum) ? LOW:HIGH; // Если влажность меньше желаемой, то статус увлажнителя=Вкл, в противном случае Выкл 
    digitalWrite(hPIN, hStatus);
    delay(100); // Задержка 
    
  if (isnan(t) || isnan(h))
  {
    myGLCD.print("Polomka", CENTER, 200);
  } 
    else
  {
    myGLCD.setFont(SevenSeg_XXXL_Num);
    myGLCD.print(String(int(t)), 10, 10);
    myGLCD.setFont(BigFont);
    myGLCD.print("TEMP", 70, 130);
    
    myGLCD.setFont(SevenSeg_XXXL_Num);
    myGLCD.print(String(int(h)), 170, 10);
    myGLCD.setFont(BigFont);
    myGLCD.print("VLAG", 190, 130);
    
  }
  delay(500);
  while (true)
  
   
  if (myTouch.dataAvailable() == true)
    
    {
      pressed_button = myButtons.checkButtons();
   if (pressed_button==butupt)
    {
      temp++, delay(200),myGLCD.print(String(int(temp)), 15, 167),myGLCD.print("C", 45, 167);     
      tStatus = (t > temp) ? LOW:HIGH; // Если температура меньше желаемой, то статус обогревателя=Вкл, в противном случае Выкл 
      digitalWrite(tPIN, tStatus);
      default_colors=false;  

    }
   
   if(pressed_button==butdwnt)
    {
       temp--, delay(200),myGLCD.print(String(int(temp)), 15, 167),myGLCD.print("C", 45, 167);              
       tStatus = (t > temp) ? LOW:HIGH; // Если температура меньше желаемой, то статус обогревателя=Вкл, в противном случае Выкл 
       digitalWrite(tPIN, tStatus);
       default_colors=false;   
    }
       
  if(pressed_button==butuph)  
  {
       hum++, delay(200),myGLCD.print(String(int(hum)), 260, 167),myGLCD.print("H", 290, 167);              
       hStatus = (h < hum) ? LOW:HIGH; // Если влажность меньше желаемой, то статус увлажнителя=Вкл, в противном случае Выкл 
       digitalWrite(hPIN, hStatus);
       default_colors=false;   
    }    
      
   if(pressed_button==butdwnh)  
  {
       hum--, delay(200),myGLCD.print(String(int(hum)), 260, 167),myGLCD.print("H", 290, 167);              
       hStatus = (h < hum) ? LOW:HIGH; // Если влажность меньше желаемой, то статус увлажнителя=Вкл, в противном случае Выкл 
       digitalWrite(hPIN, hStatus);
       default_colors=false;  
    }  
    
}
}

 

Murat
Offline
Зарегистрирован: 15.08.2014

и я так и не нашел в интернете как програмно выключать экран TFT 3,2 ITDB32S

Murat
Offline
Зарегистрирован: 15.08.2014

 экран не обновляет показания с датчика и на влажность не срабатывает пин на реле   неделю сижу что сам нарыл строго не пинайте я стоитель а не програмист может кто подправит и упростит этот код 

user953
Offline
Зарегистрирован: 30.03.2015

здравствуйте вот статья на ХАБР-ХАБР 

Работа с TFT дисплеем на ARDUINO DUE