Go Down

Topic: Modulo lcd1206 de mjkdz -RESUELTO- (Read 908 times) previous topic - next topic

Feb 09, 2013, 11:55 pm Last Edit: Feb 10, 2013, 07:31 pm by numero110 Reason: 1
Hola.
He comprado en Ebay un modulo I2C LCD1206 de www.mjkdz.com.
En las instrucciones dice que tiene la dirección 0X27


Con el siguiente programa, con un PCF8754AP, y el LCD funciona.
Code: [Select]
//
// display01.pde - keypad con LCD y expansor PCF8574A
// basado en un programa de:

/* Usando el actual ejemplo de hardware, se puede controlar un LCD mediante el
circuito PCF8574A.De este modo se utilizan sólo dos pines de Arduino para
manejar el LCD.

*/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27); // Set the LCD I2C address

#define BACKLIGHT_PIN 13

void setup()
{
 // Switch on the backlight
 pinMode (BACKLIGHT_PIN, OUTPUT);
 digitalWrite (BACKLIGHT_PIN, HIGH);

 lcd.begin(16,2); // inicializa el LCD
 lcd.clear ();    // lo mismo que: home();
 lcd.print(" Mensaje");
 lcd.setCursor ( 1, 1 ); // va a la siguiente línea
 lcd.print (" Hola, ARDUINO ");
 delay(10000);
 lcd.clear();
 lcd.setCursor (0, 0 );
 lcd.print ("Programa con I2C");
 
 lcd.setCursor ( 1, 1);
 lcd.print ("Todo bien... ");
 delay (500);  }

void loop()
{
 digitalWrite(BACKLIGHT_PIN, HIGH);
 delay(300);
 digitalWrite(BACKLIGHT_PIN, LOW);
 delay(500);
 
}


Pero con el modulo, no funciona.
¿Podéis darme alguna idea?.
¿Hay alguna rutina para averiguar la dirección I2C de un dispositivo)
Saludos

Sergegsx

hay programas de arduino que buscan todas las direcciones I2C conectadas al arduino.
I2C sniffer creo que se llama

Ya esta solucionado.
Gracias al sniffer, la dirección era incorrecta.
El programa para que funcione es el siguiente:
Code: [Select]

*/*******************************************
Prueba del funcionamiento del dispaly
*/
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>  //

#define BACKLIGHT_PIN     7
#define  LED_OFF  0
#define  LED_ON  1

LiquidCrystal_I2C  lcd(0x20,4,5,6,0,1,2,3);

void setup()
{
  lcd.begin (20,2);  // inicializo el LCD 20x2
  // Switch on the backlight
  lcd.setBacklightPin(BACKLIGHT_PIN,NEGATIVE);
  lcd.setBacklight(LED_ON);

  lcd.home();
 
  lcd.setCursor(0, 0);

  for(int i=0;i<20;i++) lcd.print("*");
  lcd.setCursor(0, 1);

  lcd.print(" Hola mundo   ");
  delay(5000);
  lcd.clear();
}

void loop()
{
  lcd.setCursor(0,0);
  lcd.print(" Linea 0   ");
  lcd.setCursor(0,1);
  lcd.print(" linea 1 ");
  delay(1000);
  lcd.clear();
}

Go Up