Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: priorigi_10 en 15 Marzo 2014, 21:08 pm



Título: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: priorigi_10 en 15 Marzo 2014, 21:08 pm
hola, tengo una pantalla lcd
Funduino IIC / 1602 I2C LCD Adaptador Junta w / 2.5 "Pantalla LCD - Negro + Verde + Rojo
 
(http://i00.i.aliimg.com/wsphoto/v0/736081308/Freeshipping-IIC-I2C-1602-LCD-module-bluescreen.jpg)
y en el manual del pack en el que me venia ponia un codigo y como conectarla, lo unico que el codigo me da errores
alguien me puede decir que codigo tengo que usar
me venia este codigo:
Código:
# include <Wire.h>
# include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 16,2); // set the LCD address to 0x27 for a 16 chars and 2
line display
void setup ()
{
lcd.init (); // initialize the lcd
// Print a message to the LCD.
lcd.backlight ();
lcd.print ("hello world");
}
void loop ()
{
}

el error me lo da en la 3º y 4º linea me dice que que eso no es un tipo
Un saludo y gracias de antemano :)
PD: no se si esto va aqui pero como es de programacion por eso lo he puesto


Título: Re: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: engel lex en 15 Marzo 2014, 21:24 pm
leete esto a ver si te es de utilidad

http://forum.arduino.cc/index.php/topic,128635.0.html (http://forum.arduino.cc/index.php/topic,128635.0.html)


Título: Re: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: Gh057 en 15 Marzo 2014, 23:25 pm
hola priorigi_10 el error no te tira por el comentario? o aquí se te desplazó una línea más abajo?  (a la cuarta) recuerda que las "//" es por línea, sino tienes que utilizar "/*" y "*/".

luego, no haz visto los ejemplos en la ide de arduino como te indiqué en el post anterior? en él tienes para la mayoria de los componentes básicos, por ejemplo te adjunto el querido "hola mundo"

Código
  1. /*
  2.   LiquidCrystal Library - Hello World
  3.  
  4.  Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
  5.  library works with all LCD displays that are compatible with the
  6.  Hitachi HD44780 driver. There are many of them out there, and you
  7.  can usually tell them by the 16-pin interface.
  8.  
  9.  This sketch prints "Hello World!" to the LCD
  10.  and shows the time.
  11.  
  12.   The circuit:
  13.  * LCD RS pin to digital pin 12
  14.  * LCD Enable pin to digital pin 11
  15.  * LCD D4 pin to digital pin 5
  16.  * LCD D5 pin to digital pin 4
  17.  * LCD D6 pin to digital pin 3
  18.  * LCD D7 pin to digital pin 2
  19.  * LCD R/W pin to ground
  20.  * 10K resistor:
  21.  * ends to +5V and ground
  22.  * wiper to LCD VO pin (pin 3)
  23.  
  24.  Library originally added 18 Apr 2008
  25.  by David A. Mellis
  26.  library modified 5 Jul 2009
  27.  by Limor Fried (http://www.ladyada.net)
  28.  example added 9 Jul 2009
  29.  by Tom Igoe
  30.  modified 22 Nov 2010
  31.  by Tom Igoe
  32.  
  33.  This example code is in the public domain.
  34.  
  35.  http://www.arduino.cc/en/Tutorial/LiquidCrystal
  36.  */
  37.  
  38. // include the library code:
  39. #include <LiquidCrystal.h>
  40.  
  41. // initialize the library with the numbers of the interface pins
  42. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  43.  
  44. void setup() {
  45.  // set up the LCD's number of columns and rows:
  46.  lcd.begin(16, 2);
  47.  // Print a message to the LCD.
  48.  lcd.print("hello, world!");
  49. }
  50.  
  51. void loop() {
  52.  // set the cursor to column 0, line 1
  53.  // (note: line 1 is the second row, since counting begins with 0):
  54.  lcd.setCursor(0, 1);
  55.  // print the number of seconds since reset:
  56.  lcd.print(millis()/1000);
  57. }
  58.  
  59.  

