【问题标题】:When i compile this it gives me ERROR, Arduino starter当我编译它时,它给了我错误,Arduino starter
【发布时间】:2017-01-21 23:03:58
【问题描述】:

在这里我包括我的图书馆:

#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 循环:

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()”))

【问题讨论】:

    标签: arduino


    【解决方案1】:

    在 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)
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-15
        • 1970-01-01
        • 1970-01-01
        • 2022-11-14
        • 2021-02-20
        • 2022-11-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多