Étape 9: Code utile - le VFD de gradation
Le Noritake compatible LCD VFD, j’ai choisi prend en charge les 4 niveaux de luminosité - 100 %, 75 %, 50 % et 25 %. L’écran est très lumineux, le réglage d’intensité et regarderait flagrante dans une pièce sombre. J’ai câblé vers le haut une LDR avec une résistance de 10K pour former un diviseur de tension. Cette tension changeante est lu sur broches A0. Je mets à jour la luminosité à chaque nouvelle chaîne. Vous pourriez certainement le faire plus souvent si vous vouliez.Voici la fonction de réglage de luminosité :
fonction setDisplayBright()
définit la luminosité d’un vfd Noritake LCD compatible
basé sur le niveau de lumière ambiante
nécessite des Bibliothèque innovente personnalisé avec lcd.vfdDim()
s’attend à rien
retourner la valeur nothing
utilise LDRreading et LDRpin comme globals
Sub setDisplayBright()
{
LDRreading = analogRead(LDRpin) ;
Si (LDRreading > 800)
{
lcd.vfdDim(0) ;
}
else if ((LDRreading < = 800) & & (LDRreading > 450))
{
lcd.vfdDim(1) ;
}
else if ((LDRreading < = 450) & & (LDRreading > 200))
{
lcd.vfdDim(2) ;
}
d’autre
{
lcd.vfdDim(3) ;
}
Serial.println(LDRreading) ;
retour ;
}
Ce qui est lcd.vfdDIm() ? C’est une fonction que j’ai ajouté à ma copie locale de la bibliothèque innovente. Voici comment l’ajouter :
Modifiez les fichiers suivants de la bibliothèque dans le répertoire de bibliothèque innovente. Remarque le ' >' est de diff, qui montre comment il est différent de la version originale :
LiquidCrystal.cpp :
255 270 d 254
< / / set gradation sur Noritake LCD compatible VFD
< / / gradation des niveaux :
< / / 0 = 100 %
< / / 1 = 75 %
< / / 2 = 50 %
< / / 3 = 25 %
< void {LiquidCrystal::vfdDim (uint8_t de gradation)
< si ((gradation > -1) & & (gradation < 4)) {}
< digitalWrite (_rw_pin, basse) ;
< envoyer (0 x 28, faible) ;
< digitalWrite (_rw_pin, HIGH) ;
< envoyer (gradation, HIGH) ;
< digitalWrite (_rw_pin, basse) ;
<}
<}
<
LiquidCrystal.h :
79d 78
< vfdDim Sub (gradation uint8_t) ;