Blitzimpuls-Logger         


Elektronik-Labor  AVR  HF  Projekte 



Blitz-Impulse vom Ausgang des Mittelwellenradios sollen aufgezeichnet werden um zu erforschen, wie sie typischerweise aussehen. Dazu wird hier im ersten Versuch ein Mega32 eingesetzt (eine Umsetzung für Arduino ist in Arbeit). Das Ergebnis soll getriggert und mit Vortrigger-Werten ausgegeben werden. Für den ersten Versuch reicht eine serielle Ausgabe im Textformat. Das Bild oben entstand mit einem künstlichen Blitz, hergestellt mit einem Lichtschalter. Es zeigt einen mittleren Ruhepegel bei 287 * 5 mV = 1435 mV am Ausgang des TA7642. Getriggert wird, wenn die Spannung um 30 Schritte (150 mV) unter dem Mittel liegt. Der Triggerpunkt liegt bei dem achten Messpunkt vom Anfang (Messwert 241): Damit kann man die Vorgeschichte des Impulses betrachten. In diesem Fall sieht man schon zwei Messwerte vorher, dass etwas passiert. Nach dem Triggerpunkt kommen noch 120 Messpunkte, d.h. die Messung hat 128 Messpunkte.

Bei einer Messrate von ca. 25 kHz dauert die gesamte Messung rund 5 ms. Bei dieser Messung wurde der Mega32 übrigens nur über den USB versorgt, was eine etwas geringere Spannung als 5 V bringt. Die Messwerte waren deshalb insgesamt etwas zu hoch.

Mit diesem Programm sollte es möglich sein, die Frage nach der Länge eines Blitzimpulses zu beantworten. Gibt es nur einen kurzen Einzelimpuls oder einen langen Impuls oder vielleicht sogar ein Impulsserie? Unbekannt ist bisher noch ob die Messrauer von 5 ms ausreicht.  Im ersten Versuch wurde übrigens das Bascom-interne Terminal verwendet.

Download:  Impulslogger32.zip

$regfile = "m32def.dat"
$crystal = 11059200
$hwstack = 16
$swstack = 32
$framesize = 128

Baud = 9600


Dim N As Byte
Dim U As Word
Dim D As Word
Dim A As Byte 'Adresse
Dim Trigger As Byte
Dim Sta As Byte 'Startadresse , Trigerpunkt
Dim Daten(128) As Word


Config Adc = Single , Prescaler = 8 , Reference = Off
Start Adc

Ddrd = 255

U = Getadc(0)
A = 1
Sta = 0
Trigger = 0

Do
'Portd.4 = 1
D = Getadc(0)
'Portd.4 = 0
Daten(a) = D 'Ringpuffer
U = U * 15
U = U + D
Shift U , Right , 4
' Print U ; D ; Trigger 'Mittelwert U

If Trigger = 1 Then
If Sta = A Then
Print "Blitz!"
For N = 1 To 128
A = A + 1
If A > 128 Then A = 1
D = Daten(a)
Print D ; " ";
Next N
Sta = 0
Trigger = 0
End If
A = A + 1
If A > 128 Then A = 1
Else
D = D + 30 '> 150 mV unter Mittel
If D < U Then
Trigger = 1
Sta = A + 120 'getrigegrt
If Sta > 128 Then Sta = Sta - 128 'Überlauf?
End If
A = A + 1
If A > 128 Then A = 1
End If
'Waitms 200
Loop

End

Eine zweite Messung verwendete Terminal.exe und Excel zur Auswertung. Das folgende Bild zeigt wieder einen Impuls beim Einschalten einer Leuchtstoffröhre. Diesmal dauerte die ganze Sache etwas länger und zeigte eine unregelmäßige Impulsfolge. 




Arduino-Logger, von Fabian



Download: Blitzlogger.zip

Mein Sohn Fabian hat mir das Programm für den Arduino umgesetzt (Interessant wie ähnlich Basic und C sein können).  Die Funktion ist völlig identisch.



Bei einem Triggerereignis erscheinen die Daten im Serial Monitor und können sofort betrachtet werden. Von dort kann man sie auch kopieren und z.B. mit Excel auswerten.



Impuls beim Einschalten einer Leuchtstoffröhre, gemessen mit dem Arduino


Gespeicherte Messdaten

