Kaffeemühlen-Timer mit dem Tiny13


von Ulli Kainka
Elektronik-Labor   Projekte   AVR 





Eine Kaffeemühle nervt, wenn sie zu kurz oder zu lange läuft. Eine automatische Steuerung muss her. Das Gerät hat einen Taster und ein Poti. Die Bedienung geht so:

Kurz drücken: Die Maschine läuft so lange wie die es am Poti eingestellt ist, maximal 46 Sekunden.
Lang drücken: Die Maschine läuft solange man drückt
Kurz drücken während der Timer noch läuft: Maschine geht aus.

Der Tiny13 kann zwar nur 10 mA an 5 V schalten, mit einem Optorelais schafft er aber auch die Kaffeemühle. Achtung, nur für erfahrende Leute, die mit gefährlichen Spannungen umgehen können! Alle anderen müssen eine 12-V-Kaffeemühle nehmen.




Die Steuerung wurde in Assembler entwickelt:

;Timer_M.asm, AD-Wandler Eingang PB4 8 Bit, Ausgang PB0, Taster PB2
;Stand 23-07-2012 Timer 0-46sek fuer Kaffemuehle

.include "tn13def.inc"
.def A = r16
.equ TS = 2
.equ Ausg = 0

rjmp Anfang
Anfang:
sbi ddrb,Ausg
cbi portb,Ausg
rcall AdcInit

Schleife:
rcall RdTst
rcall RdADC
rcall Pwron
rcall Zeit
rcall Pwroff
rjmp Schleife

AdcInit:
ldi A,3 ;Clock / 4
out ADCSRA,A
sbi ADCSRA,ADEN ;AD einschalten
ret

RdADC:
ldi A,2
out ADMUX,A
sbi ADMUX,ADLAR ;Left adjust
sbi ADCSRA,ADSC ;Wandlung starten
ADrdy:
sbic ADCSRA,ADSC
rjmp ADrdy
sbi ADCSRA,ADSC
ADrdyb:
sbic ADCSRA,ADSC
rjmp ADrdyb
in A,ADCH
ret

RdTst:
sbis pinb,TS
rjmp RdTst
RdTstb:
sbis pinb,TS
ret ;Taster mit neg Flanke an PB2
rjmp RdTstb

Zeit: ;180 Millisekunden
Ldi r17,250
Warten1: ;äußere Schleife
Ldi r18,240
Warten2: ;innere Schleife
dec r18
brne Warten2
dec r17
brne Warten1
sbic pinb,TS ;dauer-an falls Taster gedrueckt
rjmp Pperm ;dauer-an falls Taster gedrueckt
dec r16
brne Zeit
ret ;Rücksprung zum Hauptprogramm
Pperm:
sbic pinb,TS
sbi portb,Ausg
Ppermb:
sbic pinb,TS
rjmp Ppermb
ret

Pwron:
sbi portb,Ausg
ret

Pwroff:
cbi portb,Ausg
ret






Elektronik-Labor   Projekte   AVR