new songs added
This commit is contained in:
parent
b4a5f759e0
commit
a3aa425379
1 changed files with 64 additions and 72 deletions
136
src/main.cpp
136
src/main.cpp
|
@ -32,20 +32,23 @@ void setup() {
|
|||
|
||||
taster_aussen_licht.begin();
|
||||
taster_aussen_move.begin();
|
||||
taster_train_unten.begin();
|
||||
taster_train_oben.begin();
|
||||
taster_schiene.begin();
|
||||
//taster_train_unten.begin();
|
||||
//taster_train_oben.begin();
|
||||
//taster_schiene.begin();
|
||||
|
||||
relais_wolke_schiene.begin();
|
||||
relais_spiegel.begin();
|
||||
//relais_wolke.begin();
|
||||
|
||||
zugoben.begin();
|
||||
zugunten.begin();
|
||||
licht.begin();
|
||||
NVS.begin();
|
||||
licht_all_count = NVS.getInt("licht");
|
||||
move_all_count = NVS.getInt("move");
|
||||
disco_all_count = NVS.getInt("disco");
|
||||
licht_all_count = NVS.getInt("licht_cnt"); //1985
|
||||
delay(500);
|
||||
move_all_count = NVS.getInt("move_cnt"); //978
|
||||
delay(500);
|
||||
disco_all_count = NVS.getInt("disco_cnt"); //100
|
||||
|
||||
moni.init();
|
||||
moni.setBrigthness(100);
|
||||
|
@ -67,6 +70,7 @@ void setup() {
|
|||
//blau led_back.setHS(32000,200);
|
||||
led_back.setHS(9000,180);
|
||||
led_teich.setHS(40000,255);
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
@ -169,21 +173,12 @@ void szene_oh_tannebaum()
|
|||
mp3_isused = true;
|
||||
tanne_state = TA_MIN_PLAYING;
|
||||
Serial.printf("All lights are ready for Oh Tannebaum\n");
|
||||
mp3ply.play_vol(SONG_OH_TANNEBAUM, TANNENBAUM_VOL);
|
||||
//mp3ply.play_vol(SONG_OH_TANNEBAUM, TANNENBAUM_VOL);
|
||||
mp3ply.play_vol(SONG_WINTER, TANNENBAUM_VOL);
|
||||
szene_time_ms = msecs;
|
||||
}
|
||||
}
|
||||
break;
|
||||
/*
|
||||
case TA_START_PLAYING:
|
||||
szene_time_ms = msecs;
|
||||
if(mp3ply.is_playing() > 0)
|
||||
{
|
||||
tanne_state = TA_MIN_PLAYING;
|
||||
Serial.printf("Oh Tannebaum is playing\n");
|
||||
}
|
||||
break;
|
||||
*/
|
||||
case TA_MIN_PLAYING:
|
||||
taster_aussen_licht.reset();
|
||||
if(msecs - szene_time_ms > 1000)
|
||||
|
@ -320,9 +315,9 @@ void szene_tag_dorf()
|
|||
|
||||
unsigned int zugunten_error = 0;
|
||||
const unsigned int ZUGUNTEN_MAX_ERROR_COUNT = 5;
|
||||
const unsigned long ZUGUNTEN_DRIVES_TO_STATION_MS = 5000;
|
||||
const unsigned long ZUGUNTEN_DRIVES_TO_STATION_MS = 4300;
|
||||
const unsigned long ZUGUNTEN_STOPPED_AT_STATION_MS = 5000;
|
||||
const unsigned long ZUGUNTEN_MAX_TIME_TO_HOME_MS = 15000; ///timeout time
|
||||
const unsigned long ZUGUNTEN_MAX_TIME_TO_HOME_MS = 35000;///21000; ///timeout time
|
||||
typedef enum {ZU_INIT = 0, ZU_AT_HOME , ZU_DRIVES_TO_STATION, ZU_STOPPES_AT_STATION, ZU_STOPPED_AT_STATION, ZU_DRIVES_HOME, ZU_STOPPES_AT_HOME, ZU_STOPPED_PLAYING, ZU_DONE} szene_zugunten_t;
|
||||
szene_zugunten_t zugunten_state = ZU_INIT;
|
||||
bool mp3_zugunten = false;
|
||||
|
@ -333,7 +328,7 @@ void move_zugunten()
|
|||
{
|
||||
case ZU_INIT:
|
||||
Serial.printf("Zugunten fährt\n");
|
||||
taster_train_unten.reset();
|
||||
//taster_train_unten.reset();
|
||||
if (zugunten_error > ZUGUNTEN_MAX_ERROR_COUNT)
|
||||
{
|
||||
zugunten_state = ZU_DONE;
|
||||
|
@ -345,7 +340,8 @@ void move_zugunten()
|
|||
if(mp3_isused == false)
|
||||
{
|
||||
Serial.printf("Playing Eine Insel\n");
|
||||
mp3ply.play_vol(SONG_EINE_INSEL, 20);
|
||||
//mp3ply.play_vol(SONG_EINE_INSEL, 20);
|
||||
mp3ply.play_vol(SONG_WEIHNACHTSZEIT, 20);
|
||||
mp3_zugunten = true;
|
||||
mp3_isused = true;
|
||||
}
|
||||
|
@ -356,7 +352,8 @@ void move_zugunten()
|
|||
case ZU_AT_HOME:
|
||||
szene_time_ms = msecs;
|
||||
if(zugunten.fade_on() == false)
|
||||
zugunten_state = ZU_DRIVES_TO_STATION;
|
||||
//zugunten_state = ZU_DRIVES_TO_STATION;
|
||||
zugunten_state = ZU_DRIVES_HOME;
|
||||
break;
|
||||
case ZU_DRIVES_TO_STATION:
|
||||
if(msecs - szene_time_ms > ZUGUNTEN_DRIVES_TO_STATION_MS)
|
||||
|
@ -378,13 +375,13 @@ void move_zugunten()
|
|||
}
|
||||
break;
|
||||
case ZU_DRIVES_HOME:
|
||||
if(zugunten.fade_on() == false)
|
||||
if(taster_train_unten.pressed() == true || (msecs-szene_time_ms) > ZUGUNTEN_MAX_TIME_TO_HOME_MS)
|
||||
//if(zugunten.fade_on() == false)
|
||||
if( (msecs-szene_time_ms) > ZUGUNTEN_MAX_TIME_TO_HOME_MS ) //taster_train_unten.pressed() == true ||)
|
||||
{
|
||||
if( (msecs-szene_time_ms) > ZUGUNTEN_MAX_TIME_TO_HOME_MS)
|
||||
{
|
||||
Serial.printf("Train unten runs ins timeout while driving back at Home\n");
|
||||
zugunten_error++;
|
||||
// zugunten_error++;
|
||||
}
|
||||
else{
|
||||
Serial.printf("Train unten back at Home pressed\n");
|
||||
|
@ -422,11 +419,11 @@ void move_zugunten()
|
|||
bool mp3_zugoben = false;
|
||||
unsigned int zugoben_error = 0;
|
||||
const unsigned int ZUGOBEN_MAX_ERROR_COUNT = 5;
|
||||
const unsigned long ZUGOBEN_DRIVES_TO_BRIDGE_MS = 2000;
|
||||
const unsigned long ZUGOBEN_DRIVES_ON_BRIDGE_MS = 2000;
|
||||
const unsigned long ZUGOBEN_MAX_TIME_TO_HOME_MS = 10000; ///timeout time
|
||||
const unsigned long ZUGOBEN_DRIVES_TO_BRIDGE_MS = 1000;
|
||||
const unsigned long ZUGOBEN_DRIVES_ON_BRIDGE_MS = 5500;
|
||||
const unsigned long ZUGOBEN_MAX_TIME_TO_HOME_MS = 3*11550; ///timeout time
|
||||
const uint8_t ZUGOBEN_SPEED_ON_BRIDGE = 80;
|
||||
typedef enum {ZO_INIT = 0, ZO_AT_HOME, ZO_DRIVES_TO_BRIDGE, ZO_DRIVES_SLOWDOWN_ON_BRIDGE, ZO_DRIVES_ON_BRIDGE, ZO_DRIVES_HOME, ZO_STOPPES_AT_HOME,ZO_STOPPED_PLAYING,ZO_DONE} szene_zugoben_t;
|
||||
typedef enum {ZO_INIT = 0, ZO_AT_HOME, ZO_DRIVES_HOME, ZO_STOPPES_AT_HOME,ZO_STOPPED_PLAYING,ZO_DONE} szene_zugoben_t;
|
||||
szene_zugoben_t zugoben_state = ZO_INIT;
|
||||
void move_zugoben()
|
||||
{
|
||||
|
@ -435,7 +432,7 @@ void move_zugoben()
|
|||
{
|
||||
case ZO_INIT:
|
||||
Serial.printf("Zugoben fährt\n");
|
||||
taster_train_oben.reset();
|
||||
//taster_train_oben.reset();
|
||||
if (zugoben_error > ZUGOBEN_MAX_ERROR_COUNT)
|
||||
zugoben_state = ZO_STOPPES_AT_HOME;
|
||||
else
|
||||
|
@ -443,7 +440,8 @@ void move_zugoben()
|
|||
if(mp3_isused == false)
|
||||
{
|
||||
Serial.printf("Playing Weihnachtsbahn\n");
|
||||
mp3ply.play_vol(SONG_WEIHNACHTSBAHN, 20);
|
||||
//mp3ply.play_vol(SONG_WEIHNACHTSBAHN, 20);
|
||||
mp3ply.play_vol(SONG_ZEIT_ANGEKOMMEN, 20);
|
||||
mp3_zugoben = true;
|
||||
mp3_isused = true;
|
||||
}
|
||||
|
@ -455,32 +453,16 @@ void move_zugoben()
|
|||
case ZO_AT_HOME:
|
||||
szene_time_ms = msecs;
|
||||
if(zugoben.fade_on() == false)
|
||||
zugoben_state = ZO_DRIVES_TO_BRIDGE;
|
||||
break;
|
||||
case ZO_DRIVES_TO_BRIDGE:
|
||||
if(msecs - szene_time_ms > ZUGOBEN_DRIVES_TO_BRIDGE_MS)
|
||||
zugoben_state = ZO_DRIVES_SLOWDOWN_ON_BRIDGE;
|
||||
break;
|
||||
case ZO_DRIVES_SLOWDOWN_ON_BRIDGE:
|
||||
szene_time_ms = msecs;
|
||||
if(zugoben.fade_down_to(ZUGOBEN_SPEED_ON_BRIDGE) == false)
|
||||
zugoben_state = ZO_DRIVES_ON_BRIDGE;
|
||||
break;
|
||||
case ZO_DRIVES_ON_BRIDGE:
|
||||
if(msecs - szene_time_ms > ZUGOBEN_DRIVES_ON_BRIDGE_MS)
|
||||
{
|
||||
zugoben_state = ZO_DRIVES_HOME;
|
||||
szene_time_ms = msecs;
|
||||
}
|
||||
break;
|
||||
case ZO_DRIVES_HOME:
|
||||
if(zugoben.fade_on() == false)
|
||||
if(taster_train_oben.pressed() == true || (msecs-szene_time_ms) > ZUGOBEN_MAX_TIME_TO_HOME_MS)
|
||||
if( (msecs-szene_time_ms) > ZUGOBEN_MAX_TIME_TO_HOME_MS ) //||taster_train_oben.pressed() == true )
|
||||
{
|
||||
if((msecs-szene_time_ms) > ZUGOBEN_MAX_TIME_TO_HOME_MS)
|
||||
{
|
||||
Serial.printf("Train oben runs in time out while driving back at home\n");
|
||||
zugoben_error++;
|
||||
// zugoben_error++;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -497,7 +479,7 @@ void move_zugoben()
|
|||
case ZO_STOPPED_PLAYING:
|
||||
if(mp3_zugoben == true)
|
||||
{
|
||||
if(mp3ply.fade_out() == false ) // && mp3ply.is_playing() == 0)
|
||||
if(mp3ply.fade_out() == false )
|
||||
{
|
||||
zugoben_state = ZO_DONE;
|
||||
mp3_isused = false;
|
||||
|
@ -518,7 +500,7 @@ void move_zugoben()
|
|||
bool mp3_soben = false;
|
||||
unsigned int soben_error = 0;
|
||||
const unsigned int SOBEN_MAX_ERROR_COUNT = 5;
|
||||
const unsigned long SOBEN_MAX_DRIVES_TIME_MS = 30000; ///timeout time
|
||||
const unsigned long SOBEN_MAX_DRIVES_TIME_MS = 30400; ///timeout time
|
||||
typedef enum {SO_INIT = 0, SO_AT_HOME, SO_DRIVES_HOME, SO_STOPPES_AT_HOME,SO_STOPPED_PLAYING, SO_DONE} szene_soben_t;
|
||||
szene_soben_t soben_state = SO_INIT;
|
||||
void move_schiene_oben()
|
||||
|
@ -528,7 +510,7 @@ void move_schiene_oben()
|
|||
{
|
||||
case SO_INIT:
|
||||
Serial.printf("Schiene oben fährt\n");
|
||||
taster_schiene.reset();
|
||||
//taster_schiene.reset();
|
||||
if(soben_error > SOBEN_MAX_ERROR_COUNT)
|
||||
soben_state = SO_STOPPES_AT_HOME;
|
||||
else
|
||||
|
@ -536,7 +518,10 @@ void move_schiene_oben()
|
|||
if(mp3_isused == false)
|
||||
{
|
||||
Serial.printf("Playing Weihnachtsbäckerei\n");
|
||||
mp3ply.play_vol(SONG_WEIHNACHTSBAECKEREI, 20);
|
||||
if( random(0, 2) == 0 )
|
||||
mp3ply.play_vol(SONG_WEIHNACHTSBAECKEREI, 23);
|
||||
else
|
||||
mp3ply.play_vol(SONG_WEIHNACHTSTRAUM, 23);
|
||||
mp3_soben = true;
|
||||
mp3_isused = true;
|
||||
}
|
||||
|
@ -548,14 +533,15 @@ void move_schiene_oben()
|
|||
case SO_AT_HOME:
|
||||
szene_time_ms = millis();
|
||||
relais_wolke_schiene.on();
|
||||
//relais_wolke.on();
|
||||
soben_state = SO_DRIVES_HOME;
|
||||
break;
|
||||
case SO_DRIVES_HOME:
|
||||
if(taster_schiene.pressed() == true || (msecs-szene_time_ms) > SOBEN_MAX_DRIVES_TIME_MS)
|
||||
if( (msecs-szene_time_ms) > SOBEN_MAX_DRIVES_TIME_MS) //||taster_schiene.pressed() == true )
|
||||
{
|
||||
if((msecs-szene_time_ms) > SOBEN_MAX_DRIVES_TIME_MS)
|
||||
{
|
||||
soben_error++;
|
||||
// soben_error++;
|
||||
Serial.printf("Schiene oben timeout while driving home.\n");
|
||||
}
|
||||
else
|
||||
|
@ -568,6 +554,7 @@ void move_schiene_oben()
|
|||
break;
|
||||
case SO_STOPPES_AT_HOME:
|
||||
relais_wolke_schiene.off();
|
||||
//relais_wolke.off();
|
||||
soben_state = SO_STOPPED_PLAYING;
|
||||
break;
|
||||
case SO_STOPPED_PLAYING:
|
||||
|
@ -597,21 +584,24 @@ void disco()
|
|||
disco_all_count++;
|
||||
uint32_t stored_licht_state_flag = licht_state_flag;
|
||||
|
||||
uint8_t randSongNumber = random(0, 3);
|
||||
uint8_t randSongNumber = random(0, 4);
|
||||
Serial.printf("Disco! Playing Song %d\n", randSongNumber);
|
||||
switch(randSongNumber)
|
||||
{
|
||||
case 0:
|
||||
mp3ply.play_vol(SONG_DISCO_LASTCHRISTMAS,20);
|
||||
mp3ply.play_vol(SONG_DISCO_LASTCHRISTMAS,25);
|
||||
break;
|
||||
case 1:
|
||||
mp3ply.play_vol(SONG_DISCO_DOTHEYKNOWITSCHRISTMAS,20);
|
||||
mp3ply.play_vol(SONG_DISCO_DOTHEYKNOWITSCHRISTMAS,25);
|
||||
break;
|
||||
case 2:
|
||||
mp3ply.play_vol(SONG_DISCO_MARYSBOYCHILD,20);
|
||||
mp3ply.play_vol(SONG_DISCO_MARYSBOYCHILD,25);
|
||||
break;
|
||||
case 3:
|
||||
mp3ply.play_vol(SONG_DISCO_MERRY_CHRISTMAS,25);
|
||||
break;
|
||||
default:
|
||||
mp3ply.play_vol(SONG_DISCO_LASTCHRISTMAS,20);
|
||||
mp3ply.play_vol(SONG_DISCO_LASTCHRISTMAS,25);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -695,7 +685,7 @@ void disco_licht()
|
|||
led_back.theaterChaseRainbow();
|
||||
|
||||
licht.fade_off();
|
||||
relais_spiegel.off();
|
||||
relais_spiegel.on();
|
||||
rgb_leds.show();
|
||||
}
|
||||
|
||||
|
@ -732,27 +722,29 @@ void taster_abfrage()
|
|||
}
|
||||
}
|
||||
|
||||
uint8_t nvs_value = 0;
|
||||
void updateNVS()
|
||||
{
|
||||
static uint8_t value = 0;
|
||||
if(millis() - last_updated_NVS > 1000)
|
||||
if(millis() - last_updated_NVS > 1000)
|
||||
{
|
||||
last_updated_NVS = millis();
|
||||
switch(value)
|
||||
switch(nvs_value)
|
||||
{
|
||||
case 0:
|
||||
NVS.setInt("licht_cnt", licht_all_count);
|
||||
break;
|
||||
case 1:
|
||||
NVS.setInt("licht", licht_all_count);
|
||||
NVS.setInt("move_cnt", move_all_count);
|
||||
break;
|
||||
case 2:
|
||||
NVS.setInt("move", move_all_count);
|
||||
NVS.setInt("disco_cnt", disco_all_count);
|
||||
break;
|
||||
case 3:
|
||||
NVS.setInt("disco",disco_all_count);
|
||||
break;
|
||||
default:
|
||||
value = 0;
|
||||
}
|
||||
value++;
|
||||
if(nvs_value == 2)
|
||||
nvs_value = 0;
|
||||
else
|
||||
nvs_value++;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue