Difference between revisions of "Stmívač"

From Tučňák Wiki
Jump to: navigation, search
(IR protokol)
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
V poslední době jsem si oblíbil mikrokontrolér [http://www.atmel.com/images/doc8126.pdf ATTINY13A]. Má 5xGPIO, ISP programování, ADC, interní oscilátor, minimální spotřebu a {{AliSearch|ATTINY13A|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čí.
 
V poslední době jsem si oblíbil mikrokontrolér [http://www.atmel.com/images/doc8126.pdf ATTINY13A]. Má 5xGPIO, ISP programování, ADC, interní oscilátor, minimální spotřebu a {{AliSearch|ATTINY13A|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 {{AliSearch|ir remote control rgb led|dálkové ovládání k RGB LEDkám}} a  
+
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 {{AliSearch|ir+remote+control+rgb+led|dálkové ovládání k RGB LEDkám}} a  
 
{{AliSearch|VS1838|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.
 
{{AliSearch|VS1838|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 zapojení=
Schéme je stejné jako pro [[Větrák]]. Jen není potřeba osazovat T2 a T1 je nutné osadit vhodným typem podle výstupního proudu, viz [[Větrák]].
+
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
 +
 
 
[[Image:Vetrak1s150.png|none|frame|Schéma stmívače]]
 
[[Image:Vetrak1s150.png|none|frame|Schéma stmívače]]
 +
 +
=PCB=
 +
<gallery mode="packed" widths="640px">
 +
Image:Vetrak1b600.png|Předloha spojů 600 DPI
 +
Image:Vetrak1oa.png|Osazení THT
 +
Image:Vetrak1ob.png|Osazení SMD
 +
</gallery>
 +
 +
=Dálkový ovladač=
 +
Použil jsem {{AliSearch|ir+remote+control+rgb+led|dálkové ovládání k RGB LEDkám}} s 24 tlačítky.
 +
 +
[[Image:IRRemoteControl24.jpg|none|200px|Použité dálkové ovládání]]
 +
 +
=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.
 +
 +
[[Image:IRRemoteControlProtocol4Bytes.jpg|none|800px|Protokol dálkového ovladače]]
 +
 +
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.
 +
 +
Není těžké dekódovat rámec z obrázku. Přeskočte start bit, pauzu po něm a sledujte dobu trvání log.1. Krátká=0, dlouhá=1, LSB vlevo:
 +
00000000 = první byte 0
 +
11111111 = druhý byte 0xff
 +
10100000 = kód klávesy 0x05
 +
01011111 = 0 XOR 0xff XOR 0x05 = 0xFA
 +
 +
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:
 +
 +
{| class="wikitable"
 +
|+(šestnáctkově)
 +
|-
 +
|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.

Latest revision as of 22:21, 21 February 2017

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
Schéma stmívače

PCB

Dálkový ovladač

Použil jsem dálkové ovládání k RGB LEDkám s 24 tlačítky.

Použité dálkové ovládání

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.

Protokol dálkového ovladače

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.

Není těžké dekódovat rámec z obrázku. Přeskočte start bit, pauzu po něm a sledujte dobu trvání log.1. Krátká=0, dlouhá=1, LSB vlevo:

00000000 = první byte 0
11111111 = druhý byte 0xff
10100000 = kód klávesy 0x05
01011111 = 0 XOR 0xff XOR 0x05 = 0xFA

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:

(šestnáctkově)
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.