voila j'ai une petite question. je suis en train de réaliser un projet qui va fonctionner avec un écran LCD (communication série via module i2 c) et qui dans un premier temps fonctionnera sur batterie. dans un souci de gestion de l'énergie j'aimerais réaliser une gestion du rétroéclairage de l'écran automatique mais pour l'instant je bloque un peu. en fait j'aimerais faire en sorte que l'écran puisse rester allumer pendant par exemple 5 secondes et s'éteigne toute seule. le truc c'est que je n'ai pas envie d'utiliser la fonction delay qui bloquerait tout le système pendant les 5 secondes. j'aimerais donc savoir si quelqu'un connaît une fonction ou si quelqu'un a une idée de code pour imposer une minuterie à l'écran tout en permettant au microcontrôleur de continue à exécuter des tâches.
super merci ça fonctionne carrément bien au passage j'ai une autre question ^^ (oui je sais, compliqué le mec :p)
j'essaye de faire fonctionner cette ligne:
if(lcd.backlight()==HIGH)
mais le programme n'aime pas trop. donc pour l'instant je me suis munie d'un transistor qui sert d'interrupteur avec les deux pins du module i2c associé au code:
if (digitalRead(pin_lcd)==HIGH)
(qui fonctionne bien) mais j'aimerais tout de même comprendre pourquoi cette ligne pose problème.
lcd.backlight() c'est une commande pour allumer le backlight, ça ne retourne pas l'état du backlight.
Si tu veux connaitre l'état du backlight, il faut le mémoriser dans une variable.
j'essaye ça dès demain et je ferrais part du résultat
ce n'est pas que j'aime pas les transistors mais si on peut s'en passer en plus de la petite résistance qui va avec, ça peut faire économiser un peu d’énergie
spartan117du13:
j'essaye de faire fonctionner cette ligne:
if(lcd.backlight()==HIGH)
Pourquoi as-tu besoin de connaître l'état ? Dans la mesure ou tu as les fonctions backlight() et noBacklight(), tu n'as pas besoin de savoir dans quel état de backlight se trouve l'écran: si tu envoies, par exemple, noBacklight() alors qu'il est déjà éteint, il va rester éteint.
Ceci étant, il existe, il me semble, une fonction getBacklight()
pour répondre à ta question 3Sigma, en fait le projet consiste à contrôler la lumière de ma chambre (donc secteur) a l'aide d'une télécommande via un relai.
j'ai donc ajouté quelques options un peu sympas pour donner un peu de sens au projet.
Donc, pour me retrouver dans toutes ces options j'ai ajouté un lcd. le truc c'est que je pourrais par exemple avoir besoin de connaître l'option dans laquelle le système est sans être obligé de changer d'option. C'est tout bête en fait il faut juste que je puisse allumer et éteindre mon lcd a l'aide d'un bouton. une fois allumé je n'aurais plus qu'à lire la configuration.
Cependant ma télécommande n'envoie qu'un seul code par boutons et je n'avais pas envie d'utiliser un bouton pour allumer et un bouton pour éteindre. donc pour utiliser qu'un seul bouton qui puisse éteindre et/ou allumer le lcd il fallait avant tout que le programme connaisse l'état du lcd via ce code
if (Irecep==-20401) //allumer ou éteindre le rétro-éclairage
{
temps=millis();
if (ec == true)
{
lcd.noBacklight();
ec = false;
}
else
{
lcd.backlight();
ec = true;
}
}
je vais aussi tenter le code que tu m'as donné, on verra bien