Skip to main content

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​

Select Board
LEDs.ino
/**
**************************************************
*
* @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 None

Stvara 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

TipNazivOpis
uint8_taddressI2C adresa pločice, od 0x30 do 0x37, kako je postavljena preklopnikom adrese. Zadano je BLB_DEFAULT_ADDRESS (0x30).
begin()returns void

Pokreć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 void

Postavlja sve tri LED diode na istu boju i šalje ih na pločicu. setAllLEDs(0, 0, 0) gasi sve LED diode.

ReturnsNišta.

Parametri

TipNazivOpis
uint8_trSvjetlina crvene, od 0 (ugašeno) do 255 (puna).
uint8_tgSvjetlina zelene, od 0 do 255.
uint8_tbSvjetlina plave, od 0 do 255.
setLED(uint8_t index, uint8_t r, uint8_t g, uint8_t b)returns void

Postavlja 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

TipNazivOpis
uint8_tindexKoja LED dioda, od 0 do 2.
uint8_trSvjetlina crvene, od 0 (ugašeno) do 255 (puna).
uint8_tgSvjetlina zelene, od 0 do 255.
uint8_tbSvjetlina 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.