Arduino: LiquidCrystal не будет печатать с библиотекой Ethernet

проблема

Я не могу получить свой Arduino Uno’s Жидкокристаллический библиотека для печати на мой ЖК-экран при использовании Ethernet библиотека (и щит, конечно).

Код

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

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

EthernetClient client;

String text = "Original Text";

void setup() {
// Set up the LCD's number of columns and rows:
lcd.begin(16, 2);

// Print a message to the LCD.
lcd.print("Setup Text");

// We have serial, but no milk!
Serial.begin(9600);
}

void loop() {
text = "Altered Text";
if (Ethernet.begin(mac) != 0) {
Serial.println("Some Ethernet work...");
}

lcd.setCursor(0, 1);
lcd.print(text);
}

ожидаемый результат

Позволять представляют пустой символ.

Экран должен напечатать:
Setup▓Text▓▓▓▓▓▓
Altered▓Text▓▓▓▓

В то время как Some Ethernet work... печатает в Serial.

Фактический результат

Экран печатает:
Setup▓Text▓▓▓▓▓▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

В то время как Some Ethernet work... печатает в Serial.

Заметки

Если я закомментирую код Ethernet в цикле, я получу ожидаемый результат.

Мой вопрос похож — но не идентичен — этот вопрос:
Аномалии кода Arduino — сбой ЖК-дисплея с несколькими операторами «если»

Я не верю, что моей проблемой является нехватка памяти. Я использую самую современную библиотеку Ethernet, которая исправляет ошибка утечки памяти из предыдущей версии.

2

Решение

Я нашел ответ здесь: https://electronics.stackexchange.com/questions/29240/arduino-uno-ethernet-shield-16×2-lcd-not-initializing

@ben as per the page here, the comment by user "njohnson" states that the shield uses all the digital pins except 1,2 and 8. based on this i tried hooking up the lcd to the 6 analog pins (as outputs) and its working fine now. Now the question is where/how can i study the shield schematic to be sure what all pins can i use. On a side now, it seems an unusual design decision since using the shield means sacrificing 13 of the digital pins ! – Ankit Apr 3 '12 at 21:14

Решение

Я переместил контакты LCD на аналоговые контакты (14-19).

Модификации кода

+ Изменить LiquidCrystal lcd(7, 8, 9, 10, 11, 12); в LiquidCrystal lcd(19, 18, 17, 16, 15, 14); и соответственно переместите штырьки ЖК-экрана.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]