I2C RGB LED
Ovlávání
I2C adresa modulu je 0x10, komunikace probíhá ve slave režimu.
Bajt | 1. | 2. | 3. | 4. | 5. |
---|---|---|---|---|---|
Nastavení barvy | 0x01 | RED | GREEN | BLUE | 0 |
Plynulý přechod (přechod) | 0x02 | RED | GREEN | BLUE | DELAY |
- 0x01 a 0x02 jsou kódy jednotlivých příkazů.
- RED, GREEN a BLUE určuje jas jednotlivých barev (0 - 255).
- DELAY určuje prodlevu plynulého přechodu na zvolenou barvu.
Příklad: Sekvence pro nastavení červené barvy (RED = 0xFF) by vypadala takto:
{0x01, 0xFF, 0x00, 0x00, 0x00}
Sekvence pro plynulý přechod do modré:
{0x02, 0x00, 0x00, 0xFF, 0x05}
Schéma zapojení a zdrojové kódy
Ke stažení:
Nastavení pojistek (fuses): Před naprogramováním mikrokontroléru je ptořeba vypnout „Divide clock by 8 internally“ (HFUSE = 0xDF, LFUSE = 0xE2). Pro avrdude: -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m
Po přivedení napájení LED dioda dvakrát červeně blikne.
ZIP archiv se schématy obsahuje dva motivy DPS, každý obsahuje jednu propojku. Jeden z nich je navržen pro univerzální plošný spoj (protoboard) s otvory v rastru 2,54 mm. Dva rohové otvory pro šrouby M3 jsou umístěny tak, aby pasovaly do rastru stavebnice Merkur (10 mm).
Za rutiny pro I2C pomocí periferie USI vycházející z aplikační poznámky AVR312 děkuji Andreasi Kaiserovi (zveřejněno v threadu „attiny USI Slave Implementierung“ - usi-slave.zip).