[Résolu] LCD sur I2C ByVac BV4218.

Bonjour,

Je suis débutant, j'ai découvert la plateforme arduino par divers site internet. Je suis actuellement en phase d'achat afin d'avoir un ensemble pour m'amuser et expérimenter.

Pour l'instant, j'ai fait les acquisitions suivantes depuis Ebay de: - un Arduino UNO R3 (version chinoise Ekitszone), - un shield USB Host v2.1 compatible ADK, - un shield V5 Sensor, - un LCD 20x4 (HD44780) + clavier 4x4 + controleur I2C (ByVac BV4218), je regrette cet achat :( car visiblement ce contrôleur est très mal connu ou supporté par la communauté, pas de librairie, pas de code pour test.

Je pense que je commence à être bien équiper mais mon dernier regret (LCD + controleur) me fait penser que je devrais me tourner vers une solution plus viable pour l'afficheur LCD. A cet effet, je viens vers vous afin d'être conseillé afin de pourvoir afficher simplement un "Hello" sur mon LCD blanc sur fond bleu :blush:. Après consultation du forum et d'internet, j'ai cru comprendre qu'il y avait diverses solutions (ATtiny, Arduino, autre contrôleur) pour commander mon LCD, mais j'ai découvert un "ARDUINO Multifunction Shield with I2C Interface - FLEXEL" sur Ebay. A première vu, je trouve l'ensemble très complet et alléchant pour toutes ses possibilités. Mais de peur de me faire avoir comme pour le BV4218, je souhaiterais votre avis...

En vu de mes expérimentations futures et apprentissage, j'envisage le LCD sur I2C afin de laisser un maximum de ports entrée-sortie libre.

Alors vous en pensez quoi s'il vous plait, est ce intéressant et la librairie est elle facilement utilisable!?

PS: Pour le contrôleur BV4218, la librairie n'est pas disponible ni le code test :stuck_out_tongue_closed_eyes:, mais étant sur IDE 1.0, je me heurte de plus à des problèmes de conversion de code :disappointed_relieved:. Rien d'évident pour un débutant.

Merci beaucoup pour votre avis ou aide ^_^.

---------------Edit--------------------------------------------- Problème résolu, avec la page de Pratical Maker pour la librairie et le code d'exemple pour test et l'adresse I2C 0x21, j'ai enfin pu exploiter le contrôleur BV4218 de ByVac.

Salut tiens jette un oeil sur cette Page, tu devrais trouver ce dont tu as besoin pour ton LCD/Keypad.

A+

Merci beaucoup, je crois que j’avais déjà vu cette page mais j’avais laissé tomber parcequ’il s’agissait du BV4618.
Cependant, j’ai tout de même jeté un oeil, et j’ai découvert qu’il y avait effectivement une librairie spécifique I2C “bv4618_I”.
J’ai donc télécharger et vérifier ce code depuis l’IDE v1.0:

#include <bv4618_I.h>
#include <Wire.h>

BV4618_I di(0x42,9); // 0x62 I2C address (8 bit)

void setup()
{
}

void loop()
{
const char kb[]={0x7d,0xee,0xed,0xeb,0xde,0xdd,0xdb,0xbe,0xbd,0xbb,0xe7,0xd7,0xb7,0x77,0x7e,0x7b};  
char tmp;
  // set up display geometry
  di.setdisplay(4,20);
  // set up keyboard scan codes, alter the above constant array
  // this will depend on how the keypad has been wired
  di.setkeycodes(kb);
  // clear screen
  di.cls();
  di.puts("Display Test");
  di.rowcol(2,1);
  while(1) {
    if(!di.keyint()) {
      tmp=di.key();
      if(tmp > 9) tmp+='A'-10;
      else tmp+='0';
      di.putch(tmp);
      di.putch(' ');
    }
   }
  while(1);
}

et résultat:

[color=orange]C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp:24:22: error: WProgram.h: No such file or directory
C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'int BV4618_I::i2_16bit()':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'receive'

As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.

bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'receive'

As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'void BV4618_I::cmd(char)':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'void BV4618_I::cmd2(char, char)':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In constructor 'BV4618_I::BV4618_I(char, char)':
bv4618_I.pde:-1: error: 'INPUT' was not declared in this scope
bv4618_I.pde:-1: error: 'pinMode' was not declared in this scope
C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In constructor 'BV4618_I::BV4618_I(char)':
bv4618_I.pde:-1: error: 'INPUT' was not declared in this scope
bv4618_I.pde:-1: error: 'pinMode' was not declared in this scope
C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'void BV4618_I::setdisplay(char, char)':
bv4618_I.pde:-1: error: 'delay' was not declared in this scope
C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'void BV4618_I::putch(char)':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'void BV4618_I::puts(char*)':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'void BV4618_I::rowcol(char, char)':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'void BV4618_I::lineposition(char, char)':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'void BV4618_I::backlight(char)':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'int BV4618_I::deviceid()':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'void BV4618_I::version(char*)':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'receive'

As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.

bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'receive'

As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'void BV4618_I::setaddress(char)':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'send'

As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'void BV4618_I::cls()':
bv4618_I.pde:-1: error: 'delay' was not declared in this scope
C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'char BV4618_I::keyint()':
bv4618_I.pde:-1: error: 'digitalRead' was not declared in this scope
C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'char BV4618_I::keys()':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'receive'

As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'char BV4618_I::keyscan()':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'receive'

As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.

C:\Users\Madras\Desktop\arduino-1.0\libraries\bv4618_I\bv4618_I.cpp: In member function 'char BV4618_I::key()':
bv4618_I.pde:-1: error: 'class TwoWire' has no member named 'receive'

As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.[/color]

Dans toute ces erreurs, je peux en corriger quelques une… dans notepad et la fonction “Rechercher - Remplacer” pour Wire.receive() = Wire.read(), Wire.send = Wire.write()
MAIS OU DOIS JE LE FAIRE puisqu’il n’y a rien dans le code et rien dans les librairie incluse… Grrr je me suis fais avoir Grrr…

Sinon pas d’avis pour ci-dessous??? :cold_sweat:

Essai de compiler ton code avec une version plus ancienne de l'ide (0.22 ou 0.23 par exemple), la plupart des librairies ne sont plus compatible avec arduino 1.0. Pour l'I2c tu as ce tuto de skywood à base de PCF8575 qui est très bien fait : http://skyduino.wordpress.com/2011/11/10/tutoriel-arduino-communication-par-spi-hard-et-soft-et-par-i2c/ Ciao. Jacques.

Ok merci du lien, enfin une video en français lol... J'ai tout de même acheter le Shield I2C Flexel... On verra bien si je me fait avoir 2 fois! Mais si je suis tes conseils je pense que le fait de passé en IDE 0.22 devrait résoudre les problemes de compilation effectivement, mais est ce que l'on y perd vraiment!? Si j'ai bien compris certaines syntaxe de commande ont changé, créant une incompatibilité entre les anciennes librairie et le nouvelle IDE. Quel intérêts d'un nouvel IDE non rétrocompatible!? sinon l'utilisateur obligé de modifier en conséquence tout ses programmes!?

Juste un petit débutant qui ne veut pas refaire le monde!...

Quel intérêts d'un nouvel IDE non rétrocompatible!?

Je me le demande... Tu ne perd rien à rester sous 0.22, perso j'utilise encore la 0.18 pour certains sketchs.

Salut,

tsim79: Ok merci du lien, enfin une video en français lol...

Je suis français, je vais pas faire mes vidéos en anglais, nan mais ho! :grin:

tsim79: J'ai tout de même acheter le Shield I2C Flexel... On verra bien si je me fait avoir 2 fois!

Code/Librairie/Exemples -> http://www.web4robot.com/ (Plus pratique de donner un lien "solide" qu'un screen de page ebay ;))

tsim79: Mais si je suis tes conseils je pense que le fait de passé en IDE 0.22 devrait résoudre les problemes de compilation effectivement, mais est ce que l'on y perd vraiment!? Si j'ai bien compris certaines syntaxe de commande ont changé, créant une incompatibilité entre les anciennes librairie et le nouvelle IDE.

Revenir en arduino 0022 résoudra tout tes problémes de compilation ;) La librairie Wire et d'autre fonctions du "core arduino" ont étaient modifié, en fait les versions avant arduino 1.0 était des beta "non stable", avec la sortie de la 1.0 l'api arduino est passé en statut "stable" et ne bougera plus d'un cheveux désormais.

