#include #include "train.h" #include "relais.h" #include "taster.h" #include "leds.h" #include "mp3.h" #include "display.h" #include //#include "eeprom.h" //eeprom flash; const unsigned long SZENE_TIMEOUT_TO_SET_TO_DEFAULT_MS = 600000; const unsigned long MAX_DISCO_TIME = 120000; ///---- OLED ---- const int PIN_MONI_SDA = 21 ; //12 const int PIN_MONI_SCL = 22 ; //14 const uint8_t ADDR_MONI = 0x3c; display moni(ADDR_MONI, PIN_MONI_SDA, PIN_MONI_SCL); ///---- MP3 ---- const size_t PIN_MP3_RX = 25 ; //D2; const size_t PIN_MP3_TX = 26 ; //D3; const uint8_t SONG_EINE_INSEL = 1; const uint8_t SONG_WEIHNACHTSBAECKEREI = 3; const uint8_t SONG_WEIHNACHTSBAHN = 5; const uint8_t SONG_OH_TANNEBAUM = 7; const uint8_t SONG_DISCO_MARYSBOYCHILD = 9; const uint8_t SONG_DISCO_LASTCHRISTMAS = 11; const uint8_t SONG_DISCO_DOTHEYKNOWITSCHRISTMAS = 13; const uint8_t SONG_WEIHNACHTSZEIT = 15; const uint8_t SONG_ZEIT_ANGEKOMMEN = 17; const uint8_t SONG_WINTER = 19; const uint8_t SONG_WEIHNACHTSTRAUM = 21; const uint8_t SONG_DISCO_MERRY_CHRISTMAS = 23; //const uint8_t SONG_DISCO_ = ; //const uint8_t SONG_DISCO_ = ; mp3 mp3ply(PIN_MP3_RX, PIN_MP3_TX); ///---- RELAIS ---- enum relais_t {RNONE = 0, RZUGOBEN=1, RZUGUNTEN=2, RWOLKE=4, RSPIEGEL=8}; const size_t PIN_RELAIS_0 = 5; const size_t PIN_RELAIS_1 = 17; const size_t PIN_RELAIS_2 = 16; const size_t PIN_RELAIS_3 = 4; const size_t PIN_IO2 = 9; //relais Wolke relais relais_wolke_schiene(PIN_RELAIS_2); relais relais_spiegel(PIN_RELAIS_3); //relais relais_wolke(PIN_IO2); ///---- Spannungsregler uint32_t spannungsregler_state_flag = 0; const size_t PIN_TRAIN_UNTEN = 32; const size_t PIN_TRAIN_OBEN = 33; const size_t PIN_LICHT = 15; //------------------------ #define PWM_CHANNEL_OBEN 5 #define PWM_CHANNEL_UNTEN 6 #define PWM_CHANNEL_LICHT 7 train zugunten("Zugunten", PIN_TRAIN_UNTEN, PWM_CHANNEL_UNTEN, PIN_RELAIS_1,5); train zugoben("Zugoben", PIN_TRAIN_OBEN, PWM_CHANNEL_OBEN, PIN_RELAIS_0,5 ); train licht("Licht", PIN_LICHT, PWM_CHANNEL_LICHT, -1 ,5); ///--- IOs ---- const size_t PIN_IO0 = 23; //Schiene oben const size_t PIN_IO1 = 10; const size_t PIN_IO3 = 18; ///--- Taster ---- const unsigned long BOUNCING_TIME_MS = 300; const size_t PIN_TASTER_AUSSEN_LICHT = 36; const size_t PIN_TASTER_AUSSEN_MOVE = 39; //----------------- const size_t PIN_TASTER_TRAIN_UNTEN = 35; const size_t PIN_TASTER_TRAIN_OBEN = 13; taster taster_aussen_licht(PIN_TASTER_AUSSEN_LICHT); taster taster_aussen_move(PIN_TASTER_AUSSEN_MOVE); //taster taster_train_unten(PIN_TASTER_TRAIN_UNTEN); //taster taster_train_oben(PIN_TASTER_TRAIN_OBEN); //taster taster_schiene(PIN_IO0); ///--- RGB LEDs --- uint32_t licht_state_flag = 0; const size_t PIN_RGBLEDS = 19; #define NUMRGBLEDS 109 Adafruit_NeoPixel rgb_leds(NUMRGBLEDS, PIN_RGBLEDS, NEO_GRB + NEO_KHZ800); enum led_t {LTANNE=1, LBACK=2, LBAUHOF=4, LTEICH=8, LBURG=16, LSTERNE1=32, LSTERNE2=64, LSTERNBILD1 = 128, LSTERNBILD2=256, LSTERNBILD3=512, LHAEUSER=1024, LSPIEGEL=2048}; /* leds led_back(&rgb_leds, &licht_state_flag, LBACK, 5000,220, 0, 6 ); leds led_burg(&rgb_leds, &licht_state_flag, LBURG, 5000,220, 7, 9); leds led_teich(&rgb_leds, &licht_state_flag, LTEICH, 5000,220, 10, 16 ); leds led_sternbilder1(&rgb_leds, &licht_state_flag, LSTERNBILD1, 5000,220, 17, 17 ); leds led_sterne1(&rgb_leds, &licht_state_flag, LSTERNE1, 5000,220, 18, 18 ); leds led_sternbilder2(&rgb_leds, &licht_state_flag, LSTERNBILD2, 5000,220, 19, 19 ); leds led_sterne2(&rgb_leds, &licht_state_flag, LSTERNE2, 5000,220, 20, 20 ); leds led_sternbilder3(&rgb_leds, &licht_state_flag, LSTERNBILD3, 5000,220, 21, 21 ); leds led_bauhof(&rgb_leds, &licht_state_flag, LBAUHOF, 5000,220, 22, 24); leds led_tanne(&rgb_leds, &licht_state_flag, LTANNE, 5000,220, 25, 25 ); */ leds led_back(&rgb_leds, &licht_state_flag, LBACK, 5000,220, 0, 69 ); leds led_burg(&rgb_leds, &licht_state_flag, LBURG, 5000,220, 70, 76); leds led_teich(&rgb_leds, &licht_state_flag, LTEICH, 5000,220, 77, 88 ); leds led_sternbilder1(&rgb_leds, &licht_state_flag, LSTERNBILD1, 5000,220, 89, 90 ); leds led_sterne1(&rgb_leds, &licht_state_flag, LSTERNE1, 5000,220, 91, 92 ); leds led_sternbilder2(&rgb_leds, &licht_state_flag, LSTERNBILD2, 5000,220, 93, 94 ); leds led_sterne2(&rgb_leds, &licht_state_flag, LSTERNE2, 5000,220, 95, 96 ); leds led_sternbilder3(&rgb_leds, &licht_state_flag, LSTERNBILD3, 5000,220, 97, 98 ); leds led_bauhof(&rgb_leds, &licht_state_flag, LBAUHOF, 5000,220, 99, 106); leds led_tanne(&rgb_leds, &licht_state_flag, LTANNE, 5000,220, 107, 108 );