#include <LiquidCrystal.h>
// Initialisation de l'objet LiquidCrystal avec les broches connectées à l'écran LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int analogPin = A0; // Broche analogique pour la lecture
int analogval = 0;
float vin = 5.0; // Tension d'entrée en volts
float buff = 0;
float vout = 0;
float R1 = 10; // Résistance inconnue
float R2 = 220; // Résistance de référence connue
void setup() {
lcd.begin(16, 2); // Initialisation de l'écran LCD avec 16 colonnes et 2 lignes
lcd.setCursor(0, 0);
lcd.print("Ohmetre ready");
delay(2000); // Affichage d'un message pendant 2 secondes
lcd.clear();
}
void loop() {
analogval = analogRead(analogPin); // Lecture de la valeur analogique
if (analogval > 10) { // Vérification si une valeur significative est lue
buff = analogval * vin;
vout = buff / 1024.0; // Conversion en tension de sortie
if (vout > 0.1) { // Si la tension de sortie est valide
//buff = (vin / vout) - 1;
R1 = R2 * buff; // Calcul de la résistance inconnue
lcd.print(buff);
lcd.setCursor(0, 0);
//lcd.print("Resistance: ");
lcd.setCursor(0, 1);
if (R1 >= 1000) {
lcd.print(R1 / 1000.0, 2); // Conversion en kilo-ohms avec 2 décimales
lcd.print(" kOhm");
} else {
lcd.print(R1, 2); // Affichage en ohms avec 1 décimale
lcd.print(" Ohm");
}
} else { // Si la tension de sortie est trop faible
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pas de resistance");
}
} else { // Si aucune résistance n'est détectée
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Connectez une");
lcd.setCursor(0, 1);
lcd.print("resistance");
}
delay(1000); // Pause de 1 seconde avant la prochaine lecture
lcd.clear();
}