Samstagnacht habe ich ein Gewitter in der Nähe verpasst. Eine vertane Chance, die nötigen Messdaten zu sammeln. Deshalb  der Entschluss: Die Daten müssen automatisch im EEPORM des Controllers gespeichert werden. Dann kann der Controller über Nacht arbeiten und alle wichtigen Ereignisse aufzeichnen. Gesagt, getan, als Basis diente ein ES-M32. Im Display kann man nun jederzeit ablesen, wie viele Ereignisse es gegeben hat. Maximal acht Datensätze werden im EEPROM abgelegt und können dann später ausgelesen werden.

Download: Impulslogger32ee.zip

'Blitzdatenlogger, ES-M32 mit LCD und EEPROM

$regfile = "m32def.dat"
$crystal = 11059200
$hwstack = 16
$swstack = 32
$framesize = 128

Baud = 9600


Dim N As Byte
Dim U As Word
Dim D As Word
Dim A As Byte 'Adresse
Dim Trigger As Byte
Dim Sta As Byte 'Startadresse , Trigerpunkt

Dim Eeadr As Word
Dim I As Byte
Dim J As Byte
Dim B As Byte

Dim Daten(128) As Word

Config Adc = Single , Prescaler = 8 , Reference = Off
Start Adc

Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
Config Lcd = 16 * 2

Initlcd
Cls
Locate 1 , 1
Lcd "Logger "
Ddrd = 255
Open "com1:" For Binary As #1

U = Getadc(0)
A = 1
Sta = 0
Trigger = 0
Eeadr = 0

Do
'Portd.4 = 1
D = Getadc(0)
'Portd.4 = 0
Daten(a) = D 'Ringpuffer
U = U * 15
U = U + D
Shift U , Right , 4
' Print U ; D ; Trigger 'Mittelwert U

