Zdroj automaticky spínaný po rozednění

Z MAM wiki

(Přesměrováno z -reseni-)
Přejít na: navigace, hledání

Obsah

[editovat] Zadání práce: Zdroj automaticky spínaný po rozednění

Řídicí obvod, který vždy cca 4 hodiny po rozednění na 1 hodinu sepne log. 0 na výstupu (otevřený kolektor, max. 20 mA) vnější zařízení - např. ATX zdroj z počítače. Zařízení má pracovat co nejdéle (mnoho let) na lithiovou baterii CR2032 3V/210mAh.

[editovat] Výběr vhodnéhoo mikroprocesoru

V naší práci nepotřebujeme procesor s velkou vnitřní pamětí, velkým množstvím nožiček a ani nemusí nabízet žádné speciální funkce. Co naopak potřebujeme je, co možná nejmenší, spotřeba. Proto jsme se rozhodli zvolit procesor ATtiny2313A, který je velice jednoduchý a v novější verzi (písmeno A na konci) i velice úsporný.

[editovat] Způsob řešení

první idea řešení

Protože v zadání je, že procesor se bude spínat po rozednění (a nikoliv osvětlení), rozhodli jsme se veškeré spínání a čekání řídit pomocí timeru. Fakt, že slunce nevychází každý den ve stejnou dobu ošetříme tím, že k době, po kterou bude procesor "čekat na rozednění", přičteme každý den jednu minutu. Nebo odečteme, podle toho, jestli se dny zkracují nebo prodlužují. Nebudeme tedy využívat přerušení od analogového komparátoru (nepotřebujeme tak ani řešit fotorezistory, fototranzistory, úbytky napětí na nich při osvětlení atd.). Dále nám toto řešení umožní využít ten nejtvrdší možný spánek, co procesor nabízí a v něm ještě povypínat všechno kromě timeru a zvýšit tak úsporu baterií.

Zdůvodu komplikovaného programování čítání, kdy by se musela půl roku minuta přičítat a dalšího půl roku odečítat, a celkově komplikovanému čítání skoro 24 hodin, bylo od tohoto řešení velice rychle upuštěno.


druhý (a finální) způsob řešení

Toto řešení se jakoby vrací k očekávanému řešení s fotorezistorem, fototranzistorem a pod. Avšak použití těchto součástek přináší problémy (nastavení správné úrovně napětí, i bez osvětlení teče proud, který zvyšuje spotřebu atd...). Rozhodli jsme se proto použít solární článek, který dá na výstupu přímo 5V (třeba takovýto, případně něco z tohoto) a můžeme tak přerušení generovat pomocí změny pinu a ne analog komparátorem. Program tedy bude vypadat zhruba následovně. Spánek - přerušení od solárního článku - čekání 4 hodiny - sepnutí výstupu - čekání jedné hodiny - vypnutí výstupu a čekání na další přerušení od solar. článku. Při všech čekáních je procesor uspaný.

Další vylepšení (zajména spotřeby) je nepoužití defaultní frekvence timeru, ale nejnižší možné, kterou procesor nabízí, tedy 128 kHz. Jednak to zjednodušuje čítání dlouhých časových úseků a dále (dle datasheetu) by tento režim měl být ještě úspornější

[editovat] schéma zapojení

Orientační schéma zapojení

Soubor:schema_zdroj.png

[editovat] Kód programu

.INCLUDE "tn2313adef.inc"

;PRERUSENI
.org 0x0000 
		rjmp start				;reset mikroprocesoru

.org 0x000B 
		rjmp preruseni_solar	;preruseni po privodu 5V pri rozedneni

.org 0x0005
		rjmp citac2

.org 0x0006
		rjmp citac1


;NASTAVENI VNITRNIHO OSCILATORU

		ldi CKSEL, 0b0110     ;nastaveni frekvence hodin na 128 kHz

;NASTAVENI SLEEP
		ldi R20,0b00000000		;nastaveni sleepu do modu idle 

		out MCUCR,R20		

;NASTAVENI CITACE

		clr R20               ; nastaveni registru TCCR2A, same nuly
		ldi R32,R30
		;clr R36
		;st X,R20
		ldi R20,0b00000101    ; nastaveni TCCR2B, zapojeni preddelicky /1024
		ldi R32,R33
		st X,R20
		clr R20               ; nastaveni konstanty 2,048s							  
		ldi R32,TCNT0        
		clr R36
		st X,R20		
		
;NASTAVENI PORTU

		cbi DDRB,0				;nastaveni PCINT0 jako vstup

start:
		sleep
		rjmp start

preruseni_solar:
		sbis PINB,0				;osetreni pinu s 5V,protoze zmena nastane i pri setmeni, 
		rjmp start				;kdyz je 5V skoci na citac, kdyz je 0V tak opet sleep
		rjmp citac1	
		rjmp citac2
		sei
		
citac1:
		push R20
		ldi R20,0b00000001    ; zapnuti preruseni pri preteceni casovace 2
		ldi R32,TIMSK
		clr R36
		st X,R20
		pop R20
		ldi R18,256            ; konstanta pro cas s (2.048s*256=67,1s)
		reti

citac2:
		push R20		
		ldi R20,0b00000001  
		ldi R32,TIMSK
		clr R36
		st X,R20
		pop R20
		ldi R18,256 
		reti


[editovat] Další možnosti vylepšení

Ošetřit fakt, že zařízení nemusí být osvětleno jen jedenkrát denně po rozednění. Využít solárního článku, dodělat k němu další obvod a použít jej i k dobíjení baterie.

[editovat] Vypracovali

Martin Dlouhý, Vít Podivinský

Osobní nástroje