tsim79: Quel intérêts d'un nouvel IDE non rétrocompatible!? sinon l'utilisateur obligé de modifier en conséquence tout ses programmes!?

Pour forcer les développeurs et les utilisateurs à ce préparer au changement de plateforme qui va s'opérer avec l'arduino Due (standard ATmega328 -> Arm SAMU7 & ATmega32u4 Usb) et qui va demander pas mal de changement dans les facons de faire et d'utiliser l'ide arduino ;)

Yep salut Skywodd

C cool, pour la vidéo il n'est pas question de reproche... mais plutot un compliment! Car ainsi je me prend pas la tete à déchiffrer pour comprendre la langue de shakespeare. Donc je vais me tourné vers ta chaine youtube afin de m'auto-former. Oui les didacticiels et autre projets d'exemple pour se mettre à la d'arduino sont bien, mais par moment ce qui me manque s'est une personne vrai avec qui échanger ou poser une question direct avec une réponse à l'issue.

Oui le forum en français est bien, il est la pour l'entraide. Mais quand je regarde le rapport (réponse/lecture) de mon sujet "I2C Multifunction Shield", je me dis soit: - je veux faire une utilisation trop pousser ou dénuer d'intéret, ou - les autres pensent "encore un newby qui ne prend pas sont temps à cherché ou essayer seul" sauf que oui, j'ai cherché seul, j'ai essayer seul! j'ai pris contact avec le vendeur direct aussi. mais niet, a tel point que je connaissais déjà certain les liens donnés!!!