If Trigger = 1 Then
If Sta = A Then
Print "Blitz!"
Locate 1 , 1
Lcd "Blitz Nr. "
Lcd I
For N = 1 To 128
A = A + 1
If A > 128 Then A = 1
D = Daten(a)
Print D ; " ";
D = D / 2
B = D And 255
If Eeadr < 1024 Then Writeeeprom B , Eeadr
Eeadr = Eeadr + 1
Next N
I = I + 1
Sta = 0
Trigger = 0
End If
A = A + 1
If A > 128 Then A = 1
Else
D = D + 30 '> 150 mV unter Mittel
If D < U Then
Trigger = 1
Sta = A + 120 'getrigegrt
If Sta > 128 Then Sta = Sta - 128 'Überlauf?
End If
A = A + 1
If A > 128 Then A = 1
End If
'Waitms 200
J = Ischarwaiting(#1)
If J > 0 Then
Get #1 , J
Eeadr = J * 128
For N = 1 To 128
Readeeprom B , Eeadr
Put #1 , B
Eeadr = Eeadr + 1
Next N
End If
Loop

End

Die Daten werden als Bytes gespeichert und verwenden die halbe Auflösung bei einem Messbereich von 0 V bis 2,5 V. Zum Auslesen muss jeweils der Bereich im EEPROM angegeben werden, indem ein Byte 0 bis 7 gesendet wird. Als Antwort kommen dann die Messdaten als 128 Bytes. Dazu wurde ein kleines VB-Programm geschrieben:




Download: LoggerVB.zip

Zur Messzeit (Vormittag) gab es starke Gewitter in einer Entfernung von etwa 150 km. Im Radio konnte man am unteren Ende der Mittelelle das charakteristische leise Knistern hören. Die stärksten Impulse wurden aufgefangen und mit einem speziellen VB-Programm dargestellt. Ob es sich wirklich um Blitze handelt oder vielleicht doch um Störimpulse anderer Herkunft, ist noch nicht ganz eindeutig bewiesen.



Mit dem Programm lassen sich mehrere Impulse zusammen darstellen, was den vergleich erleichtert.  Später am Nachmittag entfernten sich die Gewitter etwas. Tatsächlich wurden weniger Ereignisse aufgenommen. Das folgende Bild zeigt acht Impulse aus einem Zeitraum von ca. drei Stunden. Bei einigen Impulsen sieht es so aus, als wäre eine zweite, schwächere Entladung in kurzem Abstand erfolgt. Das stimmt ungefähr mit dem überein. was man in Wikipedia über Blitze lesen kann: http://de.wikipedia.org/wiki/Blitz




Die gemessenen Impulse haben eine Tiefe von ca. 200 mV. Zum Vergleich: Der DLF-Mittelwellensender Nordkirchen bringt es mit seinen 100 kW aus einer Entfernung von ca. 40 km nur auf 100 mV unter Ruhepegel. Das erscheint glaubwürdig, denn ein Blitz hat eine wesentlich höhere Impulsleistung.

In der Nacht von Sonntag auf Montag haben die Gewitter stark nachgelassen. Es konnte kein einziges Blitzereignis mehr aufgezeichnet werden. Dafür gab es aber andere Signale. Ein starker Sender wurde eingeschaltet. War das vielleicht NAVTEX auf 490 kHz? Wegen der größeren Reichweite in der Nacht könnte das Signal so stark hereingekommen sein. Das muss auf jeden Fall noch genauer untersucht werden und könnte zu einem Frequenzwechsel zwingen.

Spätere Beobachtung: Es gab an dem Radio Probleme mit dem Power-Schalter auf dem Poti. Andere hatten so etwas auch schon beobachtet: Unzuverlässiger Schalter durch Oxidation. So eine Art von Wackelkontakt könnte dieses Messergebnis auch erklären. Damit das nicht mehr passiert habe ich jetzt den Schalter überbrückt. 


Arduino-Logger mit EEPROM, von Fabian



Download: BlitzloggerF2.zip

Jetzt ist auch die EEPROM-Version des Datenloggers für den Arduino fertig. Nun kann das Gerät autonom Daten sammeln. Damit auch der kleinste Arduino mit einem Mega168 verwendet werden kann ist die EEPROM-Größe auf 512 Bytes beschränkt, d.h. es passen vier vollständige Messungen hinein.

Messung von Schalterstörungen mit dem Arduino

Siehe auch: Blitzduino - Blitzwarner

Adrnino Uno mit Blitzempfänger-Shield: http://www.fkainka.de/Projekte/Blitz1.html

Weitere Messergebnisse vom 12.6.13

Gestern habe ich das Loggerprogramm noch einmal so umgebaut, dass nur 32 Messwerte pro Ereignis gespeichert werden. Mit dem Mega32 kann ich dann bis zu 32 Blitze speichern. Das VB-Programm muss nicht verändert werden und zeigt jeweils vier Ereignisse nebeneinander.  Die Messung lief fast 12 Stunden am Stück und hat in dieser Zeit 15 Ereignisse aufgezeichnet. Die vier gezeigten Impulse stammen von Mittwochabend und gehören vermutlich zu Blitzen in größerer Entfernung, mehr als 100 km, eventuell aus Holland und Belgien, wo es zu der Zeit geregnet hat. Eine wichtige Erkenntnis: Die Stärke eines Blitzes spiegelt sich nicht so sehr in der Tiefe des Impulses als in seiner Länge.  Außerdem scheint jeder Blitz noch seine Nachgeschichte zu haben, vermutlich die zusätzlichen Entladungen. Die vorher mal beobachteten Einbrüche bis 0,6 V traten nicht mehr auf, weil ich den Schalter mit dem Kontaktproblem überbrückt habe. Die Navtex-Theorie ist also vom Tisch. 

Inzwischen ist mein Eindruck, dass es mit dem MW-Radio mit Ferritantenne und TA7642 gehen könnte. Die Auslöseschwelle von 150 mV unter dem Mittelwert scheint zu passen. Jetzt fehlt nur noch eine passende Rechenvorschrift, die die Häufigkeit der Impulse einer Warnstufe zuordnet. Bisher fehlen mir noch Messungen, bei denen die Entfernung des Gewitters bekannt ist.  Aber morgen soll eine Kaltfront von Westen her kommen. Ich hoffe auf gute Messmöglichkeiten.

Dies sind 12 Entladungen von Donnerstagabend (13.6.13). Über NRW zog ein breites Regenband ohne Gewitter durch. Mein Eindruck ist, dass es Entladungen in den Wolken gibt, die noch nicht als Blitze wahrgenommen werden, die aber messbar sind. Es scheint eine eindeutige Korrelation zwischen der Häufigkeit solcher Entladungen und der Wetterlage zu geben. Hier gab es zwölf Entladungen in ca. zwei Stunden. Dann hörte der Regen auf, und in den folgenden acht Stunden gab es insgesamt nur noch vier Ereignisse.


Elektronik-Labor  AVR  HF  Projekte