adventsfenster/include/main.h

115 lines
4.6 KiB
C
Raw Normal View History

2021-11-03 17:55:42 +01:00
#include <Arduino.h>
#include "train.h"
2021-11-03 17:55:42 +01:00
#include "relais.h"
#include "taster.h"
#include "leds.h"
#include "mp3.h"
2021-11-03 17:55:42 +01:00
#include "display.h"
#include <TridentTD_ESP32NVS.h>
2021-11-08 13:18:06 +01:00
//#include "eeprom.h"
2021-11-03 17:55:42 +01:00
//eeprom flash;
2021-12-08 22:58:58 +01:00
const unsigned long SZENE_TIMEOUT_TO_SET_TO_DEFAULT_MS = 600000;
2021-12-09 09:16:32 +01:00
const unsigned long MAX_DISCO_TIME = 120000;
2021-12-08 18:25:51 +01:00
2021-11-03 17:55:42 +01:00
///---- OLED ----
2021-12-08 18:25:51 +01:00
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);
2021-12-08 18:25:51 +01:00
2021-11-03 17:55:42 +01:00
///---- MP3 ----
const size_t PIN_MP3_RX = 25 ; //D2;
const size_t PIN_MP3_TX = 26 ; //D3;
2021-12-08 18:25:51 +01:00
const uint8_t SONG_EINE_INSEL = 1;
2021-12-08 22:58:58 +01:00
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;
2021-12-21 14:27:56 +01:00
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_ = ;
2021-12-08 18:25:51 +01:00
mp3 mp3ply(PIN_MP3_RX, PIN_MP3_TX);
2021-12-08 18:25:51 +01:00
2021-11-03 17:55:42 +01:00
///---- RELAIS ----
2021-12-08 18:25:51 +01:00
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;
2021-12-21 14:27:56 +01:00
const size_t PIN_IO2 = 9; //relais Wolke
2021-12-08 18:25:51 +01:00
relais relais_wolke_schiene(PIN_RELAIS_2);
relais relais_spiegel(PIN_RELAIS_3);
2021-12-21 14:27:56 +01:00
//relais relais_wolke(PIN_IO2);
2021-12-08 18:25:51 +01:00
2021-11-03 17:55:42 +01:00
///---- Spannungsregler
2021-12-08 18:25:51 +01:00
uint32_t spannungsregler_state_flag = 0;
2021-11-03 17:55:42 +01:00
const size_t PIN_TRAIN_UNTEN = 32;
const size_t PIN_TRAIN_OBEN = 33;
2021-12-08 18:25:51 +01:00
const size_t PIN_LICHT = 15; //------------------------
2021-11-03 17:55:42 +01:00
#define PWM_CHANNEL_OBEN 5
#define PWM_CHANNEL_UNTEN 6
2021-12-08 18:25:51 +01:00
#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);
2021-12-08 18:25:51 +01:00
///--- IOs ----
2021-12-21 14:27:56 +01:00
const size_t PIN_IO0 = 23; //Schiene oben
const size_t PIN_IO1 = 10;
2021-12-08 18:25:51 +01:00
const size_t PIN_IO3 = 18;
2021-12-08 18:25:51 +01:00
///--- 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;
2021-11-03 17:55:42 +01:00
taster taster_aussen_licht(PIN_TASTER_AUSSEN_LICHT);
taster taster_aussen_move(PIN_TASTER_AUSSEN_MOVE);
2021-12-21 14:27:56 +01:00
//taster taster_train_unten(PIN_TASTER_TRAIN_UNTEN);
//taster taster_train_oben(PIN_TASTER_TRAIN_OBEN);
//taster taster_schiene(PIN_IO0);
2021-12-08 18:25:51 +01:00
2021-11-03 17:55:42 +01:00
///--- RGB LEDs ---
2021-12-08 18:25:51 +01:00
uint32_t licht_state_flag = 0;
2021-11-03 17:55:42 +01:00
const size_t PIN_RGBLEDS = 19;
2021-12-08 18:25:51 +01:00
#define NUMRGBLEDS 109
Adafruit_NeoPixel rgb_leds(NUMRGBLEDS, PIN_RGBLEDS, NEO_GRB + NEO_KHZ800);
2021-12-08 18:25:51 +01:00
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};
2021-12-09 09:16:32 +01:00
/*
2021-12-08 18:25:51 +01:00
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 );
2021-12-09 09:16:32 +01:00
*/
2021-11-03 17:55:42 +01:00
2021-12-08 18:25:51 +01:00
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 );
2021-12-09 09:16:32 +01:00