Zeitzünder für Feuerwerk

Max_Beginner:
Guten Abend,

am TV lief nix, da dachte ich mir ich kann ja mal deinen Sketch aufhübschen. :slight_smile:

Du hast ja einen verstellbaren Countdown vorgesehen, nur wie möchtest du den Wert
ohne LCD oder 7-Segmentanzeigen darstellen?

Möchtest du nur eine Zündung nach einer bestimmten Zeit auslösen?

Wenn erwünscht setze ich mich morgen nochmal an den Sketch, für heute ist erst mal "Feierabend".

//NICHT VOLLSTAENDIGER CODE!!!

//Feuerwerk ist kein SPIELZEUG !!!
//zur Visualisierung der Countdownzeit fehlt ein LCD
//Eingaenge
const uint8_t s_save = 2; //Sicherheitsschalter
const uint8_t s_start = 3; //Starttaster
const uint8_t s_stopp = 4; //Stopptaster
const uint8_t s_plus = 5; //countdown +
const uint8_t s_minus = 6; //countdown -
const uint8_t s_kreis = 7; //zuendungskreis auswaehlen
//Ausgaenge
const uint8_t statusled = 8;
const uint8_t scharfled = 9;
const uint8_t zuendung[2]={10,11};
const uint8_t kreisled[2]={12,13};
/----------------Variablen----------------/
bool save = 0;
bool start = 0;
bool stopp = 0;
bool plus = 0;
bool minus = 0;
bool kreis = 0;
uint16_t zeit1 = 10000; //10s bis Kreis 1 zuendet
uint16_t zeit2 = 10000; //10s bis Kreis 2 zuendet
const uint16_t m_1s = 1000; //1s
unsigned long j_ms = 0; //Zeitpunkt "jetzt"
unsigned long l_ms = 0; //Zeitpunkt "zuletzt"

void setup()
{
   //pulldown Widerstaende verwenden 10kOhm
   pinMode(s_save, INPUT);
   pinMode(s_start, INPUT);
   pinMode(s_stopp, INPUT);
   pinMode(s_plus, INPUT);
   pinMode(statusled, OUTPUT);
   pinMode(scharfled, OUTPUT);
   for (uint8_t i; i < 2; i++) //zuendung als OUTPUT & LOW setzen
   {
   pinMode(zuendung[i], OUTPUT);
   digitalWrite(zuendung[i], LOW);
   }
   for (uint8_t x; x < 2; x++) //kreisled als OUTPUT festlegen
   {
   pinMode(kreisled[x], OUTPUT);
   }
   digitalWrite(statusled, HIGH);
}
void loop()
{
   //Eingaenge einlesen (erspart Platz)
   save = digitalRead(s_save);
   start = digitalRead(s_start);
   stopp = digitalRead(s_stopp);
   plus = digitalRead(s_plus);
   minus = digitalRead(s_minus);
   kreis = digitalRead(s_kreis);

if ( == 0)
   {
   
   }
   else
   {
       l_ms = millis();
   }

j_ms = millis();
   if (j_ms - l_ms >= m_5s)
   {
     
   }
}

Danke ich habe nur echt keine Ahnung was das alles bedeutet und wie es funktioniert.

Weil ich kein Display habe muss man mitzählen wie oft man gedrückt hat.

Eine Zündung reicht mir. Ich habe auch nur einen Relais.