нужна помощь в поиске ошибке в скетче
- Войдите на сайт для отправки комментариев
Сб, 20/06/2015 - 13:20
#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
http://zelectro.cc/TemperatureHumiditySensor
ссылка на источник
Ошибки в скетче нет, проверяйте правильность установки библиотеки для дисплея.
При наличии всех библиотек скетч компилируеттся без ошибок. Пробовал в версии IDE 1.0.5.
Вероятно не хватает библиотеки типа LiquidCrystal_I2C1602V1 или более поздней.
IDE пишет об ошибке гораздо длиннее, чем вы сказали. Посмотрите внимательнее. Воспользуйтесь прокруткой нижней части.
Или вы это просто на картинке, на оригинальной странице увидили, и сразу бегом сюда? Причина от этого не меняется, по любому.
С LiquidCrystal_I2C1602V1 компилируется нормально
Спасибо Вам все за помощь)
все сделал как было выше сказано но на lcd пустой экран не чего не показывает три жды проверил подключения все норм может всетаки в скетче что?
Если дисплей вы покупали в другом, чем исходный сайт месте. Очень возможно, что у него немного другой адрес на шине I2C. Я не смогу сказать какой у него адрес - дисплей у вас. Возможно залить в ардуино скетч сканера I2C из примеров, и поискать дисплей, если все правильно подключено, как вы говорите.
все примеры перепробовал и все они показали хороший результат.
Вот я тут переправил молость но дисплей не чего не показывает совсем но ошибок нету по крайней мере не показывает
#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); }вот я переправил малось не проверите вашем глазом может что то заметите
Здесь работает ваш первый скетч, взятый со страницы на сервере. Без датчиков правда.
Но сообщение на тестовом экране подключенном по I2C есть, и оно хорошо видно. Сделал лично для вас.
Желаю вам все же разобраться, что у вас не так. А не просто править скетч.
спасибо