Osvětlení pro papoušky


Přeskočit navigaci

Jak to vzniklo

Spousta užitečných věcí vznikla jen díky lidské pohodlnosti. I tento výrobek vznikl podobně. Přes zimu máme v garáži ve dvou klecích papoušky. Protože se brzy stmívá, je třeba jim svítit uměle, aby měli delší den a aby se neplašili, když večer někdo přijde přes průchozí garáž domů a rozsvítí si. Nejdříve jsme to řešili žárovkou u klecí. Mělo to několik nevýhod. Tak předně tam pořád někdo musel chodit (manuální ovládání), nesmělo se zapomenout zhasnout a navíc se ptákům moc nelíbil neplynulý přechod světlo – tma. No a především jsem si musel vymyslet nějaký ročníkový projekt :-)

Dělá to asi tohle…

Zařízení neustále měří vnější osvětlení, hodnota se zobrazuje na displeji. Pokud poklesne pod nastavenou mez, rozsvítí se super svítivé LED diody. S ohledem na maximální úspornost, se dá nastavit, v kolik hodin se může nejdřív rozsvítit. V určený čas se pozvolna zhasne, dobu zhasnutí i délku stmívání si opět může určit sám uživatel. Samozřejmostí je zálohování všech voleb do EEPROM paměti. V pohotovostním režimu se na LCD displeji zobrazuje teplota, čas, osvětlení a na kolik procent svítí LED diody. K rozsvícení (na cca 15 vteřin) podsvětlení LCD displeje dojde po stisknutí libovolného tlačítka.

Blokové schéma zařízení

Atmel AVR ATmega16

Ve škole se používaly procesory x51. Ty mě moc nebraly a tak jsem použil procesor ATmega16, 8-bitový RISC mikroprocesor, výkon - 16MIPS/16MHz (8MIPS/8MHz verze L) - 12x rychlejší než x51 na stejné taktovací frekvenci, plně statická funkce, dvou-cyklová násobička na čipu, 131 výkonných instrukcí, většinou jednocyklových, 32 osmibitových registrů pro obecné použití. 16kB FLASH paměť programu, programovatelná přímo v aplikaci s možností uzamknutí, 10.000 zápisových cyklů, 512B EEPROM, 100.000 zápisových cyklů, 1kB interní SRAM. JTAG (IEEE std. 1149.1) rozhraní pro programování a ladění, 8-kanálový 10-bitový A/D převodník, analogový komparátor, 4 PWM výstupy, programovatelný USART, master/slave SPI sériové rozhraní. Dva 8-bitové čítače, jeden 16-bitový, každý s vlastní předděličkou, programovatelný Watch-dog s on-chip oscilátorem, čítač reálného času RTC s odděleným oscilátorem, tři režimy spánku: active (1.1mA), idle (0.35mA) a power-down (méně než 1uA) - na 1MHz a 3V, 32 programovatelných I/O vývodů, napájecí napětí 4.5V-5.5V (2.7V-5.5V - verze L). Jde vám z toho hlava kolem? ;-)

Měření osvětlení fotorezistorem

Pro měření osvětlení je použit fotorezistor, co je elektronická součástka využívající materiály, které mění svůj reálný odpor při různých osvětleních. Definujícím parametrem je citlivost, nebo-li ohmická změna při určité změně osvětlení. Nejčastěji se fotorezistory používají na reakci viditelného světla. Konstrukčně fotorezistor může vypadat různě, specifikuje ho otvor pro průchod světla.

Fotorezistor

Fotorezistor je zapojen v děliči napětí s odporem 5k1. Napětí na děliči je snímáno AD převodníkem každých 16 ms. Výsledkem AD převodu (ADC) je 12 bitové číslo. Pro větší přesnost se počítá průměr z 50 měření (OSV) a až z tohoto průměru se počítá velikost osvětlení (LUX – 16 bitů), které se zobrazuje na LCD (jednou za dvě vteřiny) a s kterým se pracuje.

Měření teploty termistorem

Teplota se měří pomocí termistoru, což je součástka měnící svůj ohmický odpor v závislosti na teplotě. Použitý termistor NTC 10k se chová tak, že s nárůstem teploty snižuje odpor. Vypočítaná teplota se zobrazuje na LCD. Proměnná TEPLOTA je výsledek převodu, TEPLV je vypočítaná teplota. Měření teploty je pouze přibližné. Chtělo by to lépe nakalibrovat.

Zhodnocení ROPu

Takhle jsem zhodnotil svou práci v dokumentaci k tomuto ročníkovému projektu…

Při psaní programu se mi především podařilo zvládnout a osvojit si assembler těchto moderních a perspektivních procesorů od firmy Atmel. Také jsem zjistil, jak důležité je umět vyhledat informace na internetu, v katalogovém listu od výrobce, nebo v e-mailové konferenci. Program má necelých 4000 řádků.

Při návrhu hardware jsem narazil na mnoho mých nevědomostí, případně neznalostí. Původně jsem zamýšlel měřit osvětlení fotorezistorem připojeným na zdroj konstantního proudu a napětí na něm sledovat operačním zesilovačem, což se ukázalo jako zbytečně složité. Vycházel velice složitý plošný spoj, hodně součástek. Na internetu se mi podařilo vyhledat různá zapojení s procesory AVR s AD převodníkem a zjistil jsem, že stačí zapojit fotorezistor do děliče s libovolným rezistorem a převodníkem snímat napětí na tomto děliči. Příště rozhodně začnu hledáním na internetu. Měření osvětlení nedosahuje přesnosti profesionálního luxmetru z několika důvodů. Cejchování nebylo provedeno v temné komoře, chyba výpočtu, nepřesnost samotného fotorezistoru. Ale pro daný účel přesnost měření bohatě postačuje. Teplotu jsem původně chtěl měřit pomocí obvodu DS1631, s kterým se komunikuje pomocí sběrnice IIC, je kalibrován od výroby (přesnost 0,1°C), ale nenapadlo mě, že zahřívání trafa a tranzistoru (který spíná LED) může tolik navýšit teplotu uvnitř (použitý nízko úbytkový stabilizátor L4940-V5 se téměř nezahřívá). Zvolil jsem proto pro měření teploty termistor, který se dá vyvést ven. Měření není tak přesné jako pomocí obvodu DS1631, nebo čidla SMT160, ale pro orientační účely dostačuje.


Tenhle web vytvořil Zdeněk Materna - zdenek.materna@seznam.cz, icq: 152882496

Tvorba stránek | Uzenářské speciality, občerstvení | Off-road klub Řípov| Fotky | PageRank.cz | Tvůjrank.cz