AS3935 Blitzdetektor Erfahrungen

Gast #2930795
Lesenswert?

Da ja die Sammelbestellung der Blitzdetektorn, Platinen und Spulen nun 
erfolgreich abgeschlossen wurde, möchte ich nun diesen Thread eröffnen, 
um dort Erfahrungen mit diesem Baustein auszutauschen.

Ich habe die Platine bestückt und per I2C an einen Atmel angeschlossen.

Die Kommunikation klappt einwandfrei. Auch kann ich den Oszillator 
problemlos auf ca 500kHz kalibrieren (Takt durch 128 teilen, Kondensator 
auswählen, jeweils eine Sekunde lang messen und das Ergebnis mit der 
geringsten Abweichung wird dann verwendet.

Auch das Abfragen der verschiedenen Interrupt-Typen ist kein Problem.

Jetzt fehlt nurnoch ein Gewitter!

Leider ist es mit noch nicht gelungen, nachvollziehbare Blitz-Ereignisse 
zu generieren. Ich hab mal mit einem Funktionsgenerator verschiedene 
Bursts auf 500kHz auf eine Spule gegeben und diese in die Nähe des 
AS3935 gebracht.

Bis auf sporadisch auftretende Noise-Floor-Inerrupts konnte ich aber 
nichts erreichen.

Es gibt ja auch eine Testschaltung, welche Testimpulse generieren kann. 
Weiss jemand, wie die genau funktioniert
#2941141
Lesenswert?

Ich habe hier http://www.loetstelle.net/arduino/as3935/as3935.php einen 
kleinen Sketch für einen Arduino veröffentlicht, mit dem man die Daten 
eines AS3935 auslesen kann.

Leider konnte ich noch kein Blitz-Ereignis damit registrieren, es waren 
noch keine Gewitter in der Umgebung.

Auf Störungen, die ich mit einem Fuktionsgeneator und einer Spule 
erzeugt habe, reagiert das Programm je nach Dauer mit einer Erhöhung des 
Noise-Floor Levels bzw. erkennt einen 'Disturber'.

Dieses Verhalten würde ich auch so erwarten.

Hat schon jemand ein erstes Gewitter geortet ??
#2944763
Lesenswert?

Ich hab das Ding bei mir mal an ein I2C-tiny-USB 
(http://www.harbaum.org/till/i2c_tiny_usb/index.shtml) gehängt und 
schnell etwas Linuxcode zusammengefrickelt: 
https://github.com/znuh/unsorted/blob/master/as3935/main.c
Da kann ich die IRQ-Leitung natürlich nicht auswerten, daher polle ich 
das Interrupt-Register. Kalibriert hab ich mit VC920 Multimeter am IRQ 
auf 31204 Hz * 16 = 499264 Hz.

Habe aber andauernd disturber. Ich vermute fast, dass die durch die 
Flanken vom Pollen kommen. Auch aus dem Grund will man vermutlich den 
IRQ nutzen. Vielleicht guck ich mir demnächst mal die Flankensteilheit 
an und gucke, ob ich da noch was drehen kann, bzw. ob IRQ auch ohne 
pollen aktiv wird.

Als Antennenkapazitäten hab ich 2x NPO-G0805 470P von Reichelt genommen. 
Die haben zwar 5% Toleranz, aber habs vorher mit nem LC-Meter 
durchgemessen und kam mit beiden auf ca. 950pF.

Ansonsten sind die Gewitter im Winter halt eher rar...
Nen Schaltplan von dem Blitz-Emulator gibts in dem 
AS3935_EvalManual_AN.pdf auf Seite 13. Hab mir das aber auch noch nicht 
näher angeguckt.
#3139000
Lesenswert?

So, Thread ist wieder ausgegraben:

Nachdem es hier schon die ersten Frühlingsgewitter gab, wollte ich hier 
mal anfragen, ob schon jemand erste Erfolge mit dem Blitzdetektor hatte.
(Aufgebaut auf der Platine aus der Sammelbestellung letztes Jahr).

Bei mir leider nichts bisher. Garnichts. Trotz recht deutlicher Blitze 
in unmittelbarer Umgebung.

Softwaremässig scheint alles zu passen, die Frequenz wird korrekt 
kalibriert, mit einem Funktionsgenerator konnte ich zumindest 
Störimpulse erzeugen, also läuft die Kommunikation mit dem Baustein 
schonmal.

Hat Irgendwer schon bessere Resultate ?

dgr
#3203849
Lesenswert?

Hallo Zusammen,
ich plante gerade einen kompakten Blitzempfänger und bin auf der Suche 
nach einem kleinen Spannungswandler. Bei Reichelt bin ich auf folgenden 
gestoßen:

MCP1640CT-I/CHY

Was mir leider stört ist die Schaltfrequenz von 500kHz. Genau diese 
Frequenz sollte man aber vermeiden.

Meint ihr das gibt Probleme? Kennt jemand eine alternativen 
Schaltregler?
Gast #3210532
Lesenswert?

Habe mir den Detektor auch gebaut, allerdings komme ich wohl nicht genau 
auf die Frequenz.
Das Teil hängt noch an an einem Arduino, zur Auswertung nutze ich die 
entsprechende Library.
Das Beispielprogramm liefert mir beim Tuning einen Fehler von 8, dass 
wäre dann rund 12,5khz Abweichung.
Bin mir unschlüssig ob ich da nachbessern muss. In der erlaubten 
Abweichung bin ich da locker drin, allerdings sehe ich bei anderen im 
Netz immer schönere Näherungen an die 500khz.
Gibt es da Erfahrungen?
Gast #5458737
Lesenswert?

Hallo zusammen,
Wir versuchen mit einem Texas Instruments Mikrocontroller mit Hilfe des 
AS3935 Franklin Lightning Sensor Blitze zu detektieren mit einem 
I2C-BUS. Jedoch haben wir bei der Registerauslesung Probleme. Unabhängig 
vom angefragten Register, liefert uns der Sensor im Betrieb ständig den 
selben Wert (0x24 oder 0x1C).
ACK bzw. NAK werden unserer Meinung nach richtig gesetzt. Ist dieses 
Problem bekannt bzw. könnt Ihr uns irgendwelche Tipps geben?
besten Dank im voraus!
(Firma: www.ramser-elektro.at/shop) #5458758
Lesenswert?

Meinen Beitrag in meinem Blog habt ihr gesehen?
Da wird das ganze mit einem AM Empfänger gelöst.
Keine winzigen Bauteile zum löten und einfacher Algorithmus.
Basiert auf dem Franzis Gewitterwarner.
Nur mit mehr "Schhrauben" zum drehen ;-)
(Firma: www.ramser-elektro.at/shop) #5459412
Lesenswert?

spess53 schrieb:
> Hi
>
>>Meinen Beitrag in meinem Blog habt ihr gesehen?
>
> Nö. Muss man auch nicht.
>
>>Basiert auf dem Franzis Gewitterwarner.
>
> Ist bekannt. Hat aber gar nichts mit dem AS3935 zu tun.
>
> MfG Spess

Schade. Da bin ich traurig.
Ja, funktioniert ohne AS3935.

Andu Ankda schrieb:
> AMS Chip teuer und blöd zu bekommen.
> Selbe mit Antenne dafor.

Nein. Bei Mouser gibts alles.
Gast #5460017
Lesenswert?

Hallo Zusammen,

Hier ein Screenshot von unserem Logic Analyzer.
Hier soll Register 0x03 zum Bestimmen der Divisionratio ausgelesen 
werden.
Allerdings erhalten wir wie bereits erwähnt immer nur den Wert 0x1C
Dieser Wert wird auch sonst unabhängig von dem auszulesenden Register 
ausgelesen.



Ausschnitt vom Aufrufen der Read-Funktion:


uint8_t getDivisonratio(void)
{
    /*
     * Unterfunktion der autotunecaps Funktion
     */
    uint8_t regData=0;

    regData = read_single_data(Sensor_Adr,LCO_FDIV);

    //Lese aus dem Byte die oberen 2 Bits
    regData=(regData>>6);
...






Implementierung unserer Read-Funktion:



uint8_t read_single_data(uint8_t adr,uint8_t reg, uint8_t mask)
{
    I2CMasterSlaveAddrSet(I2C2_BASE,adr, false);         //Aufforderung 
zum Auslesen des
    I2CMasterDataPut(I2C2_BASE,reg);                     //Register 
anfordern
    I2CMasterControl(I2C2_BASE, I2C_MASTER_CMD_SINGLE_SEND);
    //SysCtlDelay(500);
    while (I2CMasterBusy(I2C2_BASE)) { }

    //SysCtlDelay(100000);                                 //warte >20ms 
for dem Lesen

    I2CMasterSlaveAddrSet(I2C2_BASE,adr,true);           //Auslesen

    I2CMasterControl(I2C2_BASE,I2C_MASTER_CMD_SINGLE_RECEIVE);
    //SysCtlDelay(500);
    while (I2CMasterBusy(I2C2_BASE)) { }

    return (I2CMasterDataGet(I2C2_BASE)&mask);           //Empfangenes 
Daten zur¸ckgeben (mit Maskierung)
}
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren