#include <Adafruit_NeoPixel.h>
#include <Wire.h>
#include "RTClib.h"

#define PIN 25 // Pinnen vi bruker til Neopixlene
#define LYD1 32 // Liten lydbølge 4px
#define LYD2 33 // Mellom lydbølge 6px
#define LYD3 12 // Stor lydbølge 8px
#define MICROFON 35 // AI

#define NUMPIXELS 60 // Antall neopixler på en hel sirkel

#define PIN_IN1 26
#define PIN_IN2 27
#define SW_PIN 14

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel lStrip = Adafruit_NeoPixel(4, LYD1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel mStrip = Adafruit_NeoPixel(6, LYD2, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel sStrip = Adafruit_NeoPixel(8, LYD3, NEO_GRB + NEO_KHZ800);
RTC_DS1307 rtc;

#include "funksjoner.h" // Inkluder den nye header-filen
#include "animasjoner.h" // Inkluderer animasjonene


// Statusbits for animasjon:
byte gjeldende = 0;    // Gjeldende aktivitet, Aktiviteten som er akkurat nå
byte forrige = 0;      // Forrige aktivitet, Aktiviteten vi hadde for 1 millisekund siden

int igjen = 0;

void setup() {
  Serial.begin(115200);
  
  strip.begin();
  strip.show(); // Setter alle pixlene til 'AV'

  if (! rtc.begin()) {
    Serial.println("Kan ikke finne klokken, kanskje tom for batteri??");
    Serial.flush();
    abort();
  }
  if (!rtc.isrunning()) {
    Serial.println("Klokken er feil!");
  }
  delay(5000);

}

void loop() {

  // STILL KLOKKEN! Skriv "tid" for å stille
  if (Serial.available()) {
    String kommando = Serial.readStringUntil('\n');
    if (kommando == "tid") {
      stillKlokke();
    }
  }

  DateTime now = rtc.now();
  
  Serial.print("Klokken er: ");
  Serial.print(now.hour());
  Serial.print(":");
  Serial.print(now.minute());
  Serial.print(":");
  Serial.println(now.second());
  Serial.print("Dag i uken: ");
  Serial.println(now.dayOfTheWeek());
  

//*************** ANIMASJONER ********************

//************************************************
  // Oppdater LEDstrip mellom strip.clear() og strip.show()
  strip.clear();  

  klokke(now.hour(),now.minute(), now.second());

  strip.show();
  delay(100);
}
GND5VSDASCLSQWRTCDS1307+