Comment créer un menu sur l'écran LCD à l'aide d'Arduino Uno

Comment créer un menu sur l'écran LCD à l'aide d'Arduino Uno
Pour utiliser les microcontrôleurs pour effectuer différentes tâches, le moyen le plus efficace pour utiliser les planches Arduino car ils facilitent l'interfaçage avec le microcontrôleur. L'Arduino fournit à ses utilisateurs une grande variété de conseils Arduino ayant différents types de microcontrôleurs. De plus, les microcontrôleurs peuvent être interfacés avec un certain nombre de périphériques comme les LCD et les capteurs à l'aide des planches Arduino. En interfaçant différents appareils avec Arduino, nous pouvons faire un certain nombre de projets. Par exemple, comme faire un ventilateur à température contrôlée, mesurer la température, faire une alarme incendie et bien d'autres. Nous avons créé un petit projet de création d'un menu utilisant Arduino IDE et afficher ce menu sur LCD. De plus, les menus peuvent être utilisés lors de la conception d'un système automatisé ou de tout système de surveillance.

Comment créer un menu à l'aide d'Arduino sur l'écran LCD

La création d'un menu utilisant Arduino peut être utile pour effectuer plusieurs tâches en cas de besoin. En pratique, nous pouvons voir l'utilisation des menus dans nos téléphones portables ou tout appareil intelligent capable de faire des fonctions spécifiques. En bref, le menu est une liste d'options ou d'actions que l'on peut faire avec le périphérique respectif, nous avons donc utilisé le matériel suivant pour créer un menu à l'aide d'Arduino sur LCD:

  • Arduino Uno
  • Fils de connexion
  • Un potentiomètre
  • Quatre boutons poussoirs
  • Une conduite
  • Un affichage en cristal liquide (16 × 2)
  • Un buzzer
  • Un capteur de température (LM35)

Les schémas sont donnés ci-dessous:

Assemblage matériel pour créer un menu à l'aide d'Arduino

Nous avons assemblé les composants de telle manière que nous avons d'abord placé tous les composants sur une planche à pain, puis en utilisant les fils de connexion, chaque composant est interfacé avec Arduino. Nous avons publié une image ci-dessous pour l'assemblage matériel à travers lequel les connexions des composants peuvent être comprises facilement.

Les fils verts connectent les épingles de données de l'écran LCD avec Arduino tandis que les fils gris connectent les boutons poussants avec Arduino. Le capteur de température est directement connecté à l'Arduino sans aucun fils de connexion car les fils de connexion déforment parfois la sortie du capteur. Les composants sont alimentés en utilisant la broche à 5 volts d'Arduino.

La séquence de bouton est mentionnée dans l'image ci-dessus.

Code Arduino pour créer un menu

Nous avons créé un menu ayant trois options, la première consiste à activer et à désactiver la LED, la seconde mesure la température et la troisième sonne une alarme:

#include // bibliothèque pour l'écran LCD
LCD LiquidCrystal (7,6, 5, 4, 3, 2); // épingles Arduino pour l'écran LCD
int vcc = a0; // A0 PIN ALIMENTATION DE LM35
int vout = a1; // a1 broche pour la sortie du LM35
int gnd = a2; // a2 broche pour la sortie du LM35
Tempère flottante; // variable pour stocker la valeur de température
Valeur flottante; // stockant la valeur du capteur de température
Const Byte UpbuttonPin = 12; // Arduino Pin pour le bouton UP
Const byte downbuttonpin = 11; // broche arduino pour le bouton Down
Const Byte RightbuttonPin = 10; // Pin Arduino pour le bouton droit
Const Byte LeftButtonPin = 8; // Arduino Pin pour le bouton de gauche
Const Byte Buzzerpin = 9; // épingle arduino pour le buzzer
Const Byte LEDPin = 13; // Pin Arduino pour LED
String MeniUtems [] = // Création de la chaîne des options dans le menu
"Commutateur LED",
"Température",
"Buzzer Switch"
;
Menufonctions void (menu int, octet à droite, octet à gauche) / * Création des fonctions des options fournies dans le menu * /

if (menu == 1) // pour la première option

