Postavite boje LED dioda
Što ovaj primjer prikazuje
Paljenje triju RGB LED dioda, jedne po jedne i svih zajedno. LEDs.ino provodi svaku LED diodu kroz crvenu, zelenu i plavu boju, a zatim prikazuje iste boje na sve tri istodobno.
Kôd primjera
/**
**************************************************
*
* @file LEDs.ino
* @brief LED test for Soldered Button, LED & Buzzer Board
* Host: ESP32 WROVER-E
*
* Cycles each LED through red, green, blue individually,
* then cycles all LEDs together.
*
* @authors Fran Fodor @ soldered.com
***************************************************/
#include "ButtonLedBuzzerBoard-SOLDERED.h"
ButtonLedBuzzerBoard_Soldered board;
void setup()
{
Wire.begin(); // if not using Qwiic, specify I2C pins: Wire.begin(21, 22)
board.begin();
delay(2000);
board.setAllLEDs(0, 0, 0);
}
void loop()
{
// Test each LED individually
for (uint8_t i = 0; i < 3; i++)
{
board.setAllLEDs(0, 0, 0);
board.setLED(i, 255, 0, 0); delay(400); // red
board.setLED(i, 0, 255, 0); delay(400); // green
board.setLED(i, 0, 0, 255); delay(400); // blue
}
// All LEDs together
board.setAllLEDs(255, 0, 0); delay(500); // red
board.setAllLEDs( 0, 255, 0); delay(500); // green
board.setAllLEDs( 0, 0, 255); delay(500); // blue
board.setAllLEDs(255, 255, 255); delay(500); // white
board.setAllLEDs( 0, 0, 0); delay(500); // off
}
Ovaj primjer koristi i biblioteku Wire, koja nije dio biblioteke Soldered-Button-LED-Buzzer-Board: dolazi uz paket za vašu Arduino pločicu. Wire.begin() priključuje se na I2C sabirnicu kao kontroler. Bez Qwiic konektora komentar u skici pokazuje kako proslijediti vlastite I2C pinove, na primjer Wire.begin(21, 22) na ESP32 domaćinu za koji je primjer napisan.
Očekivani rezultat:
Nema serijskog izlaza. Otprilike dvije sekunde nakon pokretanja skice LED 0, zatim LED 1, zatim LED 2 prikazuje crvenu, zelenu i plavu boju po 0,4 s, dok ostale dvije ostaju ugašene. Zatim sve tri LED diode prikazuju crvenu, zelenu, plavu i bijelu boju po 0,5 s te se gase na 0,5 s. Cijeli ciklus traje oko 6 s i ponavlja se.
Korištene funkcije
ButtonLedBuzzerBoard_Soldered(uint8_t address = BLB_DEFAULT_ADDRESS)returns NoneStvara objekt pločice i pamti njezinu I2C adresu. Sve tri LED diode u međuspremniku boja biblioteke na početku su ugašene. Primjer koristi zadanu adresu, 0x30, koju pločica ima kad su sva tri preklopnika adrese u položaju OFF.
ReturnsKonstruktor; nema povratne vrijednosti.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
uint8_t | address | I2C adresa pločice, od 0x30 do 0x37, kako je postavljena preklopnikom adrese. Zadano je BLB_DEFAULT_ADDRESS (0x30). |
begin()returns voidPokreće I2C sabirnicu pozivom Wire.begin(). Pozovite je jednom u setup(), prije bilo koje druge funkcije.
ReturnsNišta.
setAllLEDs(uint8_t r, uint8_t g, uint8_t b)returns voidPostavlja sve tri LED diode na istu boju i šalje ih na pločicu. setAllLEDs(0, 0, 0) gasi sve LED diode.
ReturnsNišta.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
uint8_t | r | Svjetlina crvene, od 0 (ugašeno) do 255 (puna). |
uint8_t | g | Svjetlina zelene, od 0 do 255. |
uint8_t | b | Svjetlina plave, od 0 do 255. |
setLED(uint8_t index, uint8_t r, uint8_t g, uint8_t b)returns voidPostavlja boju jedne LED diode. Biblioteka pamti boje sve tri LED diode i pri svakom slanju šalje sve na pločicu, pa druge dvije LED diode zadržavaju svoje boje. Indeks 3 ili veći se zanemaruje.
ReturnsNišta.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
uint8_t | index | Koja LED dioda, od 0 do 2. |
uint8_t | r | Svjetlina crvene, od 0 (ugašeno) do 255 (puna). |
uint8_t | g | Svjetlina zelene, od 0 do 255. |
uint8_t | b | Svjetlina plave, od 0 do 255. |
Sastavljanje cjeline
Svaka boja zadaje se s tri broja od 0 do 255, po jedan za crvenu, zelenu i plavu, pa je setLED(i, 255, 0, 0) puna crvena, a setAllLEDs(255, 255, 255) bijela. Skica poziva setAllLEDs(0, 0, 0) prije reda svake LED diode, tako da svijetli samo jedna LED dioda odjednom; setLED() sam po sebi ostavlja druge dvije LED diode kakve su bile.
Biblioteka ima i setLEDs(), koja prima devet vrijednosti i jednim pozivom postavlja sve tri LED diode na različite boje. Ovaj primjer je ne koristi.