нужна помощь в поиске ошибке в скетче

zugni
Offline
Зарегистрирован: 14.06.2015
#include <Wire.h>        // Добавляем необходимые библиотеки
#include <LiquidCrystal_I2C.h>
#include <dht11.h>
dht11 DHT;               // Объявление переменной класса dht11
#define DHT11_PIN 4      // Датчик DHT11 подключен к цифровому пину номер 4

byte degree[8] =         // Битовая маска символа градуса
{
  B00111,
  B00101,
  B00111,
  B00000,
  B00000,
  B00000,
  B00000,
};    
 
LiquidCrystal_I2C lcd(0x27,16,2);   // Задаем адрес и размерность дисплея

void setup()
{
  lcd.init();                       // Инициализация lcd             
  lcd.backlight();                  // Включаем подсветку
  lcd.createChar(1, degree);        // Создаем символ под номером 1
}

void loop()
{
  // Выводим показания влажности и температуры
  lcd.setCursor(0, 0);              // Устанавливаем курсор в начало 1 строки
  lcd.print("Humidity =    % ");     // Выводим текст
  lcd.setCursor(11, 0); 
  lcd.print(DHT.humidity, 1);
  lcd.setCursor(0, 1);              // Устанавливаем курсор в начало 2 строки
  lcd.print("Temp     =   \1C ");    // Выводим текст, \1 - значок градуса
  lcd.setCursor(11, 1);             
  lcd.print(DHT.temperature,1);  

  int chk;    
   // Мониторинг ошибок
  chk = DHT.read(DHT11_PIN);    // Чтение данных
  switch (chk){
  case DHTLIB_OK:  
    break;
  case DHTLIB_ERROR_CHECKSUM:  
    lcd.clear(); 
    lcd.print("Checksum error");  
    break;
  case DHTLIB_ERROR_TIMEOUT:
    lcd.clear(); 
    lcd.print("Time out error");
    break;
  default:
    lcd.clear(); 
    lcd.print("Unknown error");
    break;
  }
  delay(1000);                     
}

ошибку пишет вот такую: 

lcd.init();                       // Инициализация lcd  

zugni
Offline
Зарегистрирован: 14.06.2015

http://zelectro.cc/TemperatureHumiditySensor

ссылка на источник

Kolchugin
Offline
Зарегистрирован: 15.12.2013

Ошибки в скетче нет, проверяйте правильность установки библиотеки для дисплея.

Alexey_A
Offline
Зарегистрирован: 01.05.2015

При наличии всех библиотек скетч компилируеттся без ошибок. Пробовал в версии IDE 1.0.5.

Вероятно не хватает библиотеки  типа LiquidCrystal_I2C1602V1 или более поздней.

IDE пишет об ошибке гораздо длиннее, чем вы сказали. Посмотрите внимательнее. Воспользуйтесь прокруткой нижней части.

Или вы это просто на картинке, на оригинальной странице увидили, и сразу бегом сюда? Причина от этого не меняется, по любому.

vvadim
Offline
Зарегистрирован: 23.05.2012

С LiquidCrystal_I2C1602V1 компилируется нормально

zugni
Offline
Зарегистрирован: 14.06.2015

Спасибо Вам все за помощь)

zugni
Offline
Зарегистрирован: 14.06.2015

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

 

Alexey_A
Offline
Зарегистрирован: 01.05.2015

 Если дисплей вы покупали в другом, чем исходный сайт месте. Очень возможно, что у него немного другой адрес на шине I2C. Я не смогу сказать какой у него адрес - дисплей у вас. Возможно залить в ардуино скетч сканера I2C из примеров, и поискать дисплей, если все правильно подключено, как вы говорите.

zugni
Offline
Зарегистрирован: 14.06.2015

все примеры перепробовал и все они показали хороший результат.

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

#include <Wire.h>//подключаем библиотеку для работы с I2C
#include <dht11.h>//подключаем библиотеку для работы с DHT11
#include <LiquidCrystal_I2C.h> //Подключаем библиотеку для работы с LCD

dht11 DHT;
#define DHT11_PIN 7 //номер пина к которому подключен датчик влажности

double a=0;//переменная для хранения температуры
double b=0;//переменная для хранения давления
double d=0;//переменная для хранения влажности

byte degree[8] = // Битовая маска символа градуса
{
B00110,
B01001,
B01001,
B00110,
B00000,
B00000,
B00000,
};
LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
lcd.backlight(); // Включаем подсветку
lcd.createChar(1, degree); // Создаем символ под номером 1

}

void loop() {
int chk;
chk = DHT.read(DHT11_PIN); // читаем данные c DHT11

a=DHT.temperature; //(температора)находим среднее арифметическое двух датчиков 
// b= bmp.readPressure()/133,322; //(давление)
d=DHT.humidity;//(влажность)

lcd.setCursor(0, 0);//устанавливаем курсор в нулвой столбец нулевой строки

lcd.print("H=");
lcd.print(round(d));
lcd.print("%");

/* lcd.print(" P=");
lcd.print(round(b));
lcd.print("mm"); */

lcd.setCursor(0, 1); //устанавливаем курсор в нулвой столбец первой строки
lcd.print("T= ");
lcd.print(a);
lcd.print("\1C");

delay(10000);

}

 

zugni
Offline
Зарегистрирован: 14.06.2015

вот я переправил малось не проверите вашем глазом может что то заметите 

Alexey_A
Offline
Зарегистрирован: 01.05.2015

 

Здесь работает ваш первый скетч, взятый со страницы на сервере. Без датчиков правда.

Но сообщение на тестовом экране подключенном по I2C есть, и оно хорошо видно. Сделал лично для вас.

Желаю вам все же разобраться, что у вас не так. А не просто править скетч.

zugni
Offline
Зарегистрирован: 14.06.2015

спасибо