Blitz-O-shield der Gewitter Detektor

Blitze mit einem Arduino UNO detektieren?
Leichte Anbindung an einen PC / Raspberry PI?

Schon vor einiger Zeit habe ich euch den Potzblitz Gewitterdetektor vorgestellt.
Nach zig Nachfragen habe ich beschlossen, den PotzBlitz Gewitterdetektor auf die Arduino Uno (oder kompatibel ) Plattform zu portieren.
Wie immer Schritt für Schritt erklärt .

Überlegungen zu diesem Vorhaben:

  • Physik: Wie kann ich einen Blitz / ein Gewitter detektieren?
  • Hardware: Welche Voraussetzungen sollen erfüllt werden?
  • Designen des Shields
  • Zusammenbau des Shields

Physik: Wie kann ich einen Blitz / ein Gewitter detektieren?
Zunächst sollte man sich im klaren sein was ein Blitz ist, wie er entsteht und welche verschiedenen Arten es gibt.
Hierzu möchte ich nicht nur auf Wikipedia verweisen sondern auch auf Seiten, welche mir verschiedene Möglichkeiten aufzeigten, wie man das Problem mit der Detektierung angehen kann:
http://www.elektronik-labor.de/Projekte/Blitzwarner10.html

Wie sollte der Blitzdetektor arbeiten?
Entlädt sich ein Blitz, sendet dieser breitbandige Radiowellen aus, welche sich hauptsächlich im AM Band befinden.
AM lässt sich leicht verarbeiten. Im Grunde reicht eine Diode aus, um ein Audion zu bauen.
Ich bin immer ein Freund von bereits vorhandenen Schaltkreisen, da Diese auch nicht einfach mal so an einem Tag erfunden wurden und Ihre Berechtigung haben.
In diesem Projekt werden wir den AM Empfänger IC TA7642 benutzen, um die Nähe eines Gewitter zu ermitteln.

Arduino-Blitzdetektor-Shield-Schaltung-Blitzoshield-Ramser-Elektrotechnik-Webshop

Dies erfolgt auf folgende Weise:
Die Funkwellen der Blitze werden vom TA7642 empfangen, vorverstärkt, demoduliert und verstärkt.
Danach wird der Ausgang auf den Analogeingang A0 des Arduino geführt.
Dies ergibt pro Blitzentladung einen „Spannungeinbruch“ der Spannung am A0 Arduino Eingang, welche sich auswerten lässt.
Umso mehr „Spannungeinbrüche“ am Analogeingang, umso mehr Entladungen, umso näher das Gewitter.
Die Amplitude des Signals ist in diesem Projekt egal!

Arduino-Blitzdetektor-Shield-PWM-Schaltung-Blitzoshield-Ramser-Elektrotechnik-Webshop

Beim Blitzwarner des Elektroniklabors wurde der normale Logiklevel des Portpins gewählt, um einen Interrupt auszulösen.
Bei meinem Blitzdetektor wird der ADC des Arduino verwendet.
Dadurch kann die PWM Dynamisierung für den AGC besser angepasst werden!

Die Verstärkung des TA7642 wird mittels geglätteter Spannung eines PWM Signals geregelt. Ja, richtig gelesen! Sie wird nicht gesteuert, sondern geregelt. Mehr dazu später.

Hardware: Welche Voraussetzungen sollen erfüllt werden?
Bei diesem Projekt soll ein standardmässiges Arduino Uno kompatibles Board benutzt werden, das mittels Shield erweitert wird.
Dieses Blitz-O-Shield besitzt die ganze Hardware, um die Blitze bzw. Gewitter zu detektieren.
Die Arduino IDE ist Freeware und das Sketch kann auch frei heruntergeladen werden.

Designen des Shields
Am Anfang wird wieder ein Schaltplan gezeichnet und eine Platine designt.

Arduino Blitzdetektor Shield Schaltung - Ramser Elektrotechnik Webshop

Dann heisst es warten bis die Platinen aus einem regionalen Betrieb eintreffen. Sind die Platinen eingetroffen, kann mit der Bestückung begonnen werden.

