hi Leute,
weiß einer von euch warum ich im "Loop" nicht aus der Schleife komme. Den anderen Code müsst ihr nicht beachten, da ich erst mit dem Projekt angefangen habe und vor dem Problem stehe.
Die While schleife soll eine Start Sequenz für eine gewisse zeit darstellen. Dannach soll der bool Startup = LOW und dann die Funk. BlinkSystem();
#include <Arduino.h>
//PINS
//Trigger = 0; Echo = 1; LED_Red 2; LED_Green = 3; LED_Blue = 4; Buzzer = 5; Relay = 6;
const byte Pin[7] = {2,3,4,5,6,7,8};
//LED
enum Phase_Blue {ON1, OFF1, ON2, OFF2, ON3, OFF3, ON4, OFF4};
const int d[8] = {100, 20, 40, 100, 50, 300, 800, 1002};
Phase_Blue Phase_Blue;
bool state;
unsigned long millisMem_System;
unsigned long millisMem_Startup;
unsigned long millisMem_Serial = millis();
const int delayStartUp = 3000;
bool Startup = false;
//ULTRASCHALL
long time = 0;
long distance = 0;
void blinkSystem(){
switch (Phase_Blue) {
case ON1:
if(state = LOW){
if(millis() - millisMem_System >= d[0]){
state = HIGH;millisMem_System = millis();digitalWrite(Pin[4], state);Serial.print("State = 1");
break;
}
}
case OFF1:
if(millis() - millisMem_System >= d[1]){
state = HIGH; millisMem_System = millis();digitalWrite(Pin[4], state);Serial.print("State = 2");
break;
}
case ON2:
if(millis() - millisMem_System >= d[2]){
state = HIGH;millisMem_System = millis();digitalWrite(Pin[4], state);Serial.print("State = 3");
break;
}
case OFF2:
if(millis() - millisMem_System >= d[3]){
state = LOW; millisMem_System = millis();digitalWrite(Pin[4], state);Serial.print("State = 3");
break;
}
case ON3:
if(millis() - millisMem_System >= d[4]){
state = HIGH;millisMem_System = millis();digitalWrite(Pin[4], state);Serial.print("State = 4");
break;
}
case OFF3:
if(millis() - millisMem_System >= d[5]){
state = LOW;millisMem_System = millis();digitalWrite(Pin[4], state);Serial.print("State = 5");
break;
}
case ON4:
if(millis() - millisMem_System >= d[6]){
state = HIGH;millisMem_System = millis();digitalWrite(Pin[4], state);Serial.print("State = 6");
break;
}
case OFF4:
if(millis() - millisMem_System >= d[7]){
state = LOW;millisMem_System = millis();digitalWrite(Pin[4], state);Serial.print("State = 7");
break;
}
}
}
void setup() {
Serial.begin(9600);
millisMem_System = millis();
millisMem_Startup = millis();
Startup = LOW;
pinMode(Pin[0], OUTPUT);
pinMode(Pin[1], INPUT);
pinMode(Pin[2], OUTPUT);
pinMode(Pin[3], OUTPUT);
pinMode(Pin[4], OUTPUT);
pinMode(Pin[5], OUTPUT);
pinMode(Pin[6], OUTPUT);
}
void loop() {
if(Startup = HIGH){
while (Startup = HIGH) {
if(millis() - millisMem_Startup <= delayStartUp){
Startup = HIGH;
digitalWrite(Pin[4], HIGH);
digitalWrite(Pin[3], HIGH);
digitalWrite(Pin[2], HIGH);
Serial.println("Startup");
}else{
Startup = LOW;
digitalWrite(Pin[4], LOW);
digitalWrite(Pin[3], LOW);
digitalWrite(Pin[2], LOW);
Serial.println("Startup END");
//Er bleibt Startup END "Serial Monitor"
break;
delay(50);
}
}
}else{
Startup = LOW;
//blinkSystem();
}
}