У меня проблема с работой LCD и Arduino.
Когда я использую пример кода для LiquidCrystal.h, который отображает HelloWorld, ЖК-дисплей работает идеально. Но когда я добавляю то же самое как часть другого кода, ЖК-дисплей плохо отображается. он просто мерцает несколькими буквами, а затем постепенно исчезает.
В основном я хочу отображать данные, которые я получаю из браузера компьютера, подключенного к той же сети, к которой подключен Ethernet Shield. Но я просто пытаюсь отобразить основной, чтобы я мог соответствующим образом редактировать.
#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);
}