Sparrow-Netzanzeige               

von Hermann Nieder                              
      
Elektronik-Labor  Projekte  AVR  Sparrow  Contest          


Ein Teil des Programms für den Attiny13a auf der Sparrow-Platine, mit dem der Mikrocontroller als einfacher Frequenzmesser dient, lässt sich z. B. auch  in einer „Sparrow-Netzausfallanzeige“„ verwenden. Der Sparrow im Bild bestimmt  fortwährend über ein kurzes Drahtstück als Antenne die Frequenz der Netzspannung. Solange der ATtiny13 bei der  Netzfrequenz von 50 Hz „feststellt“, dass deren Wert  größer als 45 ist,  leuchtet  die  grüne LED. 

Wird die Netzspannung wie in diesem Bild unterbrochen, wird vom ATtiny13 ein Frequenzwert kleiner als 43 ermittelt, und die rote LED blinkt etwa im Rhythmus des für „Irrung“ verwendeten  Morsezeichens  „di di di di di di di dit“. Darauf erfolgt eine  erneute Bestimmung der Frequenz, dann wird wieder „Irrung“  geblinkt usw.  Dies geschieht  solange, wie die Netzspannung unterbrochen ist.  Bei dem oben erwähnten Blinken der roten LED  wird PB3 bewusst  mehrmals für 1 Millisekunde  ein- und ausgeschaltet, damit man zusätzlich zu der optischen Anzeige  zwischen  diesem Portpin und Masse einen vorhandenen Piezo-Schallgeber bzw.  einen kleinen Lautsprecher über einen geeigneten Vorwiderstand anschließen kann, um  die „Irrung“ bei  einem Netzausfall auch hörbar zu machen. Bei einer anderen Frequenz der Netzwechselspannung, wie z. B. 60 Hz, sind die oben erwähnten Werte im Programm entsprechend zu ändern.

Download:  Sp_Netzausfallanzeige3.zip 
Direkt laden: http://tiny.systems/categorie/cheepit/Netzausfallanzeige.html

 'Sp_Netzausfallanzeige3.bas

'29.04.2015
$regfile = "attiny13a.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb = &B00001010


Declare Sub Initialisierung
Declare Sub Freq_mes
Declare Sub Netzausfall


Dim Timer_2 As Byte
Dim Sek As Byte
Dim Freq As Word
Dim Freq_wert As Word
Dim Ziffer As Byte
Dim N As Byte
Dim K As Byte

Config Portb = &B00001010


Initialisierung

Set Portb.1
Waitms 1000
Reset Portb.1

Do

Do
Freq_mes
If Freq > 45 Then
Set Portb.1
End If

Loop Until Freq < 43
If Freq < 43 Then
Reset Portb.1
Netzausfall
End If
Loop


Sub Netzausfall
Reset Portb.1
For K = 1 To 8
For N = 0 To 75
Set Portb.3
Waitms 1
Reset Portb.3
Waitms 1
Next N
Waitms 150
Next K


'Waitms 100

End Sub


Sub Freq_mes
Timer_2 = 0
Sek = 0
Freq = 0

Zaehler1:
Enable Timer0

If Pinb.4 = 1 Then
Goto Zaehler2
End If
If Sek = 1 Then
Goto Zaehler4
End If
Goto Zaehler1

Zaehler2:
If Pinb.4 = 0 Then
Goto Zaehler3
End If
If Sek = 1 Then
Goto Zaehler4
End If
Goto Zaehler2

Zaehler3:
Incr Freq

Zaehler4:
If Sek < 1 Then
Goto Zaehler1
End If
Disable Timer0
End Sub



Sub Initialisierung
Enable Interrupts
Config Timer0 = Timer , Prescale = 64
On Timer0 Tim0_isr
End Sub

'1200000:64:125:150=1

Tim0_isr:
Timer0 = 131
Incr Timer_2
'war 150, durch Veraendern gewisse
'Eichmoeglichkeit des Sparrow-Frequenzzaehlers
If Timer_2 < 148 Then
Goto Timer0_end
End If
If Timer_2 = 148 Then
Timer_2 = 0
Incr Sek
End If
Timer0_end:
Return
 

Es lässt sich  „umgekehrt“ zu dem oben vorgestellten  Programmlisting auch eines für eine „Sparrow-Netzanzeige“ entwerfen. Dies ist ein Auszug daraus:

 

'Sp_Netzanzeige3.bas
'29.04.2015
$regfile = "attiny13a.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb = &B00001010


Declare Sub Initialisierung
Declare Sub Freq_mes
Declare Sub Netzanzeige

Dim Timer_2 As Byte
Dim Sek As Byte
Dim Freq As Word
Dim Freq_wert As Word
Dim N As Word
Config Portb = &B00001010

Initialisierung

Do
Do
Freq_mes
If Freq > 45 Then
Netzanzeige
End If

Loop Until Freq < 43
If Freq < 43 Then
Set Portb.1
End If
Loop

Sub Netzanzeige
Reset Portb.1
For N = 0 To 250
Set Portb.3
Waitms 1
Reset Portb.3
Waitms 1
Next N
Waitms 500
End Sub


Sub Freq_mes
Timer_2 = 0
Sek = 0
Freq = 0
...

Der übrige Teil des Programmlistings entspricht demjenigen für die „Sparrow-Netzausfallanzeige“.  Ist die vom Mikrocontroller bestimmte Netzfrequenz kleiner als 43, leuchtet als „Bereitschaftsanzeige“ die grüne LED.  Wird bei der  Netzfrequenz  von 50 Hz deren  Wert größer als 45  „erkannt“ erlischt die grüne LED. Nun blinkt die rote LED mit einer niedrigen Taktfrequenz solange, wie die Netzspannung ansteht. Auch in diesem Fall besteht ähnlich wie bei der oben vorgestellten Programmversion die Möglichkeit, z. B. einen Piezo-Schallgeber zwischen  PB3 und Masse anzuschließen.



Elektronik-Labor  Projekte  AVR  Sparrow Contest