41-Montage sans potentiomètre
Montage sans potentiomètre
Ce programme permettra de faire afficher un message sur un LCD de 16 caractères sur deux lignes sans potentiomètre et réglage de l'intensité du backlight (Rétroéclairage).
Pour cela il vous faut:
Une carte Arduino Uno.
Un afficheur 16×2 Caractères LCD Display Module HD44780.
Et un condensateur de 100µF.
Le montage:
Télécharger mon programme lcd_pilotage_demo
#include <LiquidCrystal.h>
//configuration des pins de l'afficheur LCD en fonction du câblage
LiquidCrystal lcd(12, 11, 5, 4, 3, 6);
int pincon = 9; //Pin de pilotage du contraste
int pinbac = 10; //Pin de pilotage du rétro-éclairage
int valmax1 = 130; // Valeur max du contraste
int valmax2 = 255; // Valeur max du contraste
int tempo = 150; // Valeur de la temporisation
void setup()
{
lcd.begin(16,2); // initialisation de l'afficheur
lcd.setCursor(0, 0); // Positionnement du curseur en position 1 er ligne 1 er caractère
analogWrite(pincon, 95); // Sortie contraste à 95 ( valeur entre 0 et 255)
analogWrite(pinbac, 100); // Sortie du rétro éclairage à 100 (( valeur entre 0 et 255)
lcd.print("Bonjour ! :)"); // Message Bonjour
delay(3000); // Tempo de 3 secondes
}
void loop()
{
//**** Variation du contraste
lcd.clear(); //Efface le message
analogWrite(pinbac, 100); // Réglage du backlight
lcd.setCursor(0, 0); // Positionnement du curseur en position 1 er ligne 1 er caractère
lcd.print("Variation"); // Message Variation
lcd.setCursor(0, 2); // Positionnement du curseur en position 1 er ligne 2 er caractère
lcd.print("du contraste "); // Message contraste
for (int i=0; i <= valmax1; i++){ //Boucle de variation du contraste
analogWrite(pincon, i); // Ecriture de la valeur sur la sortie
lcd.setCursor(13, 2); // Positionnement du curseur en position 13 er ligne 2 er caractère
lcd.print(i); // Affichage de la valeur
delay(tempo); // Tempo
}
for (int i=0; i <= valmax1; i++){ //Boucle de variation du contraste
analogWrite(pincon, (valmax1-i)); // Ecriture de la valeur sur la sortie
lcd.setCursor(13, 2); // Positionnement du curseur en position 13 er ligne 1 er caractère
if ((valmax1-i)==99) {lcd.print(" ");} // Effacement chiffre à droite
lcd.print((valmax1-i)); // Affichage valeur
delay(tempo); // Tempo
}
//****** variation du rétro éclairage
lcd.clear(); //Efface le message
analogWrite(pincon, 95); // Réglage du contraste
lcd.setCursor(0, 0); // Positionnement du curseur en position 1 er ligne 1 er caractère
lcd.print("Variation"); // Message varaition
lcd.setCursor(0, 2); // Positionnement du curseur en position 1 er ligne 2 er caractère
lcd.print("Eclairage "); // Message Eclairage
for (int i=0; i <= valmax2; i++){ //Boucle de variation du rétroéclairage
analogWrite(pinbac, i); //Ecriture de la valeur sur la sortie
lcd.setCursor(13, 2); // Positionnement du curseur en position 13 er ligne 2 er caractère
lcd.print(i); // Affichage de la valeur
delay(tempo);
}
for (int i=0; i <= valmax2; i++){ //Boucle de variation du rétroéclairage
analogWrite(pinbac, (valmax2-i)); // Ecriture de la valeur sur la sortie
lcd.setCursor(13, 2); // Positionnement du curseur en position 13 er ligne 1 er caractère
if ((valmax2-i)==99) {lcd.print(" ");} // Effacement chiffre à droite
lcd.print((valmax2-i)); // Affichage de la valeur
delay(tempo); // Tempo
}
}
Une fois votre montage effectué bien sur hors tension. Brancher votre carte en USB sur votre ordinateur. Ouvrir le logiciel Arduino et ouvrir le fichier.
Après faire un clique sur l’icône pour faire le transfert vers la carte Arduino Uno.
Faire un reset de la carte.
Voici le résultat:
Une autre solution: C'est de faire un pont diviseur de tension avec deux résistances. Dans mon cas, j'ai pris 1/5 de la tension sous 5Volts cela fait 1Volt. Mes valeurs de résistances sont 4,7KΩ et 1KΩ.
Mise à jour 05/08/2013
Créé avec HelpNDoc Personal Edition: Créer des aides HTML, DOC, PDF et des manuels depuis une même source