si (à droite == 1) // si le bouton droit est appuyé

LCD.setCursor (0, 1); // définir la place pour les données sur l'écran LCD
LCD.imprimer ("off"); // imprimer l'option OFF
LCD.setCursor (10, 1); // définir la place pour les données sur l'écran LCD
LCD.Imprimer ("sur <<");// move the cursor on the ON option
DigitalWrite (LEDPin, High); // allume la LED

si (gauche == 1) // si le bouton de gauche est enfoncé alors

LCD.setCursor (0, 1); // Définition de la place pour les données sur l'écran LCD
LCD.imprimer <<");// printing the off option
LCD.setCursor (10, 1); // définir la place pour les données sur l'écran LCD
LCD.imprimer ("on"); // imprimer l'option ON
DigitalWrite (LEDPin, Low); // éteindre la LED


if (menu == 2) // Si la deuxième option du menu est sélectionnée

Value = analogRead (vout); // Lire la sortie du capteur
Temp = valeur * 0.48; // Conversion des valeurs analogiques en valeurs de température
LCD.setCursor (0, 1); // définir la place pour les données sur l'écran LCD
LCD.imprimer ("température:"); // affichant les données
LCD.setCursor (12, 1); // définir la place pour les données sur l'écran LCD
LCD.imprimer (temp); // affichant la valeur de la température

if (menu == 3) // si la troisième option est sélectionnée

si (à droite == 1) // si le bouton droit est appuyé

LCD.setCursor (0, 1); // définir la place pour les données sur l'écran LCD
LCD.imprimer "); // Impression de l'option OFF
LCD.setCursor (10, 1); // définir la place pour les données sur l'écran LCD
LCD.Imprimer ("sur <<");// move the cursor on the ON option
Tone (Buzzerpin, 125); // allume le buzzer

si (gauche == 1) // si le bouton gauche est appuyé sur

LCD.setCursor (0, 1); // définir la place pour les données sur l'écran LCD
LCD.imprimer <<");// move the cursor on the off option
LCD.setCursor (10, 1); // définir la place pour les données sur l'écran LCD
LCD.print ("on"); // Impression de l'option ON
notone (buzzerpin); // éteignez le buzzer



// Création du modèle de menu
Template / * Variable pour le nom de l'option et pour la taille du menu * /
size_t MeniUtemSsize (t (&) [nombreOfSize]) return NumberOfSize; / * Nom de l'option de menu et nombre d'options * /
int numberofMenuItems = MenuItemSsize (MenuItems) - 1;
int CurrentMenuem = 0; // Variable pour stocker l'option de courant
Int PREVERMENUITEM = 1; // Variable pour stocker l'option précédente
Byte Button_Flag = 0;
Long-signé Long Précéaire Millis = Millis ();
// Fonction de configuration
void setup()

PinMode (LEDPin, sortie); // Définition du mode PIN pour LED
PinMode (VCC, sortie); // Définition du mode PIN pour la broche d'alimentation pour le capteur
PinMode (Vout, entrée); // Définition du mode PIN pour la broche de sortie du capteur
PinMode (GND, sortie); // Définition du mode PIN pour la broche de terre du capteur
// Définition des états pour l'alimentation et les épingles au sol pour les capteurs
DigitalWrite (VCC, High); // Donnant l'état de haut Arduino A0 PIN HIGH
DigitalWrite (GND, Low); // Donner à l'état bas de la broche Arduino A2
PinMode (UpbuttonPin, Input_pullup); // Affectation du mode INPUT_PULLUP UP
pinmode (downbuttonpin, input_pullup); / * attribuer le bouton up input_pullup mode * /
pinMode (RightbuttonPin, Input_pullup); / * Attribution du bouton UP INPUT_PULLUP MODE * /
pinMode (LeftButtonPin, Input_pullup); / * Affectation du bouton UP INPUT_PULLUP MODE * /
LCD.commencer (16,2); // initialisation des dimensions de l'écran LCD
LCD.clear (); // effacer le LCD
LCD.setCursor (0, 0); // Définition de la place pour que les données soient affichées sur LCD
LCD.imprimer («bienvenue à»); // données à afficher sur l'écran LCD
LCD.setCursor (3, 1); // Définition du lieu pour que les données soient affichées sur l'écran LCD
LCD.print ("menu Arduino"); // Données à afficher sur LCD
retard (6000); // temps pour lequel les données seront affichées sur l'écran LCD
LCD.clear (); // effacer le LCD
LCD.setCursor (0, 0); // Définition du lieu pour que les données soient affichées sur l'écran LCD
LCD.Imprimer ("Linuxhint.com "); // Données à afficher sur l'écran LCD
retard (7000); // temps pour lequel les données seront affichées sur l'écran LCD
LCD.clear (); // effacer le LCD

