Bonjour à tous les passionné et aux autres aussi !!
je suis en train de finir un montage de régulation de température avec deux élément Peltier ...
donc, je veux ( absolument ) utiliser un écran LCD 2004 ( bleu et blanc ) et je bute sur un petit soucis car je ne peut pas vraiment utiliser mon écran lcd car ce dernier est très peu lumineux !!
j'ai tout branché correctement, mais je me pose une question : est ce que je peux alimenter l’écran en 5 Volts et le arduino DUE en I²C 3v3 ??
en effet je suis au stade "finition" et je m’apprête à écrire le code, mais je voudrai donc brancher l'écran en 5volts mais je ne suis pas certain de la réaction du DUE si les sortie/entre I²C sont à 5 volts,au lieu de 3v3 !
ce que je voudrais savoir, c'est si les deux ( écran et DUE ) composants sont compatible, ou s'il faut que je fasse une interface 3V3 ( coté sda et scl du DUE ) ==> 5V du coté sda et scl de l'écran pour éviter un mauvais moment pour l'écran ( çà c'est pas trop grave j'ai encore du stock en écran) ou pire un mauvais moment pour l'ARDUINO DUE ( si il y a incompatibilité ou pas ?? ) et çà ce serai plus grave vue que je ne dispose que d'un DUE ...
Merci de m'aider si vous pouvez, car pour l'instant j'ai tout en 3v3 et je ne veux pas perdre un DUE ce serai pas "cool" !!
donc, je veux ( absolument ) utiliser un écran LCD 2004 ( bleu et blanc ) et je bute sur un petit soucis car je ne peut pas vraiment utiliser mon écran lcd car ce dernier est très peu lumineux !!
il est alimenté en 3v3 par une alim que j'ai réalisé à base de lm1084-adj mais j'ai également une alim 5volts ( et le DUE est alimenté par du 8.5V )
je viens de regarder un peu sur youtube et j'ai trouvé une vidéo où le gars le branche directement en 5 volts ( l'écran ) et les broche sda et scl qui vont de l'écran jusqu'au DUE et çà a l'air de bien fonctionner ... ... mais il existe également des vidéos qui sont fausse c'est pourquoi je demande cette aide ( en fait j'ai pas trop confiance et comme j'ai pas de stock en arduino DUE çà me fait un peu peur de le griller !!)...
voilà, comme vous le voyez il n'y a pas de problème avec les alim il y a ce qu'il faut là où il faut, le problème c'est que je voudrai alimenter l'écran en 5 volts et sda et scl en 3v3 si c'est possible !!
Ces modules I2C pour LCD possèdent certainement deux résistances de pull-up sur l'I2C.
Si tu alimentes le module sous 5V, ces deux résistances vont forcer les niveaux hauts de l'I2C à 5V.
Je ne suis pas sûr que le processeur supporte bien. Il faudrait jeter un oeil à sa datasheet.
Comme l'I2C est sensé être collecteur ouvert, l'idéal serait de retirer les résistances côté module et d'en placer deux autres côté DUE, cette fois-ci entre I2C et 3.3V.
Pour trouver les deux résistances sur le module I2C, utilise un ohmmètre. Normalement ce sont deux résistances identiques de ~ 4.7K.
Il y a effectivement 2 bus I2C sur une carte DUE, l'un SDA/SCL avec déjà des pull-ups (en fait 1 K, reliées au 3.3V) et l'autre SDA1/SCL1 sans pull-ups. Cette disposition est très pratique car cela permet de tester sur une même carte un code I2C, ou de faire communiquer 2 cartes DUE en I2C sans rien ajouter. Si le second bus est utilisé seul (SDA1/SCL1), une valeur de 2.2K pour chaque pull-up semble être un bon compromis.
Attention lors de la connection à un esclave I2C de toujours vérifier si il a déjà (ou pas) des pull-ups et à quelle tension elles sont reliées.
Il est possible d'utiliser un LCD alimenté en 5V, mais sans pull-ups, relié au bus I2C qui lui aura des pull-ups reliées à du 3.3V ceci sans convertisseurs de niveaux logiques (3.3V <-> 5V), MAIS il est toujours plus prudent d'en prévoir.
donc, si j'ai bien compris, le mieux serai de me brancher sur les deux entrée / sortie nommé "scl1 et sda1" et je monte des résistance de 2k2 du plus ( "+" ) 3v3 vers chacune des deux i/o du DUE (sda1/scl1 )??
et ce que c'est juste comme çà ??
merci pour le temps passé pour m'aider, c'est le but du forum, certes, mais bon, çà fait toujours plaisir !!
Attention "shunter" les résistances c'est les court-circuiter et c'est relier le collecteur des sorties sda et scl directement à l'alim sans résistance de limitation de courant -> destruction du matériel assuré.
Il faut les suprimer au fer à souder ou à la pince coupante.
Sinon pour relier un composant alimenté en 5V c'est une question de respect des normes.
Si le composant 5V outrepasse les normes cela "peut éventuellement" fonctionner sur certaines pièces et pas avec d'autres. Dans le cas contraire c'est réglé d'avance cela ne fonctionnera pas.
La norme "CMOS" indique que pour qu'un niveau soit considéré comme un état haut il faut que l'amplitude du signal soit supérieure ou égale à 70% de l'alimentation -> 0,7 * 5 = 3,5 V -> impossible à obtenir avec un circuit en 3,3V
Le plus sage et le plus simple est d'utiliser un translateur de niveau.
Tu supprimes les pull-ups du LCD, puis tu raccordes ton LCD au bus I2C:
Soit directement sur SDA/SCL sans rien ajouter et tu vois si cela fonctionne, ou bien sur SDA1/SCL1 en ajoutant des pull-ups de 2.2K connectées au 3.3V.
Comme dit plus haut, les convertisseurs de niveaux logiques ne sont alors théoriquement pas nécessaires,CEPENDANT, ces convertisseurs sont très peu chers et préservent la carte DUE en cas d'erreur dans les branchements....et effectivement garantissent un niveau haut parfaitement correct.
Sauf que si le CI en 5V est à la norme CMOS il exigera au minimum 3,7V pour décider d'un état haut et je ne vois pas comment un CI 3,3V sera capable de délivrer 3,7 V. Tout au plus il délivrera 3,3V et plus probablement 3,2/3,1 V.
Donc si les convertisseurs de niveaux sont "théoriquement" obligatoires.
Ca c'est des trucs qui ont pu fonctionner quelque fois parce que le CI 5V outre passe la norme mais en ce qui concerne Atmel j'ai tenté la manip avec un avr et bernique les accès I2C, comme précisé dans la datasheet du micro, sont STRICTEMENT à la norme CMOS, malgré que positionnés en entrées digitales ils commutent autour de Vcc/2.
Attention aux généralisations faciles parce que cela à pu fonctionner une fois : à l'intérieur d'un CI les composants sont à +/- 30 % selon le lot de fabrication. C'est des "trucs" pour personnes ayant déjà suffisament d'expérience pour pouvoir jouer avec les limites du matériel et savoir s'arreter à temps.
merci pour votre aide c'est très bien, et c'est ce que j'attendais !!
donc voilà ce que je compte faire : monter un convertisseur de tension ( de niveau donc ) que j'ai à disposition, c'est, je pense, la meilleur solution !!
je vous tiendrais , bien sur, au courant !! car cela pourrai rendre service à d'autres pour qui cette sortie pose problème !!
Sinon, si l'écran reste alimenté en 3.3V, il est possible d'alimenter uniquement le backlight en 5V.
Supprimer les deux broches 15 et 16 du module I2C, ce qui revient à couper la liaison backlight entre le module I2C et l'écran.
Si tu veux tu peux souder côté écran un connecteur deux broches coudé à 90°.
Ajouter une résistance (1K par exemple) en série avec le backlight, et alimenter en 5V.
bon, ben j'ai branché le module convertisseur de tension de 5V en 3.3V vers le arduino due, et çà ne fonctionne pas : en effet l'écran est toujours très peu visualiser !!
j'ai branché le module comme suit : broches sda et scl branchées sur deux broches LV et le arduino due branché sur les broches HV, et comme çà ne fonctionnait pas j'ai intervertie les deux broche en LV et HV et çà ne fonctionnais pas non plus !!
donc, je vais procéder comme suit : couper les deux broches 15 et 16 du module I2C entre l'écran et le module i2c qui est branché dessus, et relier le circuit ainsi réalisé, vers du +5V , le brochage reste à peu près pareil, mais sans les broches 15 et 16, qui seront donc relié sur l'écran en 5v et 'écran, lui, sera branché en 3v3 ...
j'ai donc branché mon écran sur 3v3 et j'ai coupé les deux pattes 15 et 16 et j'y ai inséré une résistance entre le +5volts et la broche 15 la 16 câblée sur la masse ;
le résultat est que j'ai un bon backlight sur mon écran, juste comme il faut, mais le problème persiste !!
j'ai aucune visualisation de données, enfin, on peut distinguer avec un oeil avertie que quelque chose voudrai bien s'afficher, mais ce n'est pas ok pour moi !!
je vais donc procéder comme suit : je garde tout câblé comme çà et je fait un petit programme de test lcd, et je verrai bien s'il fonctionne de cette façon, si il fonctionne là comme çà cela signifiera que mon programme ( qui n'est pas finit ) n'est pas encore exploitable en l'état !!
donc je vais faire çà et je reste connecté pour pouvoir voir si vous avez d'autre manip, ou si c'est mon montage qui "cafouille" !!
bon voilà le résultat des courses : j'ai donc mis un programme juste pour le LCD 20.04 i2c à cette adresse 0x3F ;
le problème persiste, sauf que le backlight est activé puisque j'ai un bon eclairage ( vert / jaune ) mais pas la moindre trace de caractères sur l'écran ( j'ai en plus essayé 3 écran ( là c'est le troisième ) et aucun ne fonctionne !!
de plus j'ai aussi mis un programme "scanner i2c" pour trouver la bonne adresse et çà çà a fonctionné il me donne l'adresse 0x3F donc je ne comprend plus !!
et ce que les broches sda et scl sont correctement câblé ( une résistance de 1 ou 4.7K sur la masse ( patte un = sda ) et une autre pareil ( patte deux = scl ) mais si il me donne la bonne adresse comment est il possible un tel dysfonctionnement ??
voilà, maintenant j'ai, enfin je pense, bien expliqué mes interventions, donc si vous avez une idée je serai content de voir çà !
est ce que les broches sda et scl sont correctement câblé ( une résistance de 1 ou 4.7K sur la masse ( patte un = sda ) et une autre pareil ( patte deux = scl )
Tu es sûr de ce que tu as écris ?
L'I2C utilise des collecteurs ouverts, c'est à dire qu'il faut terminer le circuit en câblant une résistance entre la sortie du collecteur et l'alimentation Vcc.