当我编译它时,它给了我ERROR,Arduino启动器

时间:2017-01-21 23:03:59

标签: arduino

这里我包含了我的库:

#include <LiquidCrystal.h>
#include <SimpleDHT.h>
LiquidCrystal LCD();
SimpleDHT11 dht11();

我宣布我的注册和引脚:

 int pinDHT11 = 12;
 int temperature;
 int humidity;
 int GLED = 13;
 int RLED = 8;.

我做了我的虚空设置:

 void setup() {
 Serial.begin(9600);
 pinMode (GLED, OUTPUT);
 pinMode (RLED, OUTPUT); 
 LCD.begin (16,2);
}

我做了我的无效循环:

void loop() {

Serial.println("Sensor");

// read with raw sample data.
byte temperature = 0;
byte humidity = 0;
if (dht11.read(pinDHT11, &temperature, &humidity, NULL)) {
Serial.print("Read DHT11 failed");
delay (1000);
return;
}

Serial.print("Temperatura: ");
Serial.print((int)temperature); Serial.println(" *C, ");
Serial.print ("Humedad");
Serial.print((int)humidity); Serial.println(" %");

LCD.setCursor (0,0);
LCD.print ("Temperatura"); LCD.print (temperature); LCD.print(" C");
LCD.setCursor (0,1);
LCD.print ("Humedad"); LCD.print (humidity); LCD.print(" %");
delay(1000);
}

它给了我这个错误:

  

((DHT11:16:错误:在'LCD'中请求成员'begin',这是非类型'LiquidCrystal()'))

2 个答案:

答案 0 :(得分:0)

在C ++中,LiquidCrystal LCD();被解释为函数声明。

相反,使用LiquidCrystal LCD;来调用空构造函数。

但是从LiquidCrystal doc开始,没有可用的空构造函数。使用以下之一:

LiquidCrystal(rs, enable, d4, d5, d6, d7) 
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7) 
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7) 
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)

答案 1 :(得分:0)

在代码的第三行,您缺少用于将LCD连接到Arduino板的引脚。它应该是这样的:

LiquidCrystal LCD(12, 11, 10, 5, 4, 3, 2);

如果您使用引脚12,11,10,5,4,3,2将LCD连接到Arduino。在Liquid Crystal reference page上查看您需要的所有信息。