Stmívač
V poslední době jsem si oblíbil mikrokontrolér ATTINY13A. Má 5xGPIO, ISP programování, ADC, interní oscilátor, minimální spotřebu a rozumnou cenu. Programové paměti není nadbytek, ale na malé konstrukce typu jeden vstup, jeden výstup a sofwarový sériový port pro ladění to stačí.
Jedna z mých prvních aplikací je PWM stmívač pro 12V LED pásky. Protože je probém sehnat rozumně vypadající krabičku, rozhodl jsem se řešit ovládání bezdrátově. Konkrétně přes dálkové ovládání k RGB LEDkám a IR čidlo VS1838. Proč si ale nekoupím hotové řešení? Protože idea je mít časem více nezávislých LED pásků a ovládat je jedním ovladačem.
Schéma zapojení
Schéma je stejné jako pro Větrák, hardware je navržen jako univerzální. Pro stmívač je potřeba udělat několik změn:
- Není potřeba osazovat T2
- T1 je nutné osadit vhodným typem podle výstupního proudu, viz Větrák
- Neosazuje se DS18B20
PCB
-
Předloha spojů 600 DPI
-
Osazení THT
-
Osazení SMD
Dálkový ovladač
Použil jsem dálkové ovládání k RGB LEDkám s 24 tlačítky.
IR protokol
Čidlo VS1838 demoduluje IR signál, výstupem jsou obdélníky dlouhé cca 1ms. Logická nula znamená IR signál přítomen. Používá se kódování šířkou pulzů v log.1. Pro dekódování stačí měřit čas mezi sestupnými hranami.
Rámec začíná start dlouhým start bitem pro nastavení AGC přijímače. Následuje pauza, pak čtveřice bytů. První je 0, druhý 0xff (255), třetí obsahuje kód klávesy a čtvrtý je XOR všech předchozích. Autorepeat není řešen opakovaným odesláním stejného kódu, ale pauza po start bitu je kratší a následuje nulový bit.
Kódy kláves
Pozice v tabulce odpovídá fotografii ovladače:
05 | 04 | 06 | 07 |
09 | 08 | 0A | 0B |
0D | 0C | 0E | 0F |
15 | 14 | 16 | 17 |
19 | 18 | 1A | 1B |
11 | 10 | 12 | 13 |
Ovládání
Jeden modul se ovládá vždy čtveřicí tlačítek v jedné řádce. Význam je vždy stejný jako v horní řádce:
- Zesílit
- Ztlumit
- Vypnout
- Zapnout
Všechny přechody jsou plynulé. Pro zesílení a ztlumení světla funguje autorepeat. Nastavená intenzita světla se pamatuje, tlačítke "zapnout" nabíhá intenzita do posledně nastavené. Po vypnutí se intenzita pamatuje v EEPROM.