Добрый вечер. Делаю скетч на школьную теплицу и возникла проблема: попеременно выдает ошибку с использованием LiquidCrystal. При замене на lcd - пропускает, при замене всех LiquidCrystal на lcd - начинается ошибка по кругу - не принимает lcd, но принимает его замену. Что я написала не так?
//подключение экрана
#include <LiquidCrystal_I2C.h>
// подключение библиотеки DHT
#include "DHT.h"
// тип датчика DHT
#define DHTTYPE DHT11
#define LiquidCrystal_I2C lcd(0x27,16,2);
// контакт подключения входа данных модуля DHT11
int pinDHT11=9;
// контакт подключения аналогового выхода модуля влажности почвы
int pinSoilMoisture=A0;
// контакт подключения аналогового выхода датчика температуры TMP36
int pinTMP36=A1;
// контакт подключения аналогового выхода фоторезистора
int pinPhotoresistor=A2;
// пины светодиодов индикации
#define LED_TEMP 5
#define LED_MOISTURE 6
#define LED_LIGHT 7
// значения для условий
#define TEMP_DETECT 30
#define MOISTURE_DETECT 500
#define LIGHT_DETECT 250
// реле
int pinRelays[]={2,3,4};
// статусы полива, освещения, вентилятора
boolean statusRelays[]={false,false,false};
// создание экземпляра объекта DHT
DHT dht(pinDHT11, DHTTYPE);
unsigned long millisupdate=0;
void setup()
{
// запуск последовательного порта
Serial.begin(9600);
//
pinMode(LED_TEMP,OUTPUT);digitalWrite(LED_TEMP,LOW);
pinMode(LED_MOISTURE,OUTPUT);digitalWrite(LED_MOISTURE,LOW);
pinMode(LED_LIGHT,OUTPUT);digitalWrite(LED_LIGHT,LOW);
//
dht.begin();
// инициализация дисплея
LiquidCrystal.init();
// установить контраст фона экрана
LiquidCrystal.setContrast(60);
LiquidCrystal.clearDisplay(); // очистить экран
LiquidCrystal.setTextSize(1); // размер шрифта
LiquidCrystal.setTextColor(BLACK); // цвет
// заставка
LiquidCrystal.setCursor(15,15);
LiquidCrystal.print("Inkub1");
LiquidCrystal.display();
delay(2000);
}
void loop()
{
// каждые 5 сек - получение показаний датчиков
// и вывод на дисплей
if(millis()-millisupdate>5000)
{
millisupdate=millis();
LCD.clearDisplay(); // очистить экран
LCD.setCursor(5,0);
LCD.print("Inkub1");
// получение данных с DHT11
float h = dht.readHumidity();
LCD.setCursor(5,10);
if (isnan(h))
{
Serial.println("Failed to read from DHT");
LCD.print("airH= error");
}
else
{
Serial.print("HumidityDHT11= "); Serial.print(h);Serial.println(" %");
lcd.print("airH=");lcd.print(h);lcd.print("%");
}
// получение значения с аналогового вывода датчика температуры TMP36
lcd.setCursor(5,30);
int val1=analogRead(pinTMP36);
// перевод в мВ
int mV= val1*1000/1024;
// перевод в градусы цельсия
int t=(mV-500)/10+75;//t=23;
Serial.print("TempTMP36= "); Serial.print(t);Serial.println(" C");
lcd.print("airT=");lcd.print(t);lcd.print(" C");
// получение значения с аналогового вывода фоторезистора
lcd.setCursor(5,40);
int val2=analogRead(pinPhotoresistor);
Serial.print("Light= "); Serial.println(val2);
lcd.print("Light=");lcd.print(val2);
// обновить
lcd.display();
// вывод состояние полива, лампы, вентилятора
Serial.print("pump - "); Serial.println(statusRelays[2]);
Serial.print("fun - "); Serial.println(statusRelays[1]);
Serial.print("lamp - "); Serial.println(statusRelays[0]);
//// проверка условий
// температура воздуха
if(t > TEMP_DETECT)
digitalWrite(LED_TEMP,HIGH);
else
digitalWrite(LED_TEMP,LOW);
// освещенность
if(val2 < LIGHT_DETECT)
digitalWrite(LED_LIGHT,HIGH);
else
digitalWrite(LED_LIGHT,LOW);
// пауза 5 секунд
Serial.println();
}
}
замените в строке №4 кавычки на уголки. Если не поможет, выложите полный текст сообщений компилятора (не забудьте из включить в “настройках”, а то они там выключены.
In file included from C:\Users\1\Documents\Arduino\inkub2\inkub2.ino:6:0:
C:\Users\1\Documents\Arduino\libraries\DHT_sensor_library/DHT.h:44:1: error: expected ‘,’ or ‘;’ before ‘static’
static const uint8_t DHT11{11}; /**< DHT TYPE 11 */
^~~~~~
inkub2:8:18: error: ‘DHT11’ was not declared in this scope #define DHTTYPE DHT11
^
C:\Users\1\Documents\Arduino\inkub2\inkub2.ino:37:20: note: in expansion of macro ‘DHTTYPE’
DHT dht(pinDHT11, DHTTYPE);
^~~~~~~
C:\Users\1\Documents\Arduino\inkub2\inkub2.ino:8:18: note: suggested alternative: ‘DHT21’ #define DHTTYPE DHT11
^
C:\Users\1\Documents\Arduino\inkub2\inkub2.ino:37:20: note: in expansion of macro ‘DHTTYPE’
DHT dht(pinDHT11, DHTTYPE);
^~~~~~~
C:\Users\1\Documents\Arduino\inkub2\inkub2.ino: In function ‘void setup()’:
inkub2:51:2: error: ‘LiquidCrystal’ was not declared in this scope
LiquidCrystal.init();
^~~~~~~~~~~~~
C:\Users\1\Documents\Arduino\inkub2\inkub2.ino:51:2: note: suggested alternative: ‘LiquidCrystal_I2C’
LiquidCrystal.init();
^~~~~~~~~~~~~
LiquidCrystal_I2C
inkub2:56:29: error: ‘BLACK’ was not declared in this scope
LiquidCrystal.setTextColor(BLACK); // цвет
^~~~~
C:\Users\1\Documents\Arduino\inkub2\inkub2.ino: In function ‘void loop()’:
inkub2:72:2: error: ‘LCD’ was not declared in this scope
LCD.clearDisplay(); // очистить экран
^~~
C:\Users\1\Documents\Arduino\inkub2\inkub2.ino:72:2: note: suggested alternative: ‘ACD’
LCD.clearDisplay(); // очистить экран
^~~
ACD
exit status 1
‘DHT11’ was not declared in this scope