Quoiqu'il en soit merci pour votre patience les gars!!!... Et je reviendrais :)

tsim79: C cool, pour la vidéo il n'est pas question de reproche... mais plutot un compliment! Car ainsi je me prend pas la tete à déchiffrer pour comprendre la langue de shakespeare.

J'avais bien compris, si tu savais le nombre de fois que j'ai galéré au début en devant déchiffrer les exemples en anglais, la plupart sans commentaires ;)

tsim79: Donc je vais me tourné vers ta chaine youtube afin de m'auto-former. Oui les didacticiels et autre projets d'exemple pour se mettre à la d'arduino sont bien, mais par moment ce qui me manque s'est une personne vrai avec qui échanger ou poser une question direct avec une réponse à l'issue.

Si t'as besoin d'aide sur un truc en particulier n'hésite pas ;) Et si t'arrive vraiment pas à faire un truc j'ai skype/twitter ;)

tsim79: Oui le forum en français est bien, il est la pour l'entraide. Mais quand je regarde le rapport (réponse/lecture) de mon sujet "I2C Multifunction Shield", je me dis soit: - je veux faire une utilisation trop pousser ou dénuer d'intéret, ou - les autres pensent "encore un newby qui ne prend pas sont temps à cherché ou essayer seul" sauf que oui, j'ai cherché seul, j'ai essayer seul! j'ai pris contact avec le vendeur direct aussi. mais niet, a tel point que je connaissais déjà certain les liens donnés!!!