// en utilisant si des conditions pour définir la fonctionnalité de chaque bouton
VOID LOOP ()

if (DigitalRead (RightbuttonPin) == Low && Button_flag == 0) / * Si le bouton droit est appuyé sur * / /

Menufonctions (CurrentMenuem + 1, 1, 0); // Déplacez une étape à droite
Button_flag = 1;
Précédent Millis = Millis ();

if (DigitalRead (LeftButtonPin) == Low && Button_flag == 0) / * Si le bouton gauche est appuyé sur * / /

Menufonctions (CurrentMenuem + 1, 0, 1);
Button_flag = 1;
Précédent Millis = Millis ();

if (DigitalRead (upbuttonPin) == Low && Button_flag == 0) / * Si le bouton UP est appuyé sur * / /

++CurrentMenuem;
if (currentMenuem> NumberOfMenuItems)

CurrentMenuItem = NumberOfMenuItems;

Button_flag = 1;
Précédent Millis = Millis ();

else if (DigitalRead (downbuttonpin) == Low && Button_flag == 0) / * Si le bouton Down est appuyé sur * / /

CurrentMenuem--;
if (currentMenuem = 400)

Précédent Millis = Millis ();
Button_flag = 0;

Pour résumer le fonctionnement du code Arduino donné ci-dessus, nous pouvons dire qu'au début, nous avons attribué des épingles à l'écran LCD, au capteur de température, au buzzer et aux boutons push. Ensuite, nous avons créé un menu en ayant des options comme la commutation de LED, la détection de température et la commutation du buzzer.

Nous avons utilisé les conditions de si.

Dans la fonction de configuration, toutes les broches Arduino se voient attribuer leurs modes et la dimension de l'écran LCD est initialisée.

En venant à la fonction Loop, nous avons défini la fonctionnalité de chaque bouton utilisé dans le programme Arduino. Il y a quatre boutons qui sont utilisés dans ce programme: deux sont les boutons à bascule et les deux autres sont utilisés comme interrupteur ON / OFF pour les appareils connectés.

Implémentation matérielle pour la création d'un menu à l'aide d'Arduino Uno

Les images de la sortie du programme Arduino sur le matériel sont publiées dans la séquence du flux de code Arduino. Pour naviguer dans le menu, appuyez sur les boutons «Up» et «Down» pour effectuer des fonctions, appuyez sur les boutons «gauche» et «droite».

La première option du menu est l'interrupteur LED:

Lorsque la LED est en dehors de l'état:

Lorsque le bouton de droite est appuyé sur la LED sera activée:

La deuxième option dans le menu est la température:

L'option suivante est la commutation du buzzer:

Lorsque le buzzer est à l'état lorsque le bouton droit est enfoncé:

Le buzzer est éteint lorsque le bouton gauche est enfoncé:

Conclusion

Pour faire différents projets au niveau débutant ou avancé, la manière la plus réalisable qui vient à l'esprit utilise la plate-forme Arduino. Cette plateforme offre une variété d'options pour les utilisateurs en fonction des exigences du projet. De même, cette plate-forme est une sorte de package complet car il fournit les deux types de logiciels d'assistance et de matériel. Ainsi, faire des projets à l'aide d'Arduino donne une chance d'apprendre et de comprendre différents concepts sur les circuits. Nous avons également réalisé un projet de création d'un menu à l'aide d'une carte Arduino Uno et de l'affichage sur un LCD 16 × 2.