que codigo pongo para usar la pantalla lcd en arduino?

Iniciado por priorigi_10, 15 Marzo 2014, 21:08 PM

0 Miembros y 1 Visitante están viendo este tema.

priorigi_10

hola, tengo una pantalla lcd
Funduino IIC / 1602 I2C LCD Adaptador Junta w / 2.5 "Pantalla LCD - Negro + Verde + Rojo


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:
# 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

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Gh057

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"


/*
  LiquidCrystal Library - Hello World

Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.

This sketch prints "Hello World!" to the LCD
and shows the time.

  The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)

Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}



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
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...

engel lex

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)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Gh057

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... :)
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Gh057

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...

priorigi_10

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
#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
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

engel lex

como lo cableaste? en el post dice

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

lo intentaste de esa manera?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

priorigi_10

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