使用Arduino,LCD无法显示

时间:2016-07-28 14:58:28

标签: arduino lcd

我在使用LCD和Arduino时遇到问题。

当我使用显示HelloWorld的LiquidCrystal.h的示例代码时,LCD工作得很完美。但是当我添加相同的代码作为另一个代码的一部分时,LCD不能很好地显示。它只是闪烁几个字母然后逐渐消失。

基本上我想显示从计算机浏览器获得的数据,该浏览器连接到以太网屏蔽连接到的同一网络。但我只是尝试显示基本的,以便我可以进行相应的编辑。

#include <SPI.h>
#include <Ethernet.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

boolean incoming = 0;

byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 };
IPAddress ip(192,168,0,117); 

EthernetServer server(80);

void setup()
{
  lcd.begin(16, 2);
  lcd.print("hello, world!");

  Serial.begin(9600);
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.println("My IP Address is: ");
  Serial.println(Ethernet.localIP());
}

void loop()
{

  lcd.setCursor(0,1);
  lcd.print(millis() / 1000);

  EthernetClient client = server.available();
  if (client) {

    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        if(incoming && c == ' '){ 
          incoming = 0;
        }

        if(incoming == 1){
          Serial.println(c);
        }

        if(c == '$'){ 
          incoming = 1; 
        }



        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        } 
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }

    delay(1);
    client.stop();
  }
}

有效的示例代码是:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2);
  lcd.print("hello, world!");
}

void loop() {
  lcd.setCursor(0, 1);
  lcd.print(millis() / 1000);
}

2 个答案:

答案 0 :(得分:0)

看起来您在用于LCD的引脚和用于以太网屏蔽的引脚之间存在冲突。

如果您使用的是Uno,则引脚11,12和13上的Ethernet shield uses the SPI bus。代码中的这一行:

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

说你也是using pins 11 and 12 for the LCD

您可能需要为显示器使用不同的引脚或使用不同的电路板,如Arduino Mega,这为SPI总线提供了更多选择。

答案 1 :(得分:-1)

您使用的是哪种LCD和以太网硬件?例如,如果您在Arduino以太网屏蔽的顶部使用LCD-Display,则存在硬件冲突,您实际上必须进行一些修改(在我的情况下,从LCD切割引脚10)。请告诉我们您的硬件设置。