Go Down

Topic: Varier la couleur d'un lcd  (Read 198 times) previous topic - next topic

YanisHazard

bonjour j'aimerai faire varier la couleur de mon écran selon la température voici mon code qui fonctionne très bien mais j'ai beaucoup tenté pour pouvoir ajouter des lignes de codes qui permettent de changer la couleur selon la température mais en vain . Cordialement.

#include <LiquidCrystal.h>
#include "rgb_lcd.h"

rgb_lcd lcd;

const byte colorR = 255;
const byte colorG = 255;
const byte colorB = 255;

   
void setup()
{
  Serial.begin(9600); 
 lcd.begin(16, 2); 
       lcd.setRGB(colorR, colorG, colorB);                   

}
 
void loop()                   
{


 int reading = analogRead(A0);
 float voltage = reading * 5.0;
  voltage /= 1024.0; 
 float temperatureC = (voltage - 0.5) * 100 ;
 int val = temperatureC;



  lcd.print(temperatureC);
 lcd.print(" Degres ");
 delay(2000);
}

lesept

Photo et modèle de l'écran ? C'est quelle couleur que tu veux changer ?
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

YanisHazard

GROVE LCD RGB backlight, je veux que si la temp est comprise entre 19 et 21 degres alors la couleur de lecran devient verte
Pour la photo je peux pas pour le moment prendre de photo

dbrion06

Bonjour,
Je constate que, de façon très cartésienne, vous avez sérié les problèmes;
or, pour régler un problème de chiffres collés, je vous ai proposé une solution consistant à rafraîchir l'écran à chaque fois -et vous ai donné une fonction pour ce fer- Je crois qu'il suffit d'adapter un tout petit peu cette fonction pour coloriser votre écran lors de chaque rafraîchissement.

fdufnews

si la temp est comprise entre 19 et 21 degres alors la couleur de lecran devient verte
si tu remplaces si par if et "la couleur de lecran devient verte" par lcd.setRGB(colorR, colorG, colorB); avec les bonnes valeurs ton code n'est pas loin d'être écrit.

lesept

Pas besoin de photo, je l'ai trouvé sur Internet
Quel est ton niveau de programmation en C ? Parce que ce que tu demandes me semble assez simple à faire :

Dans la loop, tu calcules la température, il suffit de faire un test :
  • si la température est comprise entre 19 et 21, tu mets la couleur verte
  • sinon, tu mets la couleur de base
Sais-tu faire un test, avec if ? Ici tu as une condition double : >=19 et <=21, donc il te faut aussi utiliser un opérateur booléen.

Pour choisir la couleur, ça semble être du RGB : tu as 3 arguments, un pour le Rouge (R), un pour le Vert (G) et un pour le Bleu (B). Les valeurs sont à prendre entre 0 et 255 (compris).
Pour du vert pur : R=0, G=255, B=0. Pour du blanc, les 3 valeurs à 255.

Il te reste à écrire les lignes qui choisissent la couleur en fonction de la température, et utiliser la fonction lcd.setRGB() avec les bons arguments puis mettre tout ça après la ligne
Code: [Select]
int val = temperatureC;
C'est pas sorcier... (c'est ce que disent les autres !)
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

dbrion06

Je vais mettre une solution (bleu si c'est froid, vert si c'est confortable, rouge si c'est chaud dans le post jumeau)

YanisHazard

Merci beaucoup de vos réponses en vous lisant j'ai compris ce que je dois changer merci encore de votre aide

Go Up