ห้องสมุด Arduino สำหรับการควบคุมไฟ LED มาตรฐานในวิธีที่ง่าย
Easyled มีวิธีการแบบลอจิคัลอย่างง่ายเช่น on() , off() , toggle() , flash() , isOn() , isOff() และ reset()
ไลบรารีนี้จะช่วยเขียนรหัสทำความสะอาดที่อ่านและเข้าใจได้ง่าย
LED สามารถเปิดใช้งานได้เพียงแค่ใช้คำสั่ง led.on() เมื่อมีคนอ่านคำสั่งนั้นมันจะชัดเจนทันทีว่ามันทำอะไร: เปิดไฟ LED ด้วย Easyled ไม่จำเป็นต้องใช้ pinMode() , digitalWrite() , HIGH และ LOW อีกต่อไป
คุณจะต้องใช้คำสั่งเช่น digitalWrite(LED_PIN, LOW) เพื่อเปิด LED (ถ้าใช้งานได้ต่ำ) เมื่ออ่านคำสั่งนั้นจะไม่ชัดเจนว่าจะเปิดหรือปิด LED สิ่งนี้ทำให้อ่านและเข้าใจรหัสได้ยากขึ้น คุณต้องจำไว้ว่า HIGH หรือ LOW หมายถึง LED เปิดหรือปิด เมื่อใช้ไฟ LED ทั้งแบบแอคทีฟต่ำ และ แอคทีฟสูงซึ่งจะทำให้รหัสอ่านและเข้าใจได้ยากยิ่งขึ้น
LED ถูกกำหนดเป็นอินสแตนซ์ของคลาส EasyLed ตัวสร้างต้องการพารามิเตอร์สองตัว: pin ซึ่งเป็น GPIO PIN LED เชื่อมต่อกับและ activeLevel ซึ่งระบุว่า LED นั้นมีการใช้งานต่ำหรือมีการใช้งานสูง ค่า enum EasyLed::ActiveLevel::Low หมายถึงการใช้งานต่ำและ EasyLed::ActiveLevel::High หมายถึงการใช้งานสูง
สำหรับการใช้และนอกรัฐที่มีค่า enum ที่คล้ายกันถูกนำมาใช้: EasyLed::State::On หมายถึง LED เปิดอยู่และ EasyLed::State::Off หมายความว่ามันปิด ค่า enum ถูกใช้สำหรับสถานะเนื่องจากไม่ได้ระบุ LOW หรือ HIGH ไม่เหมือนกันว่า LED เปิดหรือปิด
สามารถระบุพารามิเตอร์ที่สาม initialState เพื่อตั้งค่าสถานะเริ่มต้นเป็น ON (ปิดค่าเริ่มต้น) พารามิเตอร์ที่สี่ pinmode ยังเป็นตัวเลือกและตั้งค่าพินเป็นเอาต์พุต โดยปกติจะไม่เปลี่ยนแปลง (ยกเว้นเมื่อมีเหตุผลที่จะเปลี่ยนเป็น output_open_drain สำหรับสถาปัตยกรรมที่รองรับ)
LED จะเปิดและปิดโดยการเขียนโปรแกรมสถานะของพิน 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 ช่วยตรวจสอบว่า LED มีการใช้งานต่ำหรือมีการใช้งานสูง# include " EasyLed.h "
EasyLed led (LED_BUILTIN, EasyLed::ActiveLevel::Low);
void setup ()
{
...
}
void loop ()
{
readSensors ();
led. on ();
transmitSensorData ();
led. off ();
...
}