#include // Déclaration de la librairie de gestion de l'afficheur LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Mode de connexion de l'afficheur (objet appelé lcd) // Déclaration des variables #define Smetre 0 // Définition de la constante Smetre (= 0) int tension; //Initialisation à 0 de la variable tension ////////////////// SETUP //////////////////// void setup() // Instructions effectuées qu'une seule fois { lcd.begin(16, 2); // Définition de la taille de l'afficheur : 2 lignes de 16 caractères } /////////////////// PROGRAMME PRINCIPAL /////////////// void loop() { lcd.clear(); // Effacement de l'afficheur lcd.setCursor(0,0); // Curseur positionné position 0, ligne 0 lcd.print("Test du S-metre"); // Affichage : Test du S-metre // La variable tension est lue sur l’entrée analogique A0, plage 0 à 1023 ramenée de 0 à 500 tension = map(analogRead(Smetre), 0, 1023, 0, 500); lcd.setCursor(0,1); // Curseur positionné position 0, ligne 1 if (tension < 7) // En dessous du seuil de 7 … { lcd.print("<"); // … affichage de < en début de ligne lcd.setCursor(10,1); // Positionnement du curseur sur le 11ème digit lcd.print(" 6 && tension < 47) // Affichage du niveau S1 pour des valeurs d’entrée entre 6 et 47 { lcd.print(char (255)); // Le caractère ASCII 255 correspond à █ lcd.setCursor(11,1); // Le niveau en clair est affiché à partir de la position 12 lcd.print("S1"); } if (tension > 46 && tension < 76) { lcd.print(char (255)); lcd.print(char (255)); // Deux █ sont donc affichés l’un après l’autre lcd.setCursor(11,1); lcd.print("S2"); } if (tension > 75 && tension < 110) { lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); // Trois █ et ainsi de suite… lcd.setCursor(11,1); lcd.print("S3"); } if (tension > 109 && tension < 146) { lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.setCursor(11,1); lcd.print("S4"); } if (tension > 145 && tension < 181) { lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.setCursor(11,1); lcd.print("S5"); } if (tension > 180 && tension < 216) { lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.setCursor(11,1); lcd.print("S6"); } if (tension > 215 && tension < 249) { lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.setCursor(11,1); lcd.print("S7"); } if (tension > 248 && tension < 290) { lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.setCursor(11,1); lcd.print("S8"); } if (tension > 289 && tension < 350) { lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.setCursor(11,1); lcd.print("S9"); } if (tension > 349 && tension < 400) { lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(">"); lcd.setCursor(11,1); lcd.print("S9+10"); } if (tension > 399) { lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255)); lcd.print(char (255));// Neuf █ lcd.print(">>"); lcd.setCursor(11,1); lcd.print("S9+20"); } delay(200); // Retard provisoire de 200 ms pour un meilleur affichage }