I2C RGB LED

English version

Jednoduchý RGB LED driver s rozhraním I2C řízený AVR mikrokontrolérem ATtiny45.

temp.adamh.cz_i2c-rgb-led_top-small.jpg

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í:

  • Schéma a motiv DPS (Eagle) - zde
  • Zdrojové kódy (AVR-LIBC, AVR-GCC) - zde


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).

Fotografie

temp.adamh.cz_i2c-rgb-led_green.jpg temp.adamh.cz_i2c-rgb-led_blue.jpg

 
i2crgbled.txt · Poslední úprava: 2017/10/10 17:32 (upraveno mimo DokuWiki)
 
Driven by DokuWiki

© 2008-2012 Adam Heinrich, adamh.cz, adam@adamh.cz