Serial Habilitado LCD

5

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

He utilizado la pantalla LCD compatible con HD44780 en el pasado, pero he oído que las pantallas LCD habilitadas en serie facilitan mucho la vida.

    
pregunta mad_z

6 respuestas

5

Realmente depende de lo que quieras hacer con el Arduino, además de mostrar información en la pantalla LCD. Al igual que usted, utilicé un 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, 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 , puedes conectar 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);
}
    
respondido por el Craig Trader
5

Utilizo una unidad de pantalla LCD paralela que convertí a I2C utilizando BV4208 Controlador LCD I2C desde ByVac o considere su nuevo reemplazo el BV4638 .

Aquí hay una biblioteca para usar con esta unidad: enlace .

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

    
respondido por el JohnC
3

Si tiene un LCD compatible con HD44780 y quiere usarlo 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.

    
respondido por el Amir Gonnen
2

Uso lcd de serie y son muy fáciles de usar y útiles, pero si no usas un Arduino Mega, solo tendrás un puerto de serie. Esto se puede resolver utilizando el software de serie, aunque los anuncios largos solo necesitas hacer una escritura no una lectura. Puede encontrar una buena biblioteca serie de software aquí

    
respondido por el zklapow
2

He usado un LCD serial antes, el negro de 20x4 sobre el verde de SparkFun. La interfaz de 3 hilos es muy fácil de trabajar, pero tenga cuidado, la luz de fondo consume una gran cantidad de poder.

Además, si lo conecta a un PICAXE, la serie 1/0 vs alto / bajo está en la forma incorrecta y tendrá que colocar un inversor lógico en línea.

    
respondido por el thisismyrobot
0

Puede utilizar la mochila LCD adafruit . Es compatible con I2C o SPI. En el modo SPI, en realidad solo se usa un registro de desplazamiento 74HC595.

    
respondido por el Craig

Lea otras preguntas en las etiquetas