AS3935 Lightning sensor library
Fork of AS3935 by
include the mbed library with this snippet
#include "mbed.h" #include "AS3935.h" // frdm-kl25z sd card connections for spi1 // ------------------------------------------------ // Header -- kl25z -- SD/MMC // J2-20 -- PTE1 -- MOSI // J9-13 -- PTE4 -- CS // J2-14 -- GND -- Vss (GND) // J9-9 -- PTE2 -- SCK // J9-11 -- PTE3 -- MISO AS3935 ld(PTE1, PTE3, PTE2, PTE4, "ld", 100000); // MOSI, MISO, SCK, CS, SPI bus freq (hz) InterruptIn IntLightning(PTA12); //IRQ AS3935 DigitalOut led1(LED_RED); Serial pc(USBTX, USBRX); void DetectLightning() { char OriginInt; wait_ms(2); OriginInt = ld.interruptSource(); if (OriginInt == 1) { // pc.printf(" Noise level too high\r\n"); } if (OriginInt == 4) { // pc.printf(" Disturber\r\n"); } if (OriginInt == 8) { // detection // pc.printf(" Lightning detection\r\n"); pc.printf(" Lightning detection, distance=%dkm\r\n", ld.lightningDistanceKm()); ld.clearStats(); } } int main() { pc.baud(9600); pc.printf("\r\nstart lightning detector\r\n"); //initialisations ld.reset(); ld.setTuneCap(5); // 500kHz ld.powerUp(); ld.setIndoors(); ld.setMinimumLightnings(1); //ld.setSpikeRejection(2); ld.setNoiseFloor(2); ld.disableDisturbers(); //ld.enableDisturbers(); ld.setWatchdogThreshold(2); wait_ms(10); IntLightning.rise(&DetectLightning); int MinBlysk = ld.getMinimumLightnings(); int Noise = ld.getNoiseFloor(); int TuneCap = ld.getTuneCap(); int SpikeRej = ld.getSpikeRejection(); int WatchDog = ld.getWatchdogThreshold(); pc.printf(" Min wylad: %i", MinBlysk); pc.printf("\r\n"); pc.printf(" Noise: %i", Noise); pc.printf("\r\n"); pc.printf(" Tune CAP: %i", TuneCap); pc.printf("\r\n"); pc.printf(" Spike rej: %i", SpikeRej); pc.printf("\r\n"); pc.printf(" Watchdog: %i", WatchDog); pc.printf("\r\n"); while(1) { led1 = ! led1; wait(0.2); } }
History
Read energy registers per the data sheet.
2015-12-14, by cmkachur [Mon, 14 Dec 2015 22:18:11 +0000] rev 15
Read energy registers per the data sheet.
Add defines for events.
2015-09-22, by cmkachur [Tue, 22 Sep 2015 23:05:39 +0000] rev 14
Add defines for events.
Fix the define value for indoor mode to match the data sheet.
2015-06-30, by cmkachur [Tue, 30 Jun 2015 16:20:20 +0000] rev 13
Fix the define value for indoor mode to match the data sheet.
Tune the antenna before calibrating the RCO per the data sheet. The calibrateRCO() method was modified to not overwrite the value of the tuning capacitor from the antenna tune method.
2015-06-24, by cmkachur [Wed, 24 Jun 2015 18:18:37 +0000] rev 12
Tune the antenna before calibrating the RCO per the data sheet. The calibrateRCO() method was modified to not overwrite the value of the tuning capacitor from the antenna tune method.
Store all configuration register values and firmware version to config_data.csv file at startup. Delete obsolete code.
2015-06-24, by cmkachur [Wed, 24 Jun 2015 16:36:47 +0000] rev 11
Store all configuration register values and firmware version to config_data.csv file at startup. Delete obsolete code.
Add method for reading energy of lightning strike. Add energy data to the log file. Remove call to powerUp() since this was only setting outdoor mode which was done elsewhere.
2015-06-23, by cmkachur [Tue, 23 Jun 2015 21:01:27 +0000] rev 10
Add method for reading energy of lightning strike. Add energy data to the log file. Remove call to powerUp() since this was only setting outdoor mode which was done elsewhere.
Update calibrate RCO method. Measure the TRC oscillator.
2015-06-18, by cmkachur [Thu, 18 Jun 2015 15:47:39 +0000] rev 9
Update calibrate RCO method. Measure the TRC oscillator.
Merge with tuneAntenna() method.
2015-06-17, by cmkachur [Wed, 17 Jun 2015 15:04:28 +0000] rev 8
Merge with tuneAntenna() method.
Add tuneAntenna() method to the as3935 class.
2015-06-17, by cmkachur [Wed, 17 Jun 2015 14:32:24 +0000] rev 7
Add tuneAntenna() method to the as3935 class.
add routine to get gain setting; change value for indoor setting
2015-06-16, by ftagius [Tue, 16 Jun 2015 14:21:19 +0000] rev 6
add routine to get gain setting; change value for indoor setting