مكتبة أردوينو للتحكم في مصابيح LED القياسية بطريقة سهلة.
يوفر Leafled طرقًا منطقية بسيطة مثل on() و off() و toggle() و flash() و isOn() و isOff() و reset() .
ستساعد هذه المكتبة في كتابة رمز أنظف يسهل قراءته وفهمه.
يمكن تشغيل LED بمجرد استخدام البيان led.on() . عندما يقرأ شخص ما هذا البيان ، فإنه يوضح على الفور ما يفعله: قم بتشغيل LED. مع Leaftled ، ليست هناك حاجة لاستخدام pinMode() و digitalWrite() ، HIGH LOW بعد الآن.
بدون Leaftled ، سيتعين عليك استخدام بيان مثل digitalWrite(LED_PIN, LOW) لتبديل LED ON (إذا كانت نشطة منخفضة). عند قراءة هذا البيان ، لا يصبح من الواضح ما إذا كان سيتم تشغيل LED أو إيقاف تشغيله. هذا يجعل من الصعب قراءة الكود وفهمه. تحتاج إلى أن تتذكر ما إذا كان HIGH أو LOW يعني أن LED قيد التشغيل أو إيقاف تشغيله. عند استخدام كل من المصابيح النشطة المنخفضة والفعالية النشطة التي ستجعل الكود أكثر صعوبة في القراءة والفهم.
يتم تعريف LEDs على أنها مثيل للفئة EasyLed . يحتاج المُنشئ إلى معلمتين: pin ، وهو دبوس GPIO الذي يتم توصيل LED و activeLevel والذي يشير إلى ما إذا كان LED نشطًا منخفضًا أو نشطًا. قيمة التعداد EasyLed::ActiveLevel::Low يمثل الانخفاض النشط EasyLed::ActiveLevel::High يمثل النشط.
بالنسبة للولايات داخل وخارج ، يتم استخدام قيم التعداد المماثلة: EasyLed::State::On and EasyLed::State::Off يعني أنه متوقف. يتم استخدام قيم التعداد للحالة لأن لا LOW ولا HIGH تحديد ما إذا كان LED قيد التشغيل أو إيقاف تشغيله.
اختياريا يمكن تحديد initialState للمعلمة الثالثة لتعيين الحالة الأولية على (الافتراضي هو OFF). المعلمة الرابعة pinmode هي أيضًا اختيارية وتضع دبوس كإخراج. لا ينبغي تغيير هذا عادةً (باستثناء عندما يكون هناك سبب لتغييره إلى Output_open_drain للبنية التي تدعمها) .
يتم تشغيل وإيقاف LEDs عن طريق برمجة حالة دبوس GPIO. يمكن أن يؤدي ضبط دبوس GPIO إلى مستوى منخفض إلى تشغيل LED إما أو إيقاف تشغيله. إذا كان LED قيد التشغيل عندما يكون مستوى دبوس GPIO منخفضًا ، فهذا يسمى النشط المنخفض. إذا كان LED قيد التشغيل عندما يكون مستوى الدبوس مرتفعًا ، فهذا يسمى النشط. ما إذا كان LED هو النشط المنخفض أو العالي النشط يعتمد على كيفية توصيل LED جسديًا. يتم استخدام كلا النوعين في الممارسة العملية.
EasyLed (
const uint8_t pin, // GPIO pin to which the LED is connected.
const ActiveLevel activeLevel, // The logic level when the LED is on.
const State initialState = State::Off, // Optional, default is off.
const uint8_t pinmode = OUTPUT // Optional, shall normally not be changed. enum class State {Off, On};
enum class ActiveLevel {Low = LOW, High = HIGH}; void on () // Switch LED on
void off() // Switch LED off
void toggle() // Toggle LED state.
void reset() // Reset LED state to initialState.
void flash( // Flash LED (all parameters are optional)
const uint8_t count = 2 , // Number of flashes
const uint16_t onTimeMs = 160 , // on-time duration in milliseconds
const uint16_t offTimeMs = 160 , // off-time duration in milliseconds
const uint16_t leadOffTimeMs = 200 , // off-time duration before first flash
const uint16_t trailOffTimeMs = 300 // off-time duration after last flash
// lead and trail time are only used when LED is on
)
bool isOn() // Returns true if LED is on, false otherwise
bool isOff() // Returns true if LED is off, false otherwise
EasyLed::State getState() // Returns the current state (On or Off)
void setState(EasyLed::State state) // Sets the current state
uint8_t pin() // Returns GPIO pin number as specified in constructor
EasyLed::ActiveLevel activeLevel() // Returns active-level as specified in constructor
EasyLed::State initialState() // Returns initialState as specified in constructorled-basics.ino - يوضح الاستخدام الأساسيled-advanced.ino - يوضح الاستخدام المتقدمled-state.ino - يوضح كيفية حفظ واستعادة الحالةled-activelevel-tester.ino يساعد في تحديد ما إذا كان الصمام نشطًا منخفضًا أو نشطًا# include " EasyLed.h "
EasyLed led (LED_BUILTIN, EasyLed::ActiveLevel::Low);
void setup ()
{
...
}
void loop ()
{
readSensors ();
led. on ();
transmitSensorData ();
led. off ();
...
}