Go Down

Topic: problema i2c en arduino leonard (Read 436 times) previous topic - next topic

javi19661101

Hola:
Tengo una placa ARDUINO LEONARD, un LCD SHIELD y un compas digital CMPS03. He conseguido hacer funcionar el compas enviando la salida al monitor serie en un programa.
En otro programa he conseguido enviar texto al LCD.

Pero cuando intento mezclar ambas ideas, la salida en el display son caracteres ilegibles.
Despues de probar varias cosas he visto que en el siguiente programa:
-----------------------------------------------------------------------------------
#include <LiquidCrystal.h>
   
    #include <Wire.h>
   
    LiquidCrystal lcd(7,6,5,4, 3, 2);
   
    #define address 0x60 //defines address of compass
    void setup(){
      lcd.begin(16, 2);
      Wire.begin(); //conects I2C
      Serial.begin(9600);
     
    }

     
    void loop(){
      int bearing=255;
      lcd.print(bearing);
       delay(100);
    }
--------------------------------------------------------------------------------
si quito la linea  "Wire.begin(); //conects I2C" enb el display me escribe 255255255255.... como debe ser, pero si pongo esa linea
me escribe  " ÷÷ ÷÷ ÷÷ ÷÷ ...."
Creo que al tener el ARDUINO LEONARD las señales (SDA y SCL) de I2C en 2 pines distintos a los de ARDUINO UNO hay algun problema.

¿Como puedo solucionarlo?
Muchas gracias.

javi19661101

Ya lo he solucionado, dejo la solucion por si alguien se encuentra con el mismo problema:

Mi lcd Shield utiliza los pines 7,6,5,4,3,2 para rs,en,lcd4,lcd5,lcd6,lcd7 estos pines son d7,d6,d5,d4,d3,d2 en arduino Leonard y d3 es SCL y d2 es SDA con lo cual interfieren las 2 lineas de hay que saliesen caracteres raros.
La solucion ha sido pasar las señales del lcd a los pines 13,12,11,10,9,8 y modificar la linea de LiquidCrystal lcd(7,6,5,4,3,2); a LiquidCrystal lcd(13,12,11,10,9,8);
Ahora ya se ve el rumbo del CMPS03 en el display LCD Shield MR-007-005.
Gracias a todos.

Go Up