#include <Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(6, 7, 11, 10, 9, 8);
// Tanımlar
const int analogPin = A0;
const float Vin = 5.0; // Arduino'nun referans voltajı
const float R1 = 1000.0; // Bilinen direnç değeri, 1kΩ
void setup() {
lcd.begin(16, 2);
Serial.begin(9600);
}
void loop() {
// Analog pin değerini oku
int raw = analogRead(analogPin);
// Voltaj çıkışını hesapla
float Vout = (raw * Vin) / 1024.0;
// Direnç değerini hesapla
float R2 = 0;
if (Vout > 0) {
R2 = R1 * ((Vin / Vout) - 1);
}
// Seri monitöre değerleri yazdır
Serial.print("Raw: ");
Serial.print(raw);
Serial.print(" Vout: ");
Serial.print(Vout, 2);
Serial.print(" V R2: ");
Serial.println(R2);
// LCD ekranı temizle ve verileri göster
lcd.clear();
// İlk satırda açıklama yazdır
lcd.setCursor(4, 0);
lcd.print("OHMMETRE");
// Voltaj çıkışını göster
lcd.setCursor(0, 1);
lcd.print("Vout: ");
lcd.print(Vout, 2); // Voltajı 2 ondalıklı olarak göster
lcd.print(" V");
// R2 hesapla ve göster
lcd.setCursor(0, 1);
if (raw == 0) {
lcd.setCursor(0, 1);
lcd.print("Connect");
} else {
lcd.setCursor(0, 1);
if (R2 >= 1000.0) {
lcd.print("R2: ");
lcd.print(R2 / 1000.0, 2); // K Ohm cinsinden 2 ondalıklı olarak göster
lcd.print(" KOhm");
} else {
lcd.print("R2: ");
lcd.print(R2, 2); // Ohm cinsinden 2 ondalıklı olarak göster
lcd.print(" Ohm");
}
}
// Bekleme süresi
delay(1000);
}