標準LEDを簡単に制御するためのArduinoライブラリ。
Easyledは、 on() 、 off() 、 toggle() 、 flash() 、 isOn() 、 isOff() 、 reset()のような単純な論理メソッドを提供します。
このライブラリは、読みやすく理解しやすいクリーナーコードの作成に役立ちます。
LEDは、ステートメントled.on()を使用するだけでオンにすることができます。誰かがその声明を読むと、それが何をするかを即座に明らかにします:LEDをオンにします。 Easyledを使用すると、 pinMode() 、 digitalWrite() 、 HIGH and LOWを使用する必要はありません。
EasyLedがなければ、 digitalWrite(LED_PIN, LOW)などのステートメントを使用してLEDをオンにします(アクティブローの場合)。その声明を読んだとき、LEDをオンまたはオフにするかどうかは明らかになりません。これにより、コードを読み取り、理解することがより困難になります。 LEDがオンまたはオフになっていることを意味するかHIGH LOW覚えておく必要があります。アクティブローとアクティブハイLEDの両方を使用すると、コードの読み取りと理解がさらに困難になります。
LEDは、 EasyLedクラスのインスタンスとして定義されます。コンストラクターには2つのパラメーターが必要です。PIN、これはLEDが接続されているGPIO PINであり、LEDがアクティブ低下かアクティブハイかをpin activeLevelです。 Enum Value EasyLed::ActiveLevel::LowアクティブローとEasyLed::ActiveLevel::Highアクティブハイを表します。
オンおよびオフ状態の場合、同様の列挙値が使用されます: EasyLed::State::On ledがオンになり、 EasyLed::State::Offオフになることを意味します。 LEDがオンまたはオフになっているかどうかはLOWでもHIGHも高くないため、列挙値は状態に使用されます。
オプションで、3番目のパラメーターinitialStateを指定して、初期状態をオンに設定することができます(デフォルトはオフ)。 4番目のパラメーターpinmodeもオプションであり、ピンを出力として設定します。これは通常、変更されるべきではありません(それをサポートするアーキテクチャのoutput_open_drainに変更する理由がある場合を除きます) 。
LEDは、GPIOピンの状態をプログラミングすることにより、オンとオフに切り替えられます。 GPIOピンを低レベルに設定すると、LEDをオンまたはオフにすることができます。 GPIOピンレベルが低いときにLEDがオンになっている場合、これはアクティブローと呼ばれます。ピンレベルが高いときに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 ();
...
}