Zusammenbau des Shields
Zuerst sollten alle Bauteile positioniert werden, um den Zusammenbau zuerleichtern. Bei dem im Shop erhältlichen Bausatz ist eine Bestückungsanleitung mit von der Partie, um den Zusammenbau zu erleichtern.

Arduino Blitzdetektor Shield - Ramser Elektrotechnik Webshop 1

Zuerst bestücke ich den 100k Widerstand R1.

Arduino Blitzdetektor Shield - Ramser Elektrotechnik Webshop 2

Danach folgen die ganzen 1k Widerstände R2 R5 und R6.

Arduino Blitzdetektor Shield - Ramser Elektrotechnik Webshop 3

Gefolgt von den ganzen 160R LED Vorwiderständen R3 R7 R8 R9 und R10 sowie die 1N4148 Diode D1.

Arduino Blitzdetektor Shield - Ramser Elektrotechnik Webshop 4

Danach können die LEDs und die Drossel L2 bestückt werden.
(Zur Vereinfachung der Auschnitt der Board File. Hier ist die abgeflachte Stelle an der LED zu sehen )

Arduino Blitzdetektor Shield - Ramser Elektrotechnik Webshop 5
Arduino Blitzdetektor Shield LED Ausrichtung - Ramser Elektrotechnik Webshop

Nach den LEDs kann der 270pF Kondensator, der TA7642, sowie die Elektrolytkondensatoren für die geglättete PWM Spannung bestückt werden.

Arduino Blitzdetektor Shield - Ramser Elektrotechnik Webshop 6

Jetzt folgt nur noch die zweite Drossel und die 100nF Kondensatoren.
Auch der Optokoppler für die Fernauslösung kann gleich mitbestückt werden.

Arduino Blitzdetektor Shield - Ramser Elektrotechnik Webshop 7

Zum Schluss noch die Pinheader und alles ist gut 😉

Arduino Blitzdetektor Shield - Ramser Elektrotechnik Webshop 8

Euer Blitzoshield kann nun auf dem Arduino Uno montiert und softwaremässig in Betrieb genommen werden.

Arduino Blitzdetektor Shield - Ramser Elektrotechnik Webshop 00

Die Software:
Sie kann natürlich wieder vollkommen frei downgeloaded werden und kann in der Arduino IDE geöffnet werden.

Die Funktionsweise der Software
Bei Start wird die Spannung des TA7642 so lange erhöht, bis eine gewisse Grundspannung am TA7642 anliegt.
Dies dient dazu, die Exemplarstreuung auszugleichen.
Anschliessend wird zyklisch ein laufender Mittelwert gebildet, um Störeinflüssen entgegenzuwirken.
Trifft ein Blitzevent auf (Spannung bricht am A0 ein), so wird einer Countervariable erhöht.
Nach einer gewissen Zeit wird der Wert natürlich wieder dekrementriert.
Abhängig vom Wert, werden die LEDs angesteuert.

Ihr seht, wie simple die Welt sein kann.
Viel Spass beim Löten und Blitz detektieren 🙂

PS: Aufbau/Test von unabhängigen Personen:
https://draeger-it.blog/blitz-o-shield-von-ramser-elektronik/
https://www.aeq-web.com/ramser-blitz-o-shield-arduino-blitzdetektor/