Le truc c'est que tu tape direct dans du "lourd", que tu soit débutant ou non ça change pas grand chose, perso je prend pas le temps de regarder le nombre de post, la date d'inscription, etc etc, certes aprés 2 ans sur le forum je reconnais directe qui est nouveau ou pas mais ça change rien au final ;) Ton topic est très "spécialisé" ce qui explique que peu de membres puisse te répondre, on a tous un domaine de prédilection ;) (Et puis c'est la partie arduino/francophone ... comparé au reste du forum on est pas nombreux :sweat_smile:)

Enfin bref, ou tu en est pour le moment ? Tu as réussi à faire quelque chose avec ta shield ?

Bonsoir,

Ben non j'ai rien pu en tiré... Alors je raconte mes manip:

J'ai effectivement téléchargé l'IDE 0.22, toute les librairie afférente (ByVacLCD de PraticalMaker, bv4618_I, I2c_bv) J'ai compilé tout les ptits code que j'ai pu trouvé pour le 4208, 4218 et même 4618 en pensant à bien y mettre l'adresse (0x42) spécifié dans le PDF d'explication, J'avais des résistance de 2.2K que j'ai remplacer par du 5.6K ET POURTANT NIET, il affiche uniquement "ByVac v2.b_"

J'envisage la procédure de RAZ usine du controleur... mais si j'ai bien compris l'anglais il parait qu'il changera d'adresse I2C pour un truc compris entre 0 et 0x40... je vais pas tout me tapé 40 adresse différente pour test! Je ne veux pas dire de gros mot :stuck_out_tongue_closed_eyes: mais la vache, il vend des shields qu'au final il ne peut même expliquer comment sa fonctionne! Lorsque je contact par mail pour avoir les librairies et autre il me renvoit sur la page du 4208. Je suis pas pro mais pas con non plus! Il y a rien de structuré... J'ai juste envie de laisser tomber pour l'instant et attendre le shield I2C Flexel en espérant que sa ira bien mieux!... J'ESPERE :cold_sweat:

J'ai bien noté la soluce de control du LCD par le PCF8575, mais je ne voulais pas avoir a cablé ou réaliser une platine pour ce composant!!! J'ai tellement à apprendre en codage que je voulais m'épargner l'expérimentation pour me tourner plus vers une solution module d'affichage-clavier fonctionnel (LCD+Controleur+clavier), dont je m'attendais a tout mettre en boite et fonctionnerait simplement parcequ'utilisant le bus I2C + Alim.

Au moins je sais que le LCD fonctionne lol c déjà bien. ou en attendant le shield Flexel je devrais expérimenté la commande du LCD par 4 bits du arduino! Mais bon j'ai pas de tresse a déssouder pour enlever le controleur de merde. Pardon.

XD C bon j'ai réussi,... oui en faisant le débile, j'ai testé avec l'adresse du 4208... soit "0x21" (et oui c compris entre 0 et 0x40) et sa fonctionne. sauf qu'en plus si j'ai remarqué qu'après avoir mis sous tension, si ne fais pas de reset rien ne se passe! si pas de RAZ il affiche uniquement "ByVac V2.b" si RAZ il affiche mon code... A oui je crois savoir qu'il faut donné un temps d'initialisation avant de vouloir afficher quoique se soit... de plus le while(1) qui à la fin empêcher le code de s'exécuter en boucle!...

Bon je vais faire un dernier test, en supprimant le while(1) de la fin et mettre un delay de 1 seconde au début du void loop pour voir puis au dodo. Il est tard.

Merci pour votre encouragement. :sweat_smile:

tsim79: J'envisage la procédure de RAZ usine du controleur... mais si j'ai bien compris l'anglais il parait qu'il changera d'adresse I2C pour un truc compris entre 0 et 0x40... je vais pas tout me tapé 40 adresse différente pour test!

Tu peut utiliser des scanner automatisé pour ça ;) http://todbot.com/blog/2009/11/29/i2cscanner-pde-arduino-as-i2c-bus-scanner/

??Heu bonsoir,

SkyWooooooooddddd ou es tu!?
J’ai testé le code du scanner I2C…
La vérif est bonne, upload aussi, l’exécution aussi je pense puisque j’arrive bien avoir quelque chose dans serial monitor…

