السلام عليكم
طريقة حساب القيمة في التحويل من analog الى digital
كود:
Vdigital =Vinput * Resolution/Vref
Vinput: الاشاراة المراد قرائتها ( حساس حرارة, حساس مسافة...)
Resolution:
تحسب باستخدام المعادلة التالية:
حيث n = قيمة البت (bit) فمثلاً:
1023 اذا كان 10 bit resolution
255 اذا كان 8 bit resolution
Vref: في العادة يكون مساوي لقيمة ال vdd المستخدم في تشغيل المايكروكنترولر..فمثلاً بعض المايكروكنترولر يشتغل على 3 فولت (فيكون vref= 3) والبعض يشتغل على 5 فولت(vref=5)...ولكن بعض المايكروكنترولر يعطي سماحية للمبرمج بتغيير قيمة ال vref الى قيمة اخرى غير ال Vdd..مثلاً (Vref= Vdd/2).
فمثلاً: لو عندنا حساس ضوئي (light sensor) ووصلناه على المايكروكنترولر .وتم ضبط المايكروكنترولر 10 bit resolution ووضع ال Vref= Vdd=5V..وكانت قيمة الجهد الخارجة من الحساس الضوئي= 2.54 فولت..فكم قيمة القراءة الرقمية لهذا الجهد؟
Vdigital= 2.54 * 1023/5= 519
ان شاءالله تكون وضحت الفكرة..نقطة اخيرة ليس دائما اعلى resolution يكون افضل..لانه راح تكون القراءة جداً حساسة ويؤدي الى عدم استقرار البرنامج..مثلاً كنت اعمل مع صديقي على مشروع تحكم بمستوى الماء في اسطوانه باستخدام PLC وليس المايكركنترولر.. وكان مستوى الماء يحسب عن طريق حساس يحسب ضغط الماء..فعند ضخ الماء داخل الاسطوانه..الضغط يتغير (يزيد وينقص) حسب الموجات المتكونه على سطح الماء خلال ضخ الماء في الانبوب..وبالتالي القراءه كانت تزيد وتنقص بسرعه عالية جداً..وكنا نستخدم 1023 resolution...فهذا يعني ان القراءة تزيد وتنقص عندما ترتفع او تنقص قراءة الحساس بمعدل(5/1023= 4.8 ملي فولت) فقمنا بتقلليل ال resolutio الى 50 بدل 1024..بحيث ان القراءة تزيد و تنقص عند زيادة او نقصان قيمة الحساس بمقدار 100 ملي فولت..وقيمة resolution تم اختيارها بعد ملاحظة ان قيمة الضغط تزيد وتنقص بمقدار تقريبا 100 ملي فولت لكل انش.
ضبط المايكروكنترولر لل 50 resolution مستحيلة ..ولكن يمكن تنفيذها بتنفيذ عمليات حسابية بعد التحويل..فمثلاً لو كان المايكروكنترولر يعمل على 1023 resolution ..نقوم بقراءة قيمة التحويل وضربها في (50/1023) وبكذا قدرنا نحول القراءة الى 50 resolution.