This is a working demo of the AS3935 Lightning detector using the NUCLEO-L013K6.

Dependencies:   mbed

Committer:
madelectroneng
Date:
Tue Jun 20 08:36:25 2017 +0000
Revision:
0:75defe5eed80
Working demo on nucleo-l031k6

Who changed what in which revision?

UserRevisionLine numberNew contents of line
madelectroneng 0:75defe5eed80 1 #include "mbed.h"
madelectroneng 0:75defe5eed80 2 #include "AS3935.h"
madelectroneng 0:75defe5eed80 3
madelectroneng 0:75defe5eed80 4 AS3935 ld(D11, D12, D13, D10, "ld", 2000000); // MOSI, MISO, SCK, CS, SPI bus freq (hz)
madelectroneng 0:75defe5eed80 5 InterruptIn IntLightning(D2); //IRQ AS3935
madelectroneng 0:75defe5eed80 6 Serial pc(USBTX, USBRX);
madelectroneng 0:75defe5eed80 7
madelectroneng 0:75defe5eed80 8 void DetectLightning()
madelectroneng 0:75defe5eed80 9 {
madelectroneng 0:75defe5eed80 10 char OriginInt;
madelectroneng 0:75defe5eed80 11 wait_ms(2);
madelectroneng 0:75defe5eed80 12 OriginInt = ld.interruptSource();
madelectroneng 0:75defe5eed80 13 if (OriginInt == 1) { //
madelectroneng 0:75defe5eed80 14 pc.printf(" Noise level too high\r\n");
madelectroneng 0:75defe5eed80 15 }
madelectroneng 0:75defe5eed80 16 if (OriginInt == 4) { //
madelectroneng 0:75defe5eed80 17 pc.printf(" Disturber\r\n");
madelectroneng 0:75defe5eed80 18 }
madelectroneng 0:75defe5eed80 19 if (OriginInt == 8) { // detection
madelectroneng 0:75defe5eed80 20 // pc.printf(" Lightning detection\r\n");
madelectroneng 0:75defe5eed80 21 pc.printf("Lightning detection, distance=%dkm\r\n", ld.lightningDistanceKm());
madelectroneng 0:75defe5eed80 22 pc.printf("Energy %d\r\n", ld.getEnergy());
madelectroneng 0:75defe5eed80 23 ld.clearStats();
madelectroneng 0:75defe5eed80 24
madelectroneng 0:75defe5eed80 25 }
madelectroneng 0:75defe5eed80 26 }
madelectroneng 0:75defe5eed80 27
madelectroneng 0:75defe5eed80 28
madelectroneng 0:75defe5eed80 29 int main() {
madelectroneng 0:75defe5eed80 30 pc.baud(9600);
madelectroneng 0:75defe5eed80 31 pc.printf("\r\nstart lightning detector\r\n");
madelectroneng 0:75defe5eed80 32
madelectroneng 0:75defe5eed80 33 //initialisations
madelectroneng 0:75defe5eed80 34 // ld.reset();
madelectroneng 0:75defe5eed80 35 ld.setTuneCap(1); // 500kHz
madelectroneng 0:75defe5eed80 36 // ld.powerUp();
madelectroneng 0:75defe5eed80 37 ld.setIndoors();
madelectroneng 0:75defe5eed80 38 ld.setMinimumLightnings(1);
madelectroneng 0:75defe5eed80 39 //ld.setSpikeRejection(2);
madelectroneng 0:75defe5eed80 40 ld.setNoiseFloor(2);
madelectroneng 0:75defe5eed80 41 ld.disableDisturbers();
madelectroneng 0:75defe5eed80 42 // ld.enableDisturbers();
madelectroneng 0:75defe5eed80 43 ld.setWatchdogThreshold(2);
madelectroneng 0:75defe5eed80 44 wait_ms(10);
madelectroneng 0:75defe5eed80 45 IntLightning.rise(&DetectLightning);
madelectroneng 0:75defe5eed80 46 int MinBlysk = ld.getMinimumLightnings();
madelectroneng 0:75defe5eed80 47 int Noise = ld.getNoiseFloor();
madelectroneng 0:75defe5eed80 48 int TuneCap = ld.getTuneCap();
madelectroneng 0:75defe5eed80 49 int SpikeRej = ld.getSpikeRejection();
madelectroneng 0:75defe5eed80 50 int WatchDog = ld.getWatchdogThreshold();
madelectroneng 0:75defe5eed80 51
madelectroneng 0:75defe5eed80 52 pc.printf(" Min wylad: %i", MinBlysk);
madelectroneng 0:75defe5eed80 53 pc.printf("\r\n");
madelectroneng 0:75defe5eed80 54 pc.printf(" Noise: %i", Noise);
madelectroneng 0:75defe5eed80 55 pc.printf("\r\n");
madelectroneng 0:75defe5eed80 56 pc.printf(" Tune CAP: %i", TuneCap);
madelectroneng 0:75defe5eed80 57 pc.printf("\r\n");
madelectroneng 0:75defe5eed80 58 pc.printf(" Spike rej: %i", SpikeRej);
madelectroneng 0:75defe5eed80 59 pc.printf("\r\n");
madelectroneng 0:75defe5eed80 60 pc.printf(" Watchdog: %i", WatchDog);
madelectroneng 0:75defe5eed80 61 pc.printf("\r\n");
madelectroneng 0:75defe5eed80 62 while(1) {
madelectroneng 0:75defe5eed80 63 // led1 = ! led1;
madelectroneng 0:75defe5eed80 64 wait(0.2);
madelectroneng 0:75defe5eed80 65 }
madelectroneng 0:75defe5eed80 66
madelectroneng 0:75defe5eed80 67
madelectroneng 0:75defe5eed80 68 }