Pour info, je passe le topic en RESOLU même s'il ne l'est pas complètement.
1 : Le problème de départ venais du fait que je ne branchais pas le contraste.
2 : Sur l'arduino UNO, je contrôle le contraste avec un PWN et à 150 c'est le réglage parfais.
Sur la MEGA c'est une autre histoire (Pourquoi ? j'en sais rien) mais là le pin PWN ne donne pas le même résultat.
Je suis donc obligé de faire ce montage : Pin de contraste de l'afficheur --> Base d'un transistor
GND de l'arduino --> Emetteur du même transistor
Et là, magie... Le contraste est nikel et je ne sais même pas pourquoi car je ne connais pas le montage dis ci dessus, en fait, je l'ai fait au hasard par tatonnement (HONTE A MOI )
Sauriez-vous me dire pourquoi ce montage fonctionne ?
PS: Est-ce normal que les pins de l'arduino MEGA délivrent entre 5 et 6V ?
Sans exagéré tu aurais un bout de code juste pour le contraste ?
On apprend tous les jours sur le forum.
En espérant pouvoir t'aider un jour.
Guns
OK je te fais ça : En reprenant l'exemple hello world de liquidcrystal.h
/*
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!");
pinMode(6, OUTPUT); //Le pin 6 gerera le contraste
analogWrite(6, 150); //Le 150 c'est la valeur à modifier pour augmenter/diminuer le contraste (doit rester entre 0 et 255)
}
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);
}
Les nouvelles lignes que j'ai rajouté sont dans le void setup() :
pinMode(6, OUTPUT); //Le pin 6 gerera le contraste
analogWrite(6, 150); //Le 150 c'est la valeur à modifier pour augmenter/diminuer le contraste (doit rester entre 0 et 255)
Voili Voilou.
Sinon, quelqu'un pour m'expliquer pourquoi le montage présenté dans les postes de départ fonctionne ?
Le contraste sur un LCD est une entree sur laquelle on applique une tension continue pour avoir la meilleure visibilite de ce LCD. permet de passer du tout noir au tout blanc pour faire simple.
Cette tension continue est comprise entre la tension d'alimentation et 0V.
Dans toutes les applications que je connais, on utilise un potentiometre. Generalement 10K. Ce pot est regle une fois pour toute et on n'y reviens pas.
Ces pots sont disponibles sur la Bay pour de cacaouetes.
Tu decides de remplacer ce pot par un transistor une resistance et une sortie PWM. Libre a toi. Mais que cela fonctionne ou pas c'est de ta responsabilite.
Ne serais-tu pas en train de confondre "constraste" et "retroeclairage" ou la, cela se justifie et se cable, comme par hasard, comme tu le dis dans ton exemple !
Le contraste sur un LCD est une entree sur laquelle on applique une tension continue pour avoir la meilleure visibilite de ce LCD. permet de passer du tout noir au tout blanc pour faire simple.
Cette tension continue est comprise entre la tension d'alimentation et 0V.
Dans toutes les applications que je connais, on utilise un potentiometre. Generalement 10K. Ce pot est regle une fois pour toute et on n'y reviens pas.
Ces pots sont disponibles sur la Bay pour de cacaouetes.
Tu decides de remplacer ce pot par un transistor une resistance et une sortie PWM. Libre a toi. Mais que cela fonctionne ou pas c'est de ta responsabilite.
Ne serais-tu pas en train de confondre "constraste" et "retroeclairage" ou la, cela se justifie et se cable, comme par hasard, comme tu le dis dans ton exemple !
Je dis cela, je dis rien
Jacques
Non, réellement, je parle du contraste (les pixels qui sont plus ou moins blanc en arrière plan du texte)
Je rajoute que le système transistor/PWN fonctionne nikel, au moins chez moi après les autres... Je sais pas
Par contre je pense que tu pourrais me dire pourquoi le montage fait "au hasard" fonctionne parfaitement.
Voici les photos sans le montage puis ensuite après le montage "au hasard"
Un grand merci et finalement ma question s'avère constructive.
L'intérêt de passer à une gestion PWN est surtout le fait qu'on n'a pas besoin d'ajouter un potentiomètre supplémentaire. C'est peut-être un composant pas cher, mais un pas cher + un pas cher + un pas cher = un coût qui peut être éviter.
Je prends mon exemple perso, j'ai 50 lcd à installer, donc 50 potentiomètres, si je passe en PWN, j'ai donc 50 potentiomètres en moins à acheter.
Encore merci pour l'explication et le bout de code.
Et niveau consommation et utilisation de processeur, le fait de passer en PWN influe sur les temps de réponses ?
10 pieces pot 10K pour 1,98$ frais de port compris et cela marche a tous les coups.
Pourquoi se prendre la tete avec une experimentation foireuse.
Si tu as un lien serieux avec description de ton systeme je suis preneur.
Jacques
Gunsman76 : si tu as 50 lcd a installer et que tu joues a ce petit jeu, tu prend des fameux risques. Sans compter que la valeur 150 n'est pas garantie pour tous les LCD d'un meme modele. Il te faudra peut-etre 5, 10 ou 20 versions differentes de ton programme. Sans compter les problemes de maintenance quand tu vas devoir remplacer un LCD defect ou abime. Ton transistor et la resistance, tu ne les payes pas ?
Fabinou : je n'ai pas ecrit que tu avais realise ton cablage au "hasard" mais que que cablage que tu as invente est, comme par "hasard" le meme que celui que l'on utilise pour le reglage du retroeclairage. Nuance.
edit : 10 pces pour 0.99$ fpc (et des 3296W de chez Bourns svpl).
JMe87:
10 pieces pot 10K pour 1,98$ frais de port compris et cela marche a tous les coups.
Pourquoi se prendre la tete avec une experimentation foireuse.
Si tu as un lien serieux avec description de ton systeme je suis preneur.
Jacques
Gunsman76 : si tu as 50 lcd a installer et que tu joues a ce petit jeu, tu prend des fameux risques. Sans compter que la valeur 150 n'est pas garantie pour tous les LCD d'un meme modele. Il te faudra peut-etre 5, 10 ou 20 versions differentes de ton programme. Sans compter les problemes de maintenance quand tu vas devoir remplacer un LCD defect ou abime. Ton transistor et la resistance, tu ne les payes pas ?
Fabinou : je n'ai pas ecrit que tu avais realise ton cablage au "hasard" mais que que cablage que tu as invente est, comme par "hasard" le meme que celui que l'on utilise pour le reglage du retroeclairage. Nuance.
edit : 10 pces pour 0.99$ fpc (et des 3296W de chez Bourns svpl).
J'ai utilisé l'expression "par hasard" pour être sur de parler du même montage, saches que si tu avait désigné mon montage comme "un hasard", je n'aurais rien dis puisque c'est ainsi que je le désigne aussi
Mais alors si ce montage "au hasard" est utilisé pour le rétroéclairage, pourquoi fonctionne-t-il ?? J'aimerais comprendre ?!
C'est vrai qu'à y penser, mieux vaut un potard, au moins pas de soucis. Effectivement les lcd venu du pays du soleil levant ne sont pas tous calibré pareil.
Mais ce bout de code est quand même a conserver car très interessant.