39 thoughts on “Blitz-O-shield der Gewitter Detektor

    1. fritz Post author

      Hallo Heiko,
      Klicke auf unserer navigationsleiste auf „Support“ und danach auf „Downloads“.
      In der Ruprik „Bausätze“ ist das Sketch für den Blitzoshield gelistet.

  1. Steineiche

    Hallo, schönes Projekt. Ich werde mich mal am Blitz-Schield versuchen. Gibt es für die Kombi mit Arduino auch einen Gehäusevorschlag, sowie für den PotzBlitz?

    1. fritz Post author

      Hallo,
      Hammond Typ „001113“ ist für den Potzblitz sehr gut geeignet.
      Bilder, siehe Potzblitz über „software“.
      Für den Blitz-O-shield ist mir leider kein komplett geschlossenes Gehäuse bekannt.
      Falls Jemand aber eines in die finger bekommt, bitte gleich hier posten 😉

  2. JoRa

    Hallo sehr schönes Projekt,
    ich habe alles wie beschrieben zusammen gebaut und hatte das Glück, dass auch gleich ein Gewitter über uns war. Leider muss ich sagen hat das Teil komplett versagt.
    Da hat außer beim selbsttest nicht geleuchtet.
    Schade

    1. fritz Post author

      Sehr geehrte/er JoRa,
      Der Blitzoshield ist eher als empfindlich bekannt, als unempfindlich.
      Was wurde im Terminal als Debugtext ausgegeben?
      (PWM,ActValue,AverangeValue,Difference,Warnlevel,Decay,Strikecount?)
      Reagiert der Blitzdetektor Shield, wenn Sie mit dem Finger die Drossel L1 am Kern berühren?
      Reagiert der Blitzdetektor Shield auf ein Piezo Feuerzeug?
      Wie sieht das Signal am Analogeingang A0 aus?

      1. JoRa

        Hallo fritz,

        danke für die Antwort
        am Terminal wird folgendes ausgegeben:
        19:36:02.919 -> PWM:14 Actual:932 Averange:932.83 Difference:0 Warnlevel:1079 Decay:4 Strikecount:0
        19:36:03.937 -> PWM:14 Actual:934 Averange:933.01 Difference:0 Warnlevel:1075 Decay:4 Strikecount:0
        19:36:04.955 -> PWM:14 Actual:933 Averange:932.89 Difference:0 Warnlevel:1071 Decay:4 Strikecount:0
        19:36:06.010 -> PWM:14 Actual:933 Averange:932.94 Difference:0 Warnlevel:1067 Decay:4 Strikecount:0
        19:36:07.009 -> PWM:14 Actual:933 Averange:933.00 Difference:0 Warnlevel:1063 Decay:4 Strikecount:0
        19:36:08.037 -> PWM:14 Actual:933 Averange:933.12 Difference:0 Warnlevel:1059 Decay:4 Strikecount:0
        19:36:09.061 -> PWM:14 Actual:933 Averange:932.95 Difference:0 Warnlevel:1055 Decay:4 Strikecount:0
        19:36:10.108 -> PWM:14 Actual:932 Averange:932.62 Difference:0 Warnlevel:1051 Decay:4 Strikecount:0
        Wenn ich an die Drossel fasse wird strike ausgelöst.
        Wenn ich das Piezo zünde wird auch strike ausgelöst.

        Ich weiß nicht an was es liegt.

        1. fritz Post author

          Hallo JoRa,
          Bei mir sieht es so aus:
          PWM duty cycle tuning started
          PWM duty cycle tune successfull
          PWM:18 Actual:944 Averange:1018.06 Difference:7 Warnlevel:255 Decay:0 Strikecount:32
          PWM:18 Actual:951 Averange:949.91 Difference:-1 Warnlevel:509 Decay:1 Strikecount:255
          PWM:18 Actual:951 Averange:950.81 Difference:0 Warnlevel:508 Decay:1 Strikecount:0
          Wird ein „Blitz“ detektiert, ist die Ausgabe wie folgt:
          PWM:18 Actual:951 Averange:950.19 Difference:0 Warnlevel:1495 Decay:5 Strikecount:0
          PWM:18 Actual:951 Averange:950.22 Difference:0 Warnlevel:1490 Decay:5 Strikecount:0
          PWM:18 Actual:949 Averange:939.57 Difference:-9 Warnlevel:1739 Decay:6 Strikecount:255
          PWM:18 Actual:939 Averange:936.79 Difference:-2 Warnlevel:1987 Decay:7 Strikecount:255
          PWM:18 Actual:945 Averange:943.30 Difference:-1 Warnlevel:2234 Decay:8 Strikecount:255
          PWM:18 Actual:950 Averange:950.02 Difference:0 Warnlevel:2226 Decay:8 Strikecount:0
          PWM:18 Actual:945 Averange:945.69 Difference:0 Warnlevel:2218 Decay:8 Strikecount:0

          Man kann nun an zwei Schrauben drehen:
          1.Man erhöht die Empfindlichkeit der Schaltung.
          Dazu wird in der TunePWM() folgende Zeile modifiziert:
          PWM_DutyCycle = (PWM_DutyCycle /3 ) * 2;
          Original wird der PWM Wert auf 2/3 des Maximums gesetzt.
          Man kann den PWM Wert ja mal auf 5/6 setzen.

          2.Man veringert die Tolleranz gegenüber Störungen.
          Dazu gehört in der loop() folgende Zeile modifiziert:
          if (Difference >= 15){
          Würde da mal 12 testen.

  3. JoRa

    Danke für die Hilfe nach einer feinjustierung wie beschrieben funktioniert es Prima.
    Jetzt habe ich allerdings noch ein Problem.
    Da ich die Daten auf nen Server laden will benötige Wlan.
    Weshalb ich den D1 oder ein Esp8266 einsetzen möchte.
    Gibt es den sketch auch für den Ardunino D1?
    Ist ja im Prinzip kompatibel, jedoch funktioniert der Sketch vom UNO dort nicht.

    analogReferenz Fehler!

    Die funktion habe ich bei beiden nicht hinbekommen.
    Bitte um kurze Antwort.

    Recht herzlichen Dank und mit freundlichen Grüßen
    JoRa

  4. Michael Krispin

    Waere es nicht einfacher (auch sicherer) den Blitz ueber seinen sicher vorhandenen UV Lichtanteil zu detektieren?
    Diese UV Dioden liefern eine Spannung als Teil eines Spannungsteilers.
    Abtastraten von etwa 4-5 mal /pro Sekunde sollte kein Problem darstellen, weder fuer den ADC1115 noch fuer den uCtrl
    Das in ein Array rollierend speichern fuer etwa 5 Sekunden und ueber die rate of change durch vergleich der aktuellen mit den Vorgroessen auf einen deutlichen Peak pruefen.
    Ich bin gerade daran fuer meine Wetterstation
    Lieben Gruß aus Thailand,
    Michael

    1. fritz Post author

      Hallo Michael,
      Über UV Licht ist unserer Meinung nach suboptimal.
      Elektromagnetische Wellen durchdringen Wände.
      UV Licht leider nicht.
      Über Radiowellen ist eine Detektion über 50km kein Problem.
      Über UV Licht, wird der analoge Schaltungsteil sehr anspruchsvoll.
      Physikalische Grenzen auszuloten ist aber unser Kerngeschäft 😉

  5. Michael Krispin

    Hallo Fritz,
    Mein UV Sensor ist draussen an meiner Wetterstation wasserdicht montiert.
    Erste Versuche mit einem ADC1115 (4 AI) ueber I2C an meinem ESP8266 angeschlossen zeigen gute Resultate.
    Da ist nur ein weiterer Widerstand noetig um einen Spannungsteiler zu bilden. Diese UV Photodiode aendert intern seinen Spannungsabfall in Abhaengigkeit der einfallenden UV Lichtstaerke. Das ist kein lahmer LDR.
    Ich habe zur Zeit taeglich Gewitter hier und optimiere nur noch die Peakerkennung per Software.
    Mich interessiert obendrein auch nur Gewitter in meiner Umgebung.
    Aber es fuehren bekanntlich viele Wege nach Rom
    LG, Michael

  6. Jörg Michael Günther

    Hej Fritz
    Eine Frage ….
    Kann man die Ausgabe auf irgendeine Weise auch in Daten fassen, die ich in einer Datenbank speichern kann und dann auf meiner Wetterseite darstelle?
    Vielleicht zusätzlich zu den Leuchtdioden. Das Ganze befindet sich nämlich nach Montage ausserahlb des Hauses in einer Box.
    Herzlichen Gruss aus Schweden
    Jörg

    1. fritz Post author

      Hallo Jörg,
      Da gibt es einige Möglichkeiten.
      Am einfachsten die UART Ausgabe nutzen und den Arduino an einen Raspberry PI anbinden.
      Dann hast du genügend Rechen Power für eine Datenbankanbindung und bist zugleich vernetzt.

  7. Andreas Golla

    Richtig guter Bausatz und Sketch.
    Ich habe noch ein 128×32 OLED über I2C angeschlossen und den Sketch entsprechend erweitert. Die lange Zeile für den seriellen Monitor wird jetzt 4-zeilig auf dem OLED ausgegeben. Mit aufgesetztem Shield blieb das OLED allerdings zunächst dunkel. Egal ob an A5/A4 oder SDA/SCL angeschlossen, obwohl die Pins am Shield laut Schaltplan nicht benutzt werden. Seltsam. Hab mir dann so beholfen, dass ich das Shield über SDA/SCL am Rand ausgesägt habe und das OLED direkt in die Pins des darunterliegenden Arduinos stecke. Und siehe da, es funktioniert. Nur manchmal wird beim Schreiben aufs OLED ein Störimpuls (Blitz) erzeugt. Hängt irgendwie davon ab, wie das Kabel liegt. Vielleicht hat jemand eine Idee, wie man das noch robuster bekommt. (5V und GND sind ohne Probleme direkt am Shield angeschlossen)

    Ansonsten einwandfreier Betrieb auch am alten Labornetzteil. USB-Steckernetzteile allerdings gehen wegen Störungen gar nicht.

      1. Andreas Golla

        Hallo Herr Ramser,
        danke für den Tip. Absenken der I2C Frequenz bis runter auf ca. 1kHz hat jedoch nichts gebracht. Die Lösung war dann ein zusätzliches ‚delay(50)‘ nach dem Schreiben der 4. und letzten Zeile aufs OLED mit ‚display.display()‘. Der Störimpuls ist jetzt weg. Ein ‚delay(10)‘ war übrigens zu klein.

        1. fritz Post author

          Sehr geehrter Herr Golla,
          Leider können wir einen Befehl, in einem unbekannten Programm, auf einer unbekannten Hardware, ohne Schaltplan nicht nachvollziehen und damit verbunden auch leider keinen Support anbieten.

  8. Lutz

    Hallo

    bausatz zusammengebaut und funktioniertprima. werd den mal ein paar tage laufen lassen. bis dahin alles prima. Ich möchte damt eine kamera ansteuern und Blitzfotografie machen. Kann mir bitte jemand helfen ? Wie muss ich den optokoppler betreiben ? Welcher pin ist was ? Ich habe einen potentialfreien kontakt an der kamera und einen kabelgebundenen fernauslöser.
    Danke für jede Hilfe!!

      1. Lutz

        hallo Fritz

        danke für den Link. Aber der OK auf dem Bausatz ist ein Transistor.. brauch ich eine Beschaltung für den Pin 6 ?

  9. Chrsitoph Gralla

    Gibt es die möglichkeit den Sketch auf einem D1 WEMOS mini laufen zu lassen?
    Beim Kompilieren bricht der Kompiler bei „analogReference(INTERNAL);“ ab. DER D! hat anscheined keine Interne Spannung.
    Kommentiert man diese Zeile aus, dann erscheint untenstehnde meldung. Ohne Abbruch?!

    . Variables and constants in RAM (global, static), used 28440 / 80192 bytes (35%)
    ║ SEGMENT BYTES DESCRIPTION
    ╠══ DATA 1536 initialized variables
    ╠══ RODATA 1120 constants
    ╚══ BSS 25784 zeroed variables
    . Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 61247 / 65536 bytes (93%)
    ║ SEGMENT BYTES DESCRIPTION
    ╠══ ICACHE 32768 reserved space for flash instruction cache
    ╚══ IRAM 28479 code in IRAM
    . Code in flash (default, ICACHE_FLASH_ATTR), used 240260 / 1048576 bytes (22%)
    ║ SEGMENT BYTES DESCRIPTION
    ╚══ IROM 240260 code in flash

    Gibt es hier eine Lösung? oder muss es ein Arduino UNO sein?

  10. Christoph Gralla

    Hallo dazu nocheinmal:
    Der Sketch lies sich dennoch hochladen und ist angelaufen.
    Grüne LED kam, gelbe LED kam, dann Abbruch mit blinken.

    Habe darauf den Sketch modifiziert mit Debug Meldungen:
    Kondensator wird entladen.
    Kondensator wird auf 1/3 geladen.
    Der Analogwert (digits) starten dann bei ca 285. Zählen hoch bis ca. 450 und schwanken dann um 380 bis 410 solange bis der Timeout kommt (Blinken von allen LEDS).
    Anscheinend wird der Kondensator nicht vollständig geladen. Woran kann das liegen?
    Danke für eine kurze Idee.
    Gruß
    Christoph

    1. fritz Post author

      Es sollte die Versorgungsspannung des TA7642 gemessen werden.
      Es sieht so aus, dass diese zu klein ist und daher der AGC Schwellwert nicht erreicht wird.

  11. Christoph Gralla

    Hallo Fritz,
    Danke für den Hinweis.
    Ich habe in der Software den Analog Read mit dem Faktor 100/33 multipliziert, dann funktioniert das PWM Tunig. Die Spannung beim Analogin liegt dann nach erfolgreichem PWM Tunig bei ca. 0,9 V. Dann funktioniert auch die Anzeige des Warnlevel. (ersteinmal. Ich habe zur Zeit kein Gewitter hier). Der Test mit dem Piezofeuerzeug funktioniert einwandfrei! Das angeschlossene OLED Display SD1306 läuft auch noch obwohl anscheinend auch der Speicher des D1 WEMOS an der Grenze arbeitet. Zur Zeit ist hier Gewitterzeit und ich lasse es jetzt ersteinmal auf dem Steckbrett durchlaufen befor ich ein 3D Druck Gehäuse konstruiere. Das stelle ich dann gerne hier ein. Ziel ist hier das es die Blitz Daten über WIFI an meine Hausautomation überträgt und dann an meiner Wetterstation zusätzlich anzeigt. (Node Red machts möglich.).

    Bisher kann ich nur sagen: Ein Klasse Bausatz und eine sehr fitte Software.
    .

  12. Markus

    Hallo Fritz,
    vielen Dank für dieses tolle Projekt.
    Ich habe das zusammengelötete Shield auf meinen Arduino Mega2560 gesteckt. Ich musste in Zeile 48 „INTERNAL“ durch „INTERNAL1V1“ ersetzen (Mega spezifisch). Dann ließ sich alles kompilieren und hochladen.
    Leider ist der „StrikeCount“ permanent auf 255 obwohl kein Gewitter herrscht, sodass der maximale Warnlevel bereits nach 30 Sek. erreicht wird:

    PWM duty cycle tuning started
    20:18:36.668 -> PWM duty cycle tune successfull
    20:18:36.705 -> PWM:48 Actual:1023 Averange:1023.00 Difference:0 Warnlevel:255 Decay:0 Strikecount:0
    20:18:37.731 -> PWM:48 Actual:999 Averange:994.44 Difference:-4 Warnlevel:509 Decay:1 Strikecount:255
    20:18:38.756 -> PWM:48 Actual:1002 Averange:999.12 Difference:-2 Warnlevel:762 Decay:2 Strikecount:255
    20:18:39.784 -> PWM:48 Actual:1011 Averange:989.22 Difference:-21 Warnlevel:1014 Decay:3 Strikecount:255
    20:18:40.810 -> PWM:48 Actual:1016 Averange:998.34 Difference:-17 Warnlevel:1265 Decay:4 Strikecount:255
    20:18:41.848 -> PWM:48 Actual:927 Averange:980.49 Difference:53 Warnlevel:1515 Decay:5 Strikecount:255
    20:18:42.883 -> PWM:48 Actual:999 Averange:1006.53 Difference:7 Warnlevel:1764 Decay:6 Strikecount:255
    20:18:43.914 -> PWM:48 Actual:993 Averange:970.94 Difference:-22 Warnlevel:2012 Decay:7 Strikecount:255
    20:18:44.946 -> PWM:48 Actual:988 Averange:1006.39 Difference:18 Warnlevel:2259 Decay:8 Strikecount:255
    20:18:45.963 -> PWM:48 Actual:930 Averange:967.28 Difference:37 Warnlevel:2505 Decay:9 Strikecount:255
    20:18:47.014 -> PWM:48 Actual:993 Averange:975.76 Difference:-17 Warnlevel:2750 Decay:10 Strikecount:255
    20:18:48.039 -> PWM:48 Actual:986 Averange:972.91 Difference:-13 Warnlevel:2994 Decay:11 Strikecount:255
    20:18:49.080 -> PWM:48 Actual:930 Averange:956.77 Difference:26 Warnlevel:3237 Decay:12 Strikecount:255
    20:18:50.109 -> PWM:48 Actual:933 Averange:971.34 Difference:38 Warnlevel:3479 Decay:13 Strikecount:255
    20:18:51.109 -> PWM:48 Actual:932 Averange:959.78 Difference:27 Warnlevel:3720 Decay:14 Strikecount:255
    20:18:52.172 -> PWM:48 Actual:937 Averange:947.82 Difference:10 Warnlevel:3960 Decay:15 Strikecount:255
    20:18:53.180 -> PWM:48 Actual:993 Averange:996.39 Difference:3 Warnlevel:4199 Decay:16 Strikecount:255
    20:18:54.203 -> PWM:48 Actual:927 Averange:956.12 Difference:29 Warnlevel:4437 Decay:17 Strikecount:255
    20:18:55.269 -> PWM:48 Actual:931 Averange:950.04 Difference:19 Warnlevel:4674 Decay:18 Strikecount:255
    20:18:56.265 -> PWM:48 Actual:1015 Averange:995.17 Difference:-19 Warnlevel:4910 Decay:19 Strikecount:255
    20:18:57.329 -> PWM:48 Actual:930 Averange:952.12 Difference:22 Warnlevel:5145 Decay:20 Strikecount:255
    20:18:58.343 -> PWM:48 Actual:1004 Averange:1003.75 Difference:0 Warnlevel:5379 Decay:21 Strikecount:255
    20:18:59.385 -> PWM:48 Actual:1012 Averange:991.55 Difference:-20 Warnlevel:5612 Decay:22 Strikecount:255
    20:19:00.407 -> PWM:48 Actual:1011 Averange:997.46 Difference:-13 Warnlevel:5845 Decay:22 Strikecount:255
    20:19:01.462 -> PWM:48 Actual:1003 Averange:992.30 Difference:-10 Warnlevel:6077 Decay:23 Strikecount:255
    20:19:02.469 -> PWM:48 Actual:989 Averange:1004.06 Difference:15 Warnlevel:6308 Decay:24 Strikecount:255
    20:19:03.508 -> PWM:48 Actual:927 Averange:948.42 Difference:21 Warnlevel:6538 Decay:25 Strikecount:255
    20:19:04.539 -> PWM:48 Actual:1010 Averange:1005.88 Difference:-4 Warnlevel:6767 Decay:26 Strikecount:255
    20:19:05.576 -> PWM:48 Actual:1019 Averange:1001.58 Difference:-17 Warnlevel:6995 Decay:27 Strikecount:255
    20:19:06.617 -> PWM:48 Actual:994 Averange:998.72 Difference:4 Warnlevel:7000 Decay:28 Strikecount:255

    Woran kann das liegen (die LED „Strike“ flackert in sehr hoher Frequenz)?
    Ich kann mir nicht vorstellen, dass es hier starke Störfelder gibt …

  13. Markus

    Nachtrag:
    Ich habe die Empfindlichkeit in der Zeile „PWM_DutyCycle = (PWM_DutyCycle /3 ) * 2“ auf 2/11 verringert (PWM=12). Damit „funkt“ die Strike-LED nicht mehr von alleine. Der Test mit dem Piezofeuerzeug funktioniert auch.
    Wenn ich allerdings mit dem Finger in die Nähe von L1 komme (5mm), feuert „Strike“ wie verrückt.

    1. fritz Post author

      Hallo Markus,

      Wie schon in der vorigen Antwort geschrieben, hast du das verändert, was der Auslöser des Fehlverhaltens war:
      Die PWM ist(war) zu hoch!

      Man darf nicht vergessen, dass der Arduino Mega auch eine Störabstrahlung hat, welcher eingekoppelt werden kann.
      Gerade eine Kommunikation mit I2c (400kHz) kann hier ein Problem darstellen.

      Das man die Spule nicht anfassen sollte, hast du ja selbst rausgefunden 😉
      Das ist normal.
      Es werden über den menschlichen Körper Störfelder eingekoppelt.

      PS:
      Vielleicht hilft es auch, wenn man die PWM dynamisch verminderst. (if (StrikeCount >= 255){)
      Wenn z.Bsp. in der Auswertung des Strikes, bei einem Strikecount grösser 255 die PWM reduziert wird.

  14. Markus

    Hallo Fritz,
    danke für Deine rasche Rückmeldung. Ich weiss jetzt auch warum die PWM so hoch ist: Die “ while (ActValue PWM duty cycle tuning started
    07:14:34.910 -> PWM:1 Actual:468
    07:14:35.149 -> PWM:2 Actual:503
    […

    …]

    07:14:42.155 -> PWM:30 Actual:981
    07:14:42.403 -> PWM:31 Actual:992
    07:14:42.653 -> PWM:32 Actual:999
    07:14:42.935 -> PWM:33 Actual:1003
    07:14:43.180 -> PWM:34 Actual:1012
    07:14:43.428 -> PWM:35 Actual:1020
    07:14:43.678 -> PWM:36 Actual:1023
    07:14:43.920 -> PWM:37 Actual:1023
    07:14:44.169 -> PWM:38 Actual:1023
    07:14:44.419 -> PWM:39 Actual:1023
    07:14:44.674 -> PWM:40 Actual:1023
    07:14:44.920 -> PWM:41 Actual:1023
    07:14:45.173 -> PWM:42 Actual:1023
    07:14:45.425 -> PWM:43 Actual:1023
    07:14:45.665 -> PWM:44 Actual:1023
    07:14:45.914 -> PWM:45 Actual:1023
    07:14:46.162 -> PWM:46 Actual:1023
    07:14:46.412 -> PWM:47 Actual:1023
    07:14:46.673 -> PWM:48 Actual:1023
    07:14:46.924 -> PWM:49 Actual:1023
    07:14:47.173 -> PWM:50 Actual:1023
    07:14:47.429 -> PWM:51 Actual:1023
    07:14:47.685 -> PWM:52 Actual:1023
    07:14:47.937 -> PWM:53 Actual:1023
    07:14:48.190 -> PWM:54 Actual:1023
    07:14:48.436 -> PWM:55 Actual:1023
    07:14:48.684 -> PWM:56 Actual:1023
    07:14:48.938 -> PWM:57 Actual:1023
    07:14:49.194 -> PWM:58 Actual:1023
    07:14:49.444 -> PWM:59 Actual:1023
    07:14:49.694 -> PWM:60 Actual:1023
    07:14:49.939 -> PWM:61 Actual:1023
    07:14:50.953 -> PWM duty cycle tune successfull

    Nachtrag: Hab den Fehler gefunden: „ActValue“ muss als „FLOAT“ deklariert werden, dann klappts!

  15. Bernd

    Hallo Fritz,
    Ich habe eine generelle Frage über Gewitter Detektor.
    Kann ich mit diesem Gewitter Detektor auch Kurzschlussfunken detektieren.
    Zum Beispiel, Hochspannungsmast 35.000V Spannung (AC, 50Hz) 2000A Strom. Eine Phase schlägt gegen Hochspannungsmastkonstruktion. Es entsteht ein Funken. Kurzschluss dauert z.B. 0.1 bis 1 Sekunde dann trennt sich diese Phase wieder vom Mast. Entfernung zum Detektor zum Funken ca. 3-20 Meter.
    Bei wie viel kHz sendet so eine Kurzschlussfunke hast Du darüber Erfahrung. ?
    Es geht hier darum, ob man vom Kurzschlussfunken ein Signal empfängt oder nicht also es geht um ja oder nein, es können manchmal auch Falschsignale sein, das ist nicht schlimm . Kannst Du darüber was sagen ?

    1. fritz Post author

      Leider können wir keine Aussage über Funken, welche bei Kurzschlüssen an Hochspannungsmasten entstehen, machen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert