Grove - 16x2 LCD (White on Blue) — Arduino Uno simulation

Arduino Uno mostrando "Hello World!" y "Arduino Uno" en la pantalla Grove 16x2 (I2C 0x3E) por A4/A5.

An interactive Arduino Uno circuit simulation you can run free in your browser on Velxio, by dave.

Components

Sketch code

// Hello World en la pantalla Grove 16x2 (blanco sobre azul)
//
// La pantalla lleva un modulo I2C AIP31068 delante de un HD44780:
// cada transferencia es un byte de control seguido del dato.
//   0x80 = comando   (0x01 limpiar, 0x0C display on, 0x80/0xC0 fila 1/2)
//   0x40 = dato      (el caracter a escribir)
// Direccion I2C del modulo: 0x3E
//
// Conexion en el Arduino Uno: SDA -> A4, SCL -> A5, VCC -> 5V, GND -> GND

#include <Wire.h>

const uint8_t LCD_ADDR = 0x3E;

void lcdCommand(uint8_t cmd) {
  Wire.beginTransmission(LCD_ADDR);
  Wire.write(0x80);          // byte de control: comando
  Wire.write(cmd);
  Wire.endTransmission();
}

void lcdWrite(const char *text) {
  while (*text) {
    Wire.beginTransmission(LCD_ADDR);
    Wire.write(0x40);        // byte de control: dato
    Wire.write(*text++);
    Wire.endTransmission();
  }
}

void setup() {
  Serial.begin(9600);

  Wire.begin();              // Uno: SDA = A4, SCL = A5
  delay(100);

  lcdCommand(0x38);          // funcion: 8 bits, 2 lineas, fuente 5x8
  lcdCommand(0x0C);          // display encendido, cursor apagado
  lcdCommand(0x01);          // limpiar pantalla
  delay(5);
  lcdCommand(0x06);          // entrada: incrementar, sin desplazar

  lcdCommand(0x80);          // fila 1, columna 0
  lcdWrite("Hello World!");

  lcdCommand(0xC0);          // fila 2, columna 0
  lcdWrite("Arduino Uno");

  Serial.println("Hello World en la Grove 16x2");
}

void loop() {
  // El mensaje se queda fijo; no hay nada que refrescar.
}

More projects by dave