más alla de ser para otro modelo, puedes muy bien adaptarlo al tuyo modificando según el datasheet a los pines que correspondan; aquí ya te figura completo la función de loop, y otro detalle que me gustaría que chequees es la biblioteca que utiliza, como podrás observar es <LiquidCrystal.h>

también puedes mirar tanto el foro de arduino como bien te indicó engelx, y retroceder en el link que te pasé sobre el sensor acústico, ya que es un grupo de google+ con muy buenas implementaciones en componentes varios. un saludo


Título: Re: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: engel lex en 15 Marzo 2014, 23:36 pm
Gh057 la librería si la tiene bien, porque el tiene un modelo que implementa i2c para reducir el uso de como 10 pines a solo 2 pero en lugar de paralelo la comunicación es en serie, el link que pasé contiene info sobre la lib que el está usando y los problemas que a alguien le dio...

sin saber bien de lógica electrónica y fumarse un datasheet bien pesado, no se le va a hacer nada simple analizar la librería liquid cristal y adaptarla para la transmisión serial (aunque no es taaaaan complicado, hay que estar claro en ciertos términos y funciones)


Título: Re: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: Gh057 en 15 Marzo 2014, 23:48 pm
ah ok entiendo engelx, es para correr la apli con el lcd "capado" y no tire errores por los pines no usados... igualmente si quiere seguir avanzando tarde o temprano va a tener que leer algo de electrónica; y como consejo ir de a pasitos! ya que es mejor cansarse quemando led's a cargarse todo un componente... :)


Título: Re: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: engel lex en 15 Marzo 2014, 23:52 pm
es posible que eventualmente lo necesite :s pero esta transmision depende más que todo de spi si la va a usar... si no, que se clave un puñal de i2c y lcd XD


Título: Re: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: Gh057 en 15 Marzo 2014, 23:59 pm
jajajaaaa si :D


Título: Re: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: priorigi_10 en 16 Marzo 2014, 00:00 am
gost gracias por lo del comentario no lo habia visto jeje

estoy haciendo lo que me pasates tu engle pero tengo un problemilla y no se como hacerlo voy por la parte de encontrar la direccion i2c
y me pone un codigo
Código:
#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 = 1; 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(5000);           // wait 5 seconds for next scan
}
pero esto no tengo muy claro como funciona
lo estoy haciendo con la pantalla ldc conectada a la placa, cargando el programa y abriendo el monitor seral
pero me pone
Código:
I2C scanner
Scanning...
No I2C dervices found
todo el rato, no se muy bn como funciona pero no tiene que poner la direccion o algo?
gracias por las respuestas


Título: Re: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: engel lex en 16 Marzo 2014, 00:05 am
como lo cableaste? en el post dice

Citar
My Arduino is an Uno, so the I2C connections are on SDA=A4 and SCL=A5

lo intentaste de esa manera?


Título: Re: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: priorigi_10 en 16 Marzo 2014, 00:11 am
perdon, me equivoque de error, ese es el que tenia antes
jeje
lo que me pasa es que lo tengo todo bn cableado, como dice en la pag y como as escrito tu pero al cargar el programa me dice que no encuantra el com 4(es en el que lo tengo yo)
y cuando me pone eso aunque reconecte la placa o quite el lcd no me aparece de nuevo, tengo que reiniciar el PC porque no se como ponerlo


Título: Re: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: engel lex en 16 Marzo 2014, 00:15 am
se te queda pegado los com @.@ eso a mi me dio problemas mucho tiempo... tenia windows 7 me decía que estaban ocupados, con ubuntu también... pasé a w8 igual... ahora paso a w7 nuevamente y funcionan perfecto XD también pendiente cuando uses el pin 0 y 1 porque son la comunicación serial y si los usas la interrumpes :P


Título: Re: que codigo pongo para usar la pantalla lcd en arduino?
Publicado por: priorigi_10 en 16 Marzo 2014, 00:18 am
pero estoy usando el a4 y a5 no el 1 y el 0 porque eso ya me paso y buscando lo resolvil que me pasa es: cuando cargo el programa es como si me desconectara la placa y tengo que reiniciar el equipo para que funcione bn de nuevo, que hago?