Por padrão usamos a inicialização de nosso LCD 16×2 da seguinte maneira:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Porém nossa Ethernet Shield utiliza as portas D10 à D13, o que acaba interferindo no sinal do LCD.
Para corrigir esse problema, basta alterarmos as portas do LCD para:
LiquidCrystal lcd(9, 8, 7, 6, 5, 4);
Veja o esquema da ligação do circuito abaixo:

Segue um código de exemplo:
#include <SPI.h> #include <Ethernet.h> #include <LiquidCrystal.h> LiquidCrystal lcd(9, 8, 7, 6, 5, 4); // Entre com os dados do MAC e ip para o dispositivo. // Lembre-se que o ip depende de sua rede local byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,1,101); // Inicializando a biblioteca Ehternet // 80 é a porta que será usada. (padrão http) EthernetServer server(80); void setup() { // Abrindo a comunicação serial para monitoramento. Serial.begin(9600); //Inicializando LCD lcd.begin(16, 2); // Inicia a conexão Ethernet e o servidor: Ethernet.begin(mac, ip); server.begin(); lcd.print("Servidor em: "); lcd.setCursor(0,1); lcd.print(Ethernet.localIP()); } [...]
Veja também como criar um Serviço Web com a Ethernet Shield:
https://helpdev.com.br/2013/07/07/arduino-criando-servico-web-com-ethernet-shield/
Arduino – Usando a Ethernet shield com LCD 16×2 (Use an ethernet shield and LCD at a time)
Cara, salvou meu projeto, a dias procurava essa solução, nunca imaginaria que o problema fosse este, valeu mesmo.
Obrigado por compartilha seu conhecimento.
😀
Eu que agradeço =)
Olá, estou trabalhando em um projeto que envolve o Shield Ethernet e Display LCD, segui o esquema de ligação mencionado aqui, e também efetuei o upload do código de exemplo, que falta um void loop(){} para passar na verificação porém não exibe nada no LCD, alguém teria um código de teste por completo para que eu possa testar.
Obrigado
Não tem o loop() pois está mostrando a configuração de ligação, mas mesmo assim deveria exibir algo no displey pelo comando lcd.print
Boa tarde amigo, não precisa modificar nada na biblioteca do LCD e do ethernet? É só mudar os pinos e ele funciona? Obrigado e parabéns.
Boa noite Guilherme,
gostaria da sua ajuda estou desenvolvendo um projeto e vou utilizar um arduino uno, internet shield igual a esse teu, um sensor dht 11, um display 16×2 e nao estou conseguindo enviar os dados do display ou seja do dht11 para o browser., se puder me orientar e me ajudar ficaria grato.