Modification de la luminosité sur un écran LCD Hitachi HD44780

11

Je termine un projet - un réveil de jeu LED. Étant donné qu'il s'agit d'une horloge, j'ai besoin d'avoir un moyen d'économiser de l'énergie, que mon Uno R3 + mange actuellement comme un politicien. Ma question est la suivante: comment éteindre l'écran ou éteindre le rétroéclairage à l'aide d'un logiciel uniquement sur un écran LCD Hitachi HD44780 16x2? Ou comment définir un mode veille sur un composant? La façon dont je prévois de l'éteindre est avec un télémètre à ultrasons, si je m'approche, il s'allume à l'écran. Si quelque chose que je dis n'a pas de sens, demandez-moi de clarifier, je suis un peu pressé.

M. Floppy
la source
La possibilité de le faire dépend entièrement de la manière dont l'écran LCD est connecté. Le jeu de commandes HD44780 ne comporte aucune disposition pour le contrôle du rétroéclairage. Vous devrez ajouter un mécanisme externe pour contrôler le rétro-éclairage.
Connor Wolf

Réponses:

8

Placez un transistor en série avec une résistance 33R entre la broche LCD 16 (masse du rétroéclairage) et GND et allumez et éteignez le transistor avec une broche numérique. De cette façon, vous pourrez activer et désactiver le rétro-éclairage.

Vous pouvez avoir un contrôle plus fin de la luminosité si vous mettez une impulsion PWM sur ladite broche. Appelez simplement analogWrite(D3, value)où se valuetrouve la luminosité souhaitée.

Les schémas sont ci-dessous. Il s'agit de l' écran LCD Freetronics 16x2 .

Contrôle de la luminosité de l'écran LCD

Ricardo
la source
+1 pour le schéma, mais je ne sais pas pourquoi il y a deux résistances (R7 & R8).
Madivad
1
@Madivad - Je suppose que c'est pour augmenter la puissance dissipée maximale que les résistances peuvent prendre. Les deux résistances 68R en parallèle produisent une résistance 34R équivalente mais doublent la puissance maximale qui peut être dissipée à travers une seule résistance. Je ne me souviens pas des résistances recommandées par Freetronics, mais dans mon cas, j'ai utilisé deux résistances 1 / 4W 68R et la carte fonctionne correctement. De plus, je suppose que les résistances 68R sont plus courantes. Cela est certainement vrai pour moi car j'ai beaucoup de résistances 68R dans mes bacs et aucune 33R.
Ricardo
Je sais que c'est "ancien", mais j'espère que quelqu'un le remarquera ... J'ai du mal à comprendre comment le transistor se connecte (car je ne connais pas l'icône ci-dessus pour le transistor), d'où vient le E, B, C se connecter à?
warath-coder
@wara - C'est un transistor à effet de champ (FET), pas un BJT. Vous chercherez donc à connecter son drain, sa source et sa grille. Dans tous les cas, vous obtiendrez une meilleure aide en posant une question distincte, liée à celle-ci.
Ricardo
5

Au lieu de lier le rétro-éclairage directement à V + et GND, connectez-le à une broche PWM (vous devrez peut-être utiliser un pilote séparé si la broche ne peut pas générer / absorber suffisamment de courant). Cela vous permettra de contrôler la luminosité via analogWrite().

Éteignez l'écran LCD ( LiquidCrystal::noDisplay()) lorsque vous ne l'utilisez pas activement. Le contenu restera en mémoire mais les segments LCD ne seront pas entraînés.

Réglez les différents bits dans le PRRregistre pour désactiver les périphériques non utilisés.

Et n'oubliez pas de mettre le processeur en veille lorsqu'il n'a pas besoin de fonctionner . Consultez la section «Gestion de l'alimentation et modes veille» de la fiche technique pour plus d'informations à ce sujet et sur le PRRregistre, ainsi que la <avr/sleep.h>documentation d'AVR Libc.

Ignacio Vazquez-Abrams
la source
3
Dormir sur le MCU est inutile, car le reste des pièces d'un ono commun consomment tellement d'énergie qu'il ne fournit aucune réduction significative de la consommation globale ..
Connor Wolf
2
Vraiment, si vous voulez réellement qu'un arduino soit de faible puissance, vous avez besoin d'un arduino pro (ou de toute autre carte sans série USB intégrée), puis vous devrez mettre un régulateur avec un courant de repos au repos décemment faible dessus. C'est un peu compliqué.
Connor Wolf
Absolument. Quelqu'un qui veut conserver le dernier peu d'énergie concevra sa propre carte et spécifiera ses composants en conséquence.
Ignacio Vazquez-Abrams
Oui, mais mon point de vue est que vous ne pouvez même pas obtenir une conservation d'énergie significative sur la plupart des cartes Arduino, car même leurs vregs ont un horrible courant de repos (2 ma +, IIRC). Ensuite, il y a le FTDI / ATmega16U2, que vous ne pouvez pas désactiver, etc ....
Connor Wolf
@ Mr.Floppy: IOW, choisissez autre chose. Quelque chose avec moins de pièces.
Ignacio Vazquez-Abrams