مطلوب لمعالجة النص. لن أرفض المساعدة :)
مكتبة التحكم في الجهد Arduino.
الفئة هي قالب ويستخدم معلمة واحدة: uint8_t _id = 0 . أول معلمة غير مسببة تنقل بشفافية قيمة uint8_t إلى القوارير الناتجة ، والتي تتيح لك تحديد الفئة عند استخدام عدة نسخ من الفئة لكل قارورة واحدة. على سبيل المثال PIN قراءة ADC:
VoltageControl < A1 > Volt1 ;
VoltageControl < A2 > Volt2 ;
//...
Volt1 . SetRequest ( OnRequestVoltage );
Volt2 . SetRequest ( OnRequestVoltage );
//...
int32_t OnRequestVoltage ( uint8_t id )
{
return analogRead ( id );
}للراحة ، يحتوي الفصل على اثنين من المصممين.
` VoltageControl ()` مصمم فئة بدون معلمات. عند استخدامها ، يجب أن تنقل الإعدادات من خلال طرق Set .
VoltageControl ( request_t callback_req , uint16_t interval_req , response_t callback_res , bool once , uint32_t coefficient , int32_t vmin , int32_t vmax )مصمم فئة يشير إلى جميع الإعدادات.
SetResponse() ، معامل الترجمة لقيمة ACP ، الحد الأدنى من الجهد المسموح به ، والحد الأقصى للجهد المسموح به. int32_t OnRequestVoltage ( uint8_t id ) عندما يكون الفصل ضروريًا لقراءة قيمة ADC ، سيتم سبب وظيفة القارورة هذه. يمكنك تنفيذ أو طريقة متكاملة لقراءة ADC ( analogRead() ) ، والعمل مباشرة مع السجلات أو قراءة ADC خارجي لأي إطار متاح.
void OnResponseVoltage ( uint8_t id , int32_t value , int8_t state )عندما تحتاج إلى إخطار البرنامج الرئيسي حول التغييرات ، فإن هذا الوظيفة سيكون بمثابة تبادل. يمكنك اتخاذ قرار بشأن تفرع الكود والوفاء بكل ما تحتاجه هنا.
GetValid() . void SetRequest ( request_t callback , uint16_t interval )تشير الطريقة إلى وظيفة خزان لقراءة ADC.
void SetResponse ( response_t callback , bool once = false) تشير الطريقة إلى قياس الجهد لنتيجة قياس الجهد. إذا كان once = true ، فإن نداء معدلات وظائف متعطلة فقط لن يحدث فقط عند تغيير الحالة (انخفاض ، زيادة ، الجهد الطبيعي) ، وإلا فإن التحدي سيحدث في كل قياس ADC.
void SetCoefficient ( uint32_t coefficient )تحدد الطريقة معامل ترجمة قيمة ACP إلى الموجات الدقيقة.
void SetMin ( uint32_t vmin )تحدد الطريقة الحد الأدنى للجهد المسموح به.
void SetMax ( uint32_t vmax )تحدد الطريقة الحد الأقصى للجهد المسموح به.
void SetStart ()الطريقة تضبط العلم بدء الفصل.
void SetStop ()الطريقة تضع علامة توقف الفصل.
int8_t GetValid ()تقوم الطريقة بفحص الجهد وإرجاع النتيجة في شكل رقم.
-1 أقل من المسموح به ، 0 - في إطار المسموح به ، 1 - أكثر مسموحًا. int32_t GetVoltage ()الطريقة إرجاع الجهد الحالي.
void Processing ( uint32_t currentTime = millis ()) طريقة معالجة الأرقام. في حالة وجود loop الخاصة بك للوقت الحالي ، يُنصح بتمرير هذه المرة كمعلمة.
static inline uint32_t GetCoefficient ( float vref , float r1 = 0 , float r2 = 1 , float quantization = 1024 ) الأداة المساعدة التي تساعد على حساب معامل طريقة SetCoefficient() . إذا لم يتم استخدام المقسم ، فسيتم الإشارة إلى VREF فقط.