#include #include // Toegevoegd: Grove LCD bibliotheek // Library // Grove AS3935 Lightning (Davide Cogliati) // Adafruit DS248x // Grove LCD RGB Backlight (Seeed Studio) // LCD Initialisatie rgb_lcd lcd; const int colorR = 0; const int colorG = 150; const int colorB = 255; // --- Bestaande AS3935 definities --- #define INDOOR 0b00100100 #define OUTDOOR 0b00011100 #define DIRECT_COMMAND 0x96 char REG0X02reset_startup; char REG0X02reset_startup_up; char REG0X02reset_startup_down; char LITERAL_mode = 1; char GRAPH_mode = 0; // Variabele om afstand op te slaan voor LCD int lastDistance = -1; String lastEvent = "Scanning..."; void setup() { Serial.begin(9600); Wire.begin(); // Initialiseer LCD lcd.begin(16, 2); lcd.setRGB(colorR, colorG, colorB); lcd.print("Lightning Det."); lcd.setCursor(0, 1); lcd.print("Initializing..."); delay(2000); lcd.clear(); // Hier komt je bestaande AS3935 setup code (registers schrijven etc.) } void loop() { // VOORBEELD: Hoe je data naar het LCD schrijft zodra er een interrupt is // In je bestaande code lees je waarschijnlijk het IRQ register uit. // Stel dat je een bliksem detecteert (pseudo-code logica gebaseerd op AS3935): /* byte irqSource = readRegister(0x03) & 0x0F; if (irqSource == 0x08) { // 0x08 is Lightning detect int distance = readRegister(0x07) & 0x3F; updateLCD("LIGHTNING!", distance); } else if (irqSource == 0x04) { updateLCD("Disturber", -1); } */ // Demo update voor LCD (verwijder dit in je definitieve code) lcd.setCursor(0, 0); lcd.print("Status: Active"); lcd.setCursor(0, 1); lcd.print("Dist: -- km"); delay(1000); } // Hulpscherm functie voor het LCD void updateLCD(String event, int dist) { lcd.clear(); lcd.setCursor(0, 0); lcd.print(event); if (dist != -1) { lcd.setCursor(0, 1); lcd.print("Dist: "); lcd.print(dist); lcd.print(" km"); // Verander kleur naar ROOD bij bliksem lcd.setRGB(255, 0, 0); } else { // Terug naar BLAUW bij ruis/disturbers lcd.setRGB(0, 150, 255); } }