Voila ce que j’obtiens:

(­s
֏??îÖÃ!½¸
¦ !!óXèXJ)9?­NXÖsH?ÖsH?ÖsÈÖs?ÖsH?ÖsH?Ös?ÈÖs??Ös­NX??Ös
­NX!?Ös­NX?Ös
­NX?Ös­NX??ÖsH­NH??ÖsH
­NH!?ÖsH­NH?ÖsH
(­NH?ÖsH­NH??ÖsH­NX??ÖsH
­NX!ï­?ÖsH­NX?ÖsH
­NX?ÖsH­NX??Ös­Nh??Ös
­Nh!?Ös­Nh?Ös
­Nh?Ös­Nh??Ös­Nx??Ös
­Nx!?Ös­Nx?Ös
­Nx?Ös­Nx??ÖsH­Nh??ÖsH
­Nh!?ÖsH­Nh?ÖsH
­Nh?ÖsH­Nh??ÖsH­Nx??ÖsH
­Nx!?ÖsH­Nx?ÖsH
­Nx?ÖsH­Nx??Ös?­NH??Ös?
­NH!?Ös?­NH?Ös?
­NH?Ös?­NH??Ös?­NX??Ös?
­NX!?Ös?­NX?Ös?
­NX?Ös?­NX??ÖsȨ½Ì

La mise en forme du serial monitor n’a pas été enregistré avec le copier coller, le seul soucis concerne l’encodage des caractères. Je dois faire quoi la!?

tsim79:
SkyWooooooooddddd ou es tu!?

Je suis là :grin:

tsim79:
J’ai testé le code du scanner I2C…
La vérif est bonne, upload aussi, l’exécution aussi je pense puisque j’arrive bien avoir quelque chose dans serial monitor…

Est ce que tu as mis la bonne vitesse de communication dans le Serial Monitor (19200 bauds) ?

Ha bon faut régler la vitesse de communication!!! lol ^_^ J'ai vu que dans le fenetre serial monitor il y avait affiché 9600bps donc je pensais qu'il s'adaptait seul.... lol Il est bien skywodd, merci je vais réessayer alors... a tout di suite!

Merci Skywodd encore une fois... tu n'en as pas fini d'avoir des merci avec moi...

Bon alors oui la vitesse changé, sa fonctionne beaucoup mieux, et j'ai pu ainsi identifier l'adresse de mon controleur I2C que je connaissais.

Donc le ptit code de scanner I2C m'a trouvé un périph à l'adresse 33 en décimal qui correspond à l'adresse 0x21 en hexadécimal que j'avais trouvé avec un coup de chance. Par la meme occasion, j'ai essayé un code de PraticalMaker pour mon LCD avec affichage de la touche appuyée sur le LCD. Hé bien je suis surpris et content de voir que tout fonctionne! Bon pas tout a fait correctement, puisque j'ai un clavier 16 touches avec un controleur qui s'est en reconnaitre que 12 hélas mais c déjà bien lol...

tsim79: Par la meme occasion, j'ai essayé un code de PraticalMaker pour mon LCD avec affichage de la touche appuyée sur le LCD. Hé bien je suis surpris et content de voir que tout fonctionne! Bon pas tout a fait correctement, puisque j'ai un clavier 16 touches avec un controleur qui s'est en reconnaitre que 12 hélas mais c déjà bien lol...

Tu a un clavier 4x4 touches je suppose ? Le code d'exemple de PraticalMaker est fait pour des clavier 3x4 touches donc normal qu'il ne détecte que 12 touches ;) Regarde ici : http://arduino.cc/fr/Main/LibrairieKeypad

Oui mais , le contrôleur bv4218 que j'ai acheté ne sait gérer que jusqu'à 12 touches... Donc normale. Je pensais acheté un bv4618 mais vu mes deboires; j'ai déjà commandé le shield I2C flexel qui lui sait gérer plus qu'un simple LCD et keypad de 16 touches.