Perpustakaan Arduino untuk mengendalikan LED standar dengan cara yang mudah.
Easyled menyediakan metode logis sederhana seperti on() , off() , toggle() , flash() , isOn() , isOff() dan reset() .
Perpustakaan ini akan membantu menulis kode pembersih yang mudah dibaca dan dipahami.
LED dapat dinyalakan dengan hanya menggunakan pernyataan led.on() . Ketika seseorang membaca pernyataan itu langsung jelas apa yang dilakukannya: Nyalakan LED. Dengan easyled tidak perlu menggunakan pinMode() , digitalWrite() , HIGH dan LOW lagi.
Tanpa Easyled Anda harus menggunakan pernyataan seperti digitalWrite(LED_PIN, LOW) untuk mengganti LED ON (jika aktif-rendah). Saat membaca pernyataan itu, tidak jelas apakah itu akan menghidupkan atau mematikan LED. Ini membuatnya lebih sulit untuk membaca dan memahami kodenya. Anda perlu mengingat apakah HIGH atau LOW berarti LED hidup atau mati. Ketika LED aktif-rendah dan aktif-tinggi digunakan yang akan membuat kode lebih sulit dibaca dan dipahami.
LED didefinisikan sebagai contoh dari kelas EasyLed . Konstruktor membutuhkan dua parameter: pin , yang merupakan pin GPIO LED terhubung ke dan activeLevel yang menunjukkan apakah LED aktif-rendah atau aktif-tinggi. ENUM Nilai EasyLed::ActiveLevel::Low mewakili aktif-rendah dan EasyLed::ActiveLevel::High mewakili tinggi aktif.
Karena hidup dan mati status nilai enum yang serupa digunakan: EasyLed::State::On artinya LED aktif dan EasyLed::State::Off berarti tidak aktif. Nilai ENUM digunakan untuk keadaan karena tidak ada LOW atau HIGH secara unik mengidentifikasi jika LED hidup atau mati.
Secara opsional parameter ketiga initialState dapat ditentukan untuk mengatur status awal ke ON (default tidak dimatikan). pinmode parameter keempat juga opsional dan mengatur pin sebagai output. Ini biasanya tidak boleh diubah (kecuali ketika ada alasan untuk mengubahnya menjadi output_open_drain untuk arsitektur yang mendukungnya) .
LED dinyalakan dan dimatikan dengan memprogram keadaan pin GPIO. Mengatur pin GPIO ke level rendah dapat menghidupkan atau mematikan LED baik. Jika LED menyala ketika level pin GPIO rendah, ini disebut aktif-rendah. Jika LED menyala ketika level pin tinggi ini disebut aktif-tinggi. Apakah LED aktif-rendah atau aktif-tinggi tergantung pada bagaimana LED terhubung secara fisik. Kedua jenis digunakan dalam praktik.
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 - menunjukkan penggunaan dasarled-advanced.ino - menunjukkan penggunaan yang lebih majuled-state.ino - menunjukkan cara menyelamatkan dan memulihkan keadaanled-activelevel-tester.ino -membantu menentukan apakah LED aktif-rendah atau aktif-tinggi# include " EasyLed.h "
EasyLed led (LED_BUILTIN, EasyLed::ActiveLevel::Low);
void setup ()
{
...
}
void loop ()
{
readSensors ();
led. on ();
transmitSensorData ();
led. off ();
...
}