Pages: [1]   Go Down
Author Topic: Ayuda con lcd Serial-IIC-I2C y mi mega  (Read 1529 times)
0 Members and 2 Guests are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas a tod@s y desde ya agradezco toda vuestra ayuda.

Os pondré en antecedentes:

He empezado hace muy poco con el gusanillo del arduino y como es normal estoy pagando la torpeza del novato.

El caso es que tengo una mega 2560 y una lcd ( http://www.ebay.com/itm/Serial-IIC-I2C-TWI-2004-204-20X4-Character-LCD-Module-Display-For-Arduino-Blue-/300736978496 )

Estoy programando (copiando y modificando) con arduino 1.0.1 y he conectado los cables de la pantalla a la mega
 
Gnd => GND
Vcc => 5v
SDA =>pin 20 (SDA)
SCL=> ping 21 (SCL)

El caso es que he probado multitud de código y ninguno ha funcionado la pantalla lo único que hace encenderse y muestra series de cuadraditos blancos.

Podrían guiarme en esto.

Un saludo y gracias.

Este es mi codigo


#include <Wire.h> 
    #include <LiquidCrystal_I2C.h>
    LiquidCrystal_I2C lcd (0x27,20,4); 
    // fijó la dirección del LCD a 0x27 para 20 caracteres y 4 la línea
void setup()
    {
delay (500);
      lcd.init ();                      // inicializa el lcd 
 
      lcd.backlight ();
      lcd.setCursor (0, 0);
      delay (100);
      lcd.setCursor (1, 0);
      lcd.print("más barato y");
      lcd.setCursor (0, 1);
      lcd.print ("alta calidad en aquí");
      lcd.setCursor (1, 2);
      lcd.print ("www.b2cqshop.com");
      lcd.setCursor (0, 3);
      lcd.print ("recepción a B2CQSHOP");
    }
void loop()
    {
    }

El caso es que lo hace todo bien pero no muestra nada.


« Last Edit: November 29, 2012, 03:17:28 pm by Juanky » Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1407
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

luego te podre dar mas información pero estas seguro que la direccion I2C es correcta? segun esto pone que 0x27 es para la versión 16x2

LiquidCrystal_I2C lcd(0x27,16,2); //set the LCD address to 0x27 for a 16 chars and 2 line display


creo que mis lcds son de la misma marca, tuve un problema similar y creo que resulto ser la libreria. luego te paso mi libreria.
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas pues si, es 16,2 ya lo he probado con el mismo resultado. Esa es la ultima configuración que probé pero como bien dices tu, también probé con 16,2. He probado varias librerías y demás, pero agradecería que me pasaras las tuyas y el cod que uses y si me puedes indicar k versión usas yo estoy con la 1.0.1.

Gracias a ver si entre todos podemos hacer funcionar esto k empieza a ser un poco ... 
Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1407
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

esta es la librería y dentro hay ejemplos

* LiquidCrystal_I2C_funciona101.rar (6.41 KB - downloaded 52 times.)
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias por la libreria, he tenido problemas con el login, la probare en estos dias y te cuento, pero desde ya agradezco tu ayuda. Un saludo.
Logged

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 38
Posts: 2173
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola, puedes probar con mi librería: https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home, en la sección de download puedes bajar la última versión.

Prueba con este código:
Code:
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

#define I2C_ADDR    0x3F  // Define I2C Address where the SainSmart LCD is
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7

LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

void setup()
{
  lcd.begin (20,4);
 
  // Switch on the backlight
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);

  // Position cursor and write some text
  lcd.home ();                   // go to the first line, first character
  lcd.print("SainSmart I2C tester"); 
  lcd.setCursor ( 0, 1 );        // go to the 2nd line
  lcd.print("It's Working!");
  lcd.setCursor ( 0, 2 );        // go to the third line
  lcd.print("Sainsmarts docs suck");
  lcd.setCursor ( 0, 3 );        // go to the fourth line
  lcd.print("Nice LCD Though. ");
}

void loop()
{

}

Por otro lado, como te comentan, necesitas conocer la dirección I2C del dispositivo, si no funciona cambia 0x3F por el valor que te de el siguiente programa:
Code:
// --------------------------------------
// i2c_scanner
//
// This program (or code that looks like it)
// can be found in many places.
// For example on the Arduino.cc forum.
// The original author is not know.
//
// This sketch tests the standard 7-bit addresses
// from 0 to 127. Devices with higher bit address
// might not be seen properly.
//
// Adapted to be as simple as possible by Arduino.cc user Krodal
//
// June 2012
// Using Arduino 1.0.1
//

#include <Wire.h>


void setup()
{
  Wire.begin();

  Serial.begin(9600);
  Serial.println("\nI2C Scanner");
}


void loop()
{
  byte error, address;
  int nDevices;

  Serial.println("Scanning...");

  nDevices = 0;
  for(address = 0; address <= 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println(" !");

      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknow error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }   
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");

  delay(8000);           // wait 8 seconds for next scan
}

Buena suerte.
Logged

   

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas Fm antes de nada darte las gracias por tomarte las molestias.

Prueba con la libreria del compañero Sergegsx el mismo resultado, ya he llegado a pensar que hay algo roto, pues no hace ni muestra nada mas que los cuadros (lo mismo que cuando se le da alimentacion y sin nada mas).

Despues lo del compañero fm: He bajado las librerias y leido como instalarlas (he tenido que quitar todo lo que tenia de pasados intentos, librerias y demas cosas) He paso el test y no me mostraba nada el monitor serial, pero cuando lo he mirado con el Hyperterminal me salia esto:
Scanning...
I2C device found at address 0x3F !
done


Raro verdad, segun el fabricante era 0x27 (pues NO y NO) despues he puesto el codigo primero de ejemplo y .... FUNCIONA .....

FM eres un mostro. Muchas gracias .

He comentado todo los pasos por si algun compañero pasa por el mismo tortuoso camino. Gracias  a todos.
« Last Edit: December 06, 2012, 04:54:44 pm by Juanky » Logged

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 38
Posts: 2173
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Un placer poder ayudar. Me alegra que te haya funcionado.

Lo que me fastidia de todo esto es que los fabricantes ni mantienen sus propios productos. Que pandilla, estos chinos!
Logged

   

Offline Offline
Full Member
***
Karma: 7
Posts: 108
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

+1 al karma por la ayuda fm! Llevaba tropecientas pruebas y me lo has resuelto en 1 post y 2 sketches...  smiley-mr-green

Un +1000 por la libreria smiley Gracias por compartir.

Salu2 y buen Karma
Logged

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 38
Posts: 2173
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

+1 para ti tambien juanpintom. Un placer poder ayudar.
Logged

   

Pages: [1]   Go Up
Jump to: