Polizei-Sirene mit Powerdown         

von Holger Fritzsch                     
      
Elektronik-Labor  Projekte  AVR  Sparrow  Contest          




Diese kleine Sparrow-Sirene kann z.B. ein kleines Spielzeugauto "aufwerten." Der µP befindet sich im Powerdown-Mode. Hier nimmt er ca. 5µA (!) auf.
Aktiviert man den Brownout- Detector so kommt man in den Bereich um 1µA. Das ist weniger als die Batterieselbstentladung. Eine Knopfzelle CR2032 rückt somit ins Blickfeld der Stromversorgung. Ein Druck auf S2 löst einen, sog. Pin- Change- Interrupt aus und startet die Ton- und auch die Blinksequenz. Ist diese vorbei, fällt er wieder in o.g. Mode. Alle nicht benutzten Komponenten werden abgeschaltet. Ein Schalter erübrigt sich also.  Man kann den Wert der Durchläufe in der For-Next-Schleife individuell anpassen.


Download: Polizeisirene_Powerdown.zip
Direkt laden: http://tiny.systems/categorie/cheepit/ZweitonSirene.html
'******************************************************************************'

' POLIZEI- Sirene - "Der Sparrow tönt und blinkt"--------------

'******************************************************************************'
' Taster2 / S2 an PB2 ( PCINT0) löst einen Pin- Change- Interrupt aus.
' Der µP wacht auf. Der Alarm (Ton) beginnt und LED1 /LED2 blinken abwechselnd.
' Nach 6 Durchläufen fällt der µP in den Powerdown- Mode .
' (Stromaufnahme bei 3V nur 1µA)!
' Aus diesem Zustand kann ihn nur ein Interrupt PCINT0 wecken
' An PB0 kann OPTIONAL eine PIEZO- Buzzer angeschlossen werden.
' Ein Ausschalter ist nicht erforderlich!
'******************************************************************************'
$regfile = "ATtiny13.dat" 'µP - Typ
$crystal = 1200000 'Taktfrequenz
$hwstack = 16
$swstack = 8
$framesize = 8

Config Portb.1 = Output 'Led1
Config Portb.3 = Output 'Led2
Config Portb.0 = Output 'Piezo
Config Portb.2 = Input 'Taste S2
Config Portb.4 = Output 'festes Potential
Stop Adc 'Stop AD- Wandler
Stop Ac 'Stop Analog.Komp.
Stop Watchdog


Dim H As Byte ' Zählvariable
'Timer für Tonerzeugung konfiguriert.
Config Timer0 = Timer , Compare A = Toggle , Prescale = 8 , Clear Timer = 1
'Pin- Change - Interrupt aktivieren

On Pcint0 Pcint0_isr
Enable Pcint0 'enable PCINT2
Pcmsk.2 = 1 'Taster an PB2


Main:
Enable Interrupts 'Interrupt freigeben

Do
Powerdown 'Stromsparen
Loop


Pcint0_isr: 'Interuppt- Routine


For H = 0 To 5

Ocr0a = 161 'ca 440 Hz

Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 200


Ocr0a = 122 'ca 585 Hz

Portb.3 = 1
Waitms 50
Portb.3 = 0
Waitms 50
Portb.3 = 1
Waitms 50
Portb.3 = 0
Waitms 200

Next H
Return
Goto Main


End



Elektronik-Labor  Projekte  AVR  Sparrow Contest