Arduino库以一种简单的方式控制标准LED。
EasyLeD提供了简单的逻辑方法,例如on() , off() , toggle() , flash() , isOn() , isOff()和reset() 。
该库将有助于编写易于阅读和理解的清洁代码。
可以通过简单地使用语句led.on()来打开LED。当某人阅读该语句时,立即清楚其做什么:打开LED。使用Easyled,无需使用pinMode() , digitalWrite() , HIGH和LOW 。
不用轻松,您将不得不使用诸如digitalWrite(LED_PIN, LOW)之类的语句来切换LED ON(如果有效-LOW)。阅读该语句时,尚不清楚它是否会打开或关闭LED。这使得阅读和理解代码变得更加困难。您需要记住HIGH还是LOW意味着LED打开还是关闭。当使用主动低LED和主动高LED时,这将使代码更加难以读取和理解。
LED被定义为EasyLed类的实例。构造函数需要两个参数: pin ,即LED连接的GPIO引脚和activeLevel ,该引脚指示LED是有效的还是高的。枚举值EasyLed::ActiveLevel::Low代表主动而EasyLed::ActiveLevel::High代表高度高。
对于ON和OFF状态,使用类似的枚举值: EasyLed::State::On表示LED已打开, EasyLed::State::Off意味着它已关闭。枚举值用于状态,因为LOW或HIGH唯一的识别LED是否打开还是关闭。
可以选择地指定第三个参数initialState以将初始状态设置为ON(默认值关闭)。第四参数pinmode也是可选的,并将引脚设置为输出。通常不得更改(除非有理由将其更改为支持它的架构的output_open_drain) 。
通过编程GPIO PIN的状态来打开和关闭LED。将GPIO引脚设置为低水平可以打开或关闭LED。如果LED在GPIO引脚水平较低时为ON,则称为活动低。如果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 ();
...
}