قراءة المزيد
#include
#include
#include
#include
#define O2_PIN 0 // يجب تعديل هذه القيمة لتتوافق مع الدبوس المتصل بالمستشعر
// دالة لتحويل القيمة التناظرية إلى نسبة تركيز الأكسجين
float analogToOxygen(int analogValue) {
// هذه المعادلة تعتمد على نوع المستشعر والمعايرة.
// القيم الافتراضية:
// 0 يعادل 0% أكسجين و1023 يعادل 100% أكسجين.
float voltage = (analogValue * 5.0) / 1023.0; // تحويل القراءة إلى فولت
float oxygenConcentration = (voltage / 5.0) * 100; // تحويل الفولت إلى نسبة
return oxygenConcentration;
}
int main() {
// تهيئة مكتبة wiringPi للتعامل مع الدبابيس
if (wiringPiSetup() == -1) {
std::cerr << "Failed to initialize wiringPi!" << std::endl;
return -1;
}
while (true) {
// قراءة قيمة التناظرية من الدبوس
int analogValue = analogRead(O2_PIN);
// تحويل القيمة إلى نسبة الأكسجين
float oxygenLevel = analogToOxygen(analogValue);
// عرض القيمة
std::cout << "Oxygen Concentration: " << oxygenLevel << "%" << std::endl;
// الانتظار لمدة ثانية قبل القراءة التالية
sleep(1);
}
return 0;
}
1 Reviews
أزال المؤلف هذا التعليق.
ردحذف