#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);
}