Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of AS3935 by
Homepage
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);
}
}
