utiliser un clavier + un ecran?

Bonjour a tous!

il y a quelque jours, j'ai commencé a recyclé un clavier pour en faire un clavier d'ordinateur. j'arrive a l'utilisé correctement grâce a mon arduino léonardo. puis, j'ai voulu utilisé un écran LCD (celui-ci => http://www.seeedstudio.com/wiki/Grove_-_LCD_RGB_Backlight )

mais la me vient un problème. quand j’initialise mon écran grâce a se morceau de code, mon clavier ne veut plus répondre.

void setup()
{
    lcd.begin(16, 2);  
    Serial.begin(9600);
    Keyboard.begin();
}

Et je suis sur que c'est a cause de mon écran (qui fonctionne très bien d’ailleurs) car quand j’enlève le "lcd.begin", mon clavier refonctionne.

j'ai donc pensé a désactivé mon écran quand je veux utilisé mon clavier... malheureusement je n'ai pas trouvé comment faire.

Pourquoi je n'arrive pas a utilisé mon clavier en même temps que mon écran et surtout, comment je pourrais m'y prendre pour surmonter se problème?

Un grand merci d'avance :wink:

C'est branché sur quoi, en i2c, sur tx/rx série ?

Bonjour
Peut on avoir ton schema de câblage.
Ça sent bien un conflit entre deux broches

A+

Edit : Et ton code en entier

Merci d'avoir répondu aussi vite

C'est branché sur quoi, en i2c, sur tx/rx série ?

en tx/rx série pour communiqué avec le pc(je sais meme pas c'est quoi i2c^^)

Bonjour
Peut on avoir ton schema de câblage.
Ça sent bien un conflit entre deux broches

A+

Edit : Et ton code en entier

Pour le schéma de câblage, il faudra attendre un peu le temps que je le fasse XD mais j'utilise les 9 première entré de l'ardino (du 0 au 8 ) pour brancher mes boutons et j'utilise les pin SDA et SCL pour mon écran.
(en attendant le schéma, je vais quand même mettre une photo pour que vous ayez une idée de mon montage)

et pour mon code complet, il est encore un peu bordélique et sans commentaire. mais le voila :wink: (les parties du codes qui pose problème sont en commentaire)

#include <Arduino.h>
#include <Wire.h>
#include "rgb_lcd.h"

rgb_lcd lcd;

const int haut = 0;
const int millieu = 1;
const int bas = 2;
const int un = 3;
const int deux = 4;
const int trois = 5;
const int quatres = 6;
const int cinque = 7;
const int six = 8;

int colorR = 255;
int colorG = 0;
int colorB = 0;

int Position_horizontal = 0;
int Position_vertical = 0;

void touche_envoyee_info(int Position_horizontal_donnee, int Position_vertical_donnee, char touche );
void clavier();

void setup()
{
    //lcd.begin(16, 2);
    //lcd.setRGB(colorR, colorG, colorB);
    //lcd.print("hello, world!");
    Serial.begin(9600);
    Keyboard.begin();
}
void loop()
{
    clavier();
}

void clavier()
{
    pinMode(haut, OUTPUT);
    pinMode(millieu,OUTPUT);
    pinMode(bas,OUTPUT);

    pinMode(un, INPUT_PULLUP);
    pinMode(deux, INPUT_PULLUP);
    pinMode(trois, INPUT_PULLUP);
    pinMode(quatres, INPUT_PULLUP);
    pinMode(cinque, INPUT_PULLUP);
    pinMode(six, INPUT_PULLUP);

    digitalWrite(haut, LOW);
    digitalWrite(millieu, LOW);
    digitalWrite(bas, LOW);

    if (digitalRead(un) == LOW)
    {
        Position_vertical=1;
        digitalWrite(13, HIGH);
    }
    else if (digitalRead(deux) == LOW)
    {
        Position_vertical=2;
    }
    else if (digitalRead(trois) == LOW)
    {
        Position_vertical=3;
    }
    else if (digitalRead(quatres) == LOW)
    {
        Position_vertical=4;
    }
    else if (digitalRead(cinque) == LOW)
    {
        Position_vertical=5;
    }
    else if (digitalRead(six) == LOW)
    {
        Position_vertical=6;
    }

    pinMode(haut, INPUT_PULLUP);
    pinMode(millieu,INPUT_PULLUP);
    pinMode(bas,INPUT_PULLUP);

    pinMode(un, OUTPUT);
    pinMode(deux, OUTPUT);
    pinMode(trois, OUTPUT);
    pinMode(quatres, OUTPUT);
    pinMode(cinque, OUTPUT);
    pinMode(six, OUTPUT);

    digitalWrite(un, LOW);
    digitalWrite(deux, LOW);
    digitalWrite(trois, LOW);
    digitalWrite(quatres, LOW);
    digitalWrite(cinque, LOW);
    digitalWrite(six, LOW);

    if (digitalRead(haut) == LOW)
    {
        Position_horizontal=1;
    }
    else if (digitalRead(millieu) == LOW)
    {
        Position_horizontal=2;
    }
    else if (digitalRead(bas) == LOW)
    {
        Position_horizontal=3;
    }

    touche_envoyee_info(3 ,1 , 226 );
    touche_envoyee_info(3 ,2 , 225 );
    touche_envoyee_info(3 ,3 , 217 );
    touche_envoyee_info(3 ,4 , 233 );
    touche_envoyee_info(3 ,5 , 232 );
    touche_envoyee_info(3 ,6 , 231 );

    touche_envoyee_info(2 ,1 , 215 );
    touche_envoyee_info(2 ,2 , 216 );
    touche_envoyee_info(2 ,3 , 234 );
    touche_envoyee_info(2 ,4 , 230 );
    touche_envoyee_info(2 ,5 , 229 );
    touche_envoyee_info(2 ,6 , 228 );

    touche_envoyee_info(1 ,1 , 179);
    touche_envoyee_info(1 ,2 , 205 );
    touche_envoyee_info(1 ,3 , 218 );
    touche_envoyee_info(1 ,4 , 227 );
    touche_envoyee_info(1 ,5 , 198 );
    touche_envoyee_info(1 ,6 , 177 );

}

void touche_envoyee_info(int Position_horizontal_donnee, int Position_vertical_donnee, char touche )
{
    if (Position_horizontal == Position_horizontal_donnee && Position_vertical == Position_vertical_donnee)
    {
        Keyboard.press(touche);
        Position_horizontal=0;
        Position_vertical=0;
    }
    else
    {
        Keyboard.release(touche);
    }
}

edit: voila, schéma fini :stuck_out_tongue: