Go Down

Topic: Funktionen (Read 83 times) previous topic - next topic

dominik1313

Hi leute,
Ich Sitze gerade an einem Test Sketch für ein anderes Projekt.
Seit kurzem arbeite ich viel mit eigenen Funktionen. Der Sketch soll in bestimmten zeitabständen [PhaseSystem] blinken. Ich setze [Zeile 26] "setSystemLED();". Er spuckt mir aber folgenden Fehler aus, "`setSystemLED` was not declared in this scope"... was für mich soviel bedeutet das die "Funktion nicht an der richtigen stelle ist".  Aber wie / wo soll ich bitte die Funktion unterbringen?
Danke für die Hilfe im Voraus..

Code: [Select]
#include <Arduino.h>


enum PhaseSystem {OFF1, ON1, OFF2, ON2, OFF3, ON3, OFF4, ON4}; //Verschienden Phasen für die Blaue / System LED
int d[8] = {100, 200, 70, 100, 20, 50, 150, 200}; //verschiedenen Delays
unsigned long millisMem_System = millis();
unsigned long millisMem_StartUp;
PhaseSystem phase;
boolean state;


const byte LED_ROT = 5;
const byte LED_GRUEN = 6;
const byte LED_BLAU = 13; //System LED




void setup() {
  state = LOW;
  millisMem_StartUp = millis();
}

void loop() {
  if(millis() - millisMem_StartUp >= 6000){
      setSystemLED(); // Warum?
  }
}

void setSystemLED(){
  switch (phase) {
    case OFF1:
    if(state = LOW){
      if(millis() - millisMem_System >= d[0]){
        state = LOW;digitalWrite(LED_BLAU, state);  millisMem_System = millis();
      }
    }
    break;
    case ON1:
    if(millis() - millisMem_System >= d[1]){
      state = HIGH;digitalWrite(LED_BLAU, state);millisMem_System = millis();
    }
    break;
    case OFF2:
    if(millis() - millisMem_System >= d[2]){
      state = LOW;digitalWrite(LED_BLAU, state);millisMem_System = millis();
    }
    break;
    case ON2:
    if(millis() - millisMem_System >= d[3]){
      state = HIGH;digitalWrite(LED_BLAU, state);millisMem_System = millis();
    }
    break;
    case OFF3:
    if(millis() - millisMem_System >= d[4]){
      state = LOW;digitalWrite(LED_BLAU, state);millisMem_System = millis();
    }
    break;
    case ON3:
    if(millis() - millisMem_System >= d[5]){
      state = HIGH;digitalWrite(LED_BLAU, state);millisMem_System = millis();
    }
    break;
    case OFF4:
    if(millis() - millisMem_System >= d[6]){
      state = LOW;digitalWrite(LED_BLAU, state);millisMem_System = millis();
    }
    break;
    case ON4:
    if(millis() - millisMem_System >= d[7]){
      state = LOW;digitalWrite(LED_BLAU, state);millisMem_System = millis();
    }
    break;
  }
}

Tommy56

Schreibe mal vor setup:
Code: [Select]
void setSystemLED();

Die IDE schaft es nicht immer die Zeilen richtig anzulegen.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

dominik1313

Danke für die schnelle Hilfe.

Go Up