#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); // تهيئة شاشة العرض
// ثوابت
const int Vref = 1100; // الجهد المرجعي بالميلي فولت (1.1 فولت)
const int resolution = 1024; // دقة تحويل التمثيل الرقمي للإشارة (10 بت)
int adc[] ={200, 400, 500, 880, 710} ;// مصفوفة لقراءة التحويل الرقمي للإشارة
int currentReading = 0;
void setup() {
Serial.begin(115200);
lcd.begin(16, 2); // تهيئة شاشة العرض مع 16 حرفًا في الصف الواحد و 2 صفوف
lcd.print("Reading ADC & Temp");
delay(2000); // عرض الرسالة الابتدائية لمدة 2 ثانية
lcd.clear();
}
void loop() {
// قراءة التحويل الحالية
int currentADC = adc[currentReading];
// معادلة حساب الجهد بالمللي فولت
float voltage = (float)currentADC * Vref / resolution;
lcd.setCursor(0, 0);// عرض قراءة التحويل الرقمي والجهد
lcd.print("ADC: ");
lcd.print(currentADC);
lcd.setCursor(0, 1);
lcd.print("Voltage: ");
lcd.print((int)round(voltage));
lcd.print("mV");
delay(2000); //العرض لمدة ثانيتين
lcd.clear();// مسح الشاشة للقراءة التالية
// حساب درجة الحرارة وعرضها
float temperature = voltage * 100.0; // قم بتعويض هذا بالصيغة الفعلية لتحويل الحرارة
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print((int)round(temperature));
lcd.print((char)223); // رمز الدرجة
lcd.print("C");
delay(2000); // العرض لمدة 2 ثانية
lcd.clear();// مسح الشاشة للقراءة التالية
// الانتقال إلى القراءة التحويل الرقمي التالية
currentReading = (currentReading + 1) % (sizeof(adc) / sizeof(adc[0]));
}