LCD habilitado en serie

¿Qué tipo de LCD debo usar para ir con mi Arduino?

He usado la pantalla LCD compatible con HD44780 en el pasado, pero escuché que las pantallas LCD habilitadas en serie hacen la vida mucho más fácil.

Respuestas (6)

Realmente depende de lo que quieras hacer con el Arduino, además de mostrar información en la pantalla LCD. Al igual que usted, usé una pantalla LCD compatible con HD44780 para mi primer proyecto y, aunque funcionó bien, consumió la mitad de mis pines de E/S digitales y limitó seriamente lo que podía hacer con mi proyecto. Si realmente no necesita mucha E/S, eso puede estar bien.

Por otro lado, si desea hacer más que eso, una interfaz LCD en serie puede tener más sentido. Cuestan el doble, pero como puede ver en este ejemplo , puede conectarse en cadena con I2C.

/* Quick example to use FunGizmos serial LCD in I2C mode
*
* Connections between LCD & Arduino 
* LCD P2
*   Pin1 not connected
*   Pin2 not connected
*   Pin3 SCL -> Analog in 5 (Arduino has internal pullup resistor)
*   Pin4 SDA -> Analog in 4 (Arduino has internal pullup resistor)
*   Pin5 VSS -> gnd
*   Pin6 VDD -> +5V
*
* To enable I2C mode of LCD Pads of R1 must be jumpered on back of LCD 
* (Between R6 & R14 right below the black IC glob)
*
*/

#include <Wire.h>

int lcd_addr = 0x50; //default I2C hex address from datasheet
int blink;

void setup(){
  delay(1000); //allow lcd to wake up.

  Wire.begin(); //initialize Wire library

  // Wire library expects 7-bit value for address and shifts left appending 0 or 1 for read/write
  // Lets adjust our address to match what Wire is expecting (shift it right one bit)
  lcd_addr = lcd_addr >> 1;

  //Send lcd clear command
  Wire.beginTransmission(lcd_addr);
  Wire.send(0xFE); //Cmd char
  Wire.send(0x51); //Home and clear
  Wire.endTransmission();

  Wire.beginTransmission(lcd_addr);
  Wire.send(0xFE); //Cmd char
  Wire.send(0x70); //Display LCD firmware version
  Wire.endTransmission();

  delay(2000);

  //Send lcd clear command
  Wire.beginTransmission(lcd_addr);
  Wire.send(0xFE); //Cmd char
  Wire.send(0x51); //Home and clear
  Wire.endTransmission();

  Wire.beginTransmission(lcd_addr);
  Wire.send("Hi I'm using I2C");
  Wire.endTransmission();

  Wire.beginTransmission(lcd_addr);
  Wire.send(0xFE); //Cmd char
  Wire.send(0x45); //Set Cursor pos
  Wire.send(0x40); //Line 2
  Wire.endTransmission();

  Wire.beginTransmission(lcd_addr);
  Wire.send("FunGizmos.com");
  Wire.endTransmission();

}



void loop(){

  Wire.beginTransmission(lcd_addr);
  Wire.send(0xFE); //Cmd char
  Wire.send(0x45); //Set Cursor pos
  Wire.send(0x40+15); //Line 2 last char
  Wire.endTransmission();

  Wire.beginTransmission(lcd_addr);
  if(blink)
     Wire.send('*');
  else
     Wire.send(' ');
  Wire.endTransmission();
  blink = !blink;

  delay(500);
}

Utilizo una unidad de pantalla LCD paralela que convertí a I2C usando el chip controlador LCD BV4208 I2C de ByVac o considero su nuevo reemplazo el BV4638 .

Aquí hay una biblioteca para usar con esta unidad: http://john.crouchley.com/blog/archives/264 .

I2C solo usa dos cables: Analógico 4 y Analógico 5, puede conectar una cantidad de dispositivos desde estos cables, cada uno con su propia dirección I2C. Esta es una manera muy fácil de extender el Arduino.

Si tiene una pantalla LCD compatible con HD44780 y quiere usarla sin consumir demasiados pines de salida, puede usar un registro de desplazamiento (como 74VHC164 o 74HC595).
Aquí hay un enlace a un proyecto de ejemplo .
Efectivamente, esto es muy parecido a una pantalla LCD habilitada en serie.

Utilizo LCD en serie y son muy fáciles de usar y útiles, pero si no usa un Arduino Mega, solo tendrá un puerto en serie. no una lectura. Se puede encontrar una buena biblioteca serial de software aquí

He usado una pantalla LCD en serie antes, la 20x4 negra sobre verde de SparkFun. Es muy fácil trabajar con la interfaz de 3 cables, pero tenga cuidado, la luz de fondo consume mucha energía.

Además, si lo conecta a un PICAXE, el serial 1/0 vs high/low está mal y tendrá que poner un inversor lógico en línea.

Podrías usar la mochila LCD de adafruit . Es compatible con I2C o SPI. En el modo SPI, en realidad solo usa un registro de desplazamiento 74HC595.