Arduino Uno, Programm fehler?

Hallo Leute,

Wollte eine Blaulicht Steuerung auf einen Arduino Uno programmieren...

Dummerweise kotzt mir die IDE nur Fehler aus und ich find ihn einfach nicht :blush:

Es gibt verschiedene Modi die sich per Taster durchschalten lassen (interrupt)

  1. Ja mir ist bewusst das vieles Unnötig kompliziert gemacht ist und ich mehr Schleifen einbauen könnte aber ich wollte das auch jemand der davon keine Ahnung hat versteht was da passiert
  2. Ja ich weis das meine verwendeten Pins nicht PWM fähig sind, ist jedoch kein Problem zu ändern habs auch mit pins 6,9,10,11 probiert aber gleiches Problem wie oben^^

Fehlermeldungen:

Blaulichtsteuerung:175: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:176: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:177: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:178: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:179: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:180: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:181: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:182: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:183: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:184: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:185: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:186: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:187: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:188: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:189: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:190: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:191: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:192: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:193: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:194: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:195: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:196: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:197: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:198: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:199: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:200: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:201: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:202: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:203: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:204: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:206: error: expected unqualified-id before 'for'
Blaulichtsteuerung:206: error: expected constructor, destructor, or type conversion before '<=' token
Blaulichtsteuerung:206: error: expected constructor, destructor, or type conversion before '+=' token
Blaulichtsteuerung:214: error: expected unqualified-id before 'for'
Blaulichtsteuerung:214: error: expected constructor, destructor, or type conversion before '>=' token
Blaulichtsteuerung:214: error: expected constructor, destructor, or type conversion before '-=' token
Blaulichtsteuerung:222: error: expected unqualified-id before 'for'
Blaulichtsteuerung:222: error: expected constructor, destructor, or type conversion before '<=' token
Blaulichtsteuerung:222: error: expected constructor, destructor, or type conversion before '+=' token
Blaulichtsteuerung:230: error: expected unqualified-id before 'for'
Blaulichtsteuerung:230: error: expected constructor, destructor, or type conversion before '>=' token
Blaulichtsteuerung:230: error: expected constructor, destructor, or type conversion before '-=' token
Blaulichtsteuerung:238: error: expected declaration before '}' token

Quellcode:

//--------------------Pin Belegung--------------------\

const int Led_1 = 13;
const int Led_2 = 11;
const int Led_3 = 10;
const int Led_4 = 9;
const int taster = 8;

//--------------------Variablen--------------------\

volatile int modus = 0;
const int hell = 50;
const int dunkel = 100;
const int pause = 200;
const int voltageHIGH = 255;
const int voltageLOW = 0;

//--------------------Setup--------------------\

void setup () {
pinMode(Led_1, OUTPUT);
pinMode(Led_2, OUTPUT);
pinMode(Led_3, OUTPUT);
pinMode(Led_4, OUTPUT);
attachInterrupt(0, tasterAn, CHANGE);
analogWrite(Led_1, voltageLOW);
analogWrite(Led_2, voltageLOW);
analogWrite(Led_3, voltageLOW);
analogWrite(Led_4, voltageLOW);
}

//--------------------Hauptprogramm--------------------\

void loop () {
switch(modus) {
case '0':
break;

case '1':
Alternierend();
break;

case '2':
Synchron();
break;

case '3':
Wechsel();
break;

case '4':
Fade();
break;
}

}

//--------------------Interrupt für Taster--------------------\

void tasterAn () {
if(modus == 4) {
modus = 0;
} else {
modus++;
}

}

//--------------------Alternierend Doppelblitz--------------------\

void Alternierend () {

analogWrite(Led_1, voltageHIGH);
analogWrite(Led_2, voltageHIGH);
delay(hell);
analogWrite(Led_1, voltageLOW);
analogWrite(Led_2, voltageLOW);
delay(dunkel);
analogWrite(Led_1, voltageHIGH);
analogWrite(Led_2, voltageHIGH);
delay(hell);
analogWrite(Led_1, voltageLOW);
analogWrite(Led_2, voltageLOW);
delay(pause);
analogWrite(Led_3, voltageHIGH);
analogWrite(Led_4, voltageHIGH);
delay(hell);
analogWrite(Led_3, voltageLOW);
analogWrite(Led_4, voltageLOW);
delay(dunkel);
analogWrite(Led_3, voltageHIGH);
analogWrite(Led_4, voltageHIGH);
delay(hell);
analogWrite(Led_3, voltageLOW);
analogWrite(Led_4, voltageLOW);
delay(pause);
}

//--------------------Synchron Doppelblitz--------------------\

void Synchron () {
analogWrite(Led_1, voltageHIGH);
analogWrite(Led_2, voltageHIGH);
analogWrite(Led_3, voltageHIGH);
analogWrite(Led_4, voltageHIGH);
delay(hell);
analogWrite(Led_1, voltageLOW);
analogWrite(Led_2, voltageLOW);
analogWrite(Led_3, voltageLOW);
analogWrite(Led_4, voltageLOW);
delay(dunkel);
analogWrite(Led_1, voltageHIGH);
analogWrite(Led_2, voltageHIGH);
analogWrite(Led_3, voltageHIGH);
analogWrite(Led_4, voltageHIGH);
delay(hell);
analogWrite(Led_1, voltageLOW);
analogWrite(Led_2, voltageLOW);
analogWrite(Led_3, voltageLOW);
analogWrite(Led_4, voltageLOW);
delay(pause);
}

//--------------------Wechsel Wechsel Doppelblitz--------------------\

void Wechsel () {
analogWrite(Led_1, voltageHIGH);
analogWrite(Led_4, voltageHIGH);
delay(hell);
analogWrite(Led_1, voltageLOW);
analogWrite(Led_4, voltageLOW);
delay(dunkel);
analogWrite(Led_1, voltageHIGH);
analogWrite(Led_4, voltageHIGH);
delay(hell);
analogWrite(Led_1, voltageLOW);
analogWrite(Led_4, voltageLOW);
delay(pause);
analogWrite(Led_2, voltageHIGH);
analogWrite(Led_3, voltageHIGH);
delay(hell);
analogWrite(Led_2, voltageLOW);
analogWrite(Led_3, voltageLOW);
delay(dunkel);
analogWrite(Led_2, voltageHIGH);
analogWrite(Led_3, voltageHIGH);
delay(hell);
analogWrite(Led_2, voltageLOW);
analogWrite(Led_3, voltageLOW);
delay(pause);
}

//--------------------Trippelblitz und Fadeaufblenden--------------------\
void Fade () {
analogWrite(Led_1, voltageHIGH);
analogWrite(Led_2, voltageHIGH);
analogWrite(Led_3, voltageHIGH);
analogWrite(Led_4, voltageHIGH);
delay(hell);
analogWrite(Led_1, voltageLOW);
analogWrite(Led_2, voltageLOW);
analogWrite(Led_3, voltageLOW);
analogWrite(Led_4, voltageLOW);
delay(dunkel);
analogWrite(Led_1, voltageHIGH);
analogWrite(Led_2, voltageHIGH);
analogWrite(Led_3, voltageHIGH);
analogWrite(Led_4, voltageHIGH);
delay(hell);
analogWrite(Led_1, voltageLOW);
analogWrite(Led_2, voltageLOW);
analogWrite(Led_3, voltageLOW);
analogWrite(Led_4, voltageLOW);
delay(dunkel);
analogWrite(Led_1, voltageHIGH);
analogWrite(Led_2, voltageHIGH);
analogWrite(Led_3, voltageHIGH);
analogWrite(Led_4, voltageHIGH);
delay(hell);
analogWrite(Led_1, voltageLOW);
analogWrite(Led_2, voltageLOW);
analogWrite(Led_3, voltageLOW);
analogWrite(Led_4, voltageLOW);
delay(pause);

for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
analogWrite(Led_1, fadeValue);
analogWrite(Led_2, fadeValue);
analogWrite(Led_3, fadeValue);
analogWrite(Led_4, fadeValue);
delay(3);
}

for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
analogWrite(Led_1, fadeValue);
analogWrite(Led_2, fadeValue);
analogWrite(Led_3, fadeValue);
analogWrite(Led_4, fadeValue);
delay(2);
}

for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
analogWrite(Led_1, fadeValue);
analogWrite(Led_2, fadeValue);
analogWrite(Led_3, fadeValue);
analogWrite(Led_4, fadeValue);
delay(3);
}

for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
analogWrite(Led_1, fadeValue);
analogWrite(Led_2, fadeValue);
analogWrite(Led_3, fadeValue);
analogWrite(Led_4, fadeValue);
delay(2);
}

}

Bei mir compiliert das. :~

Das ist aber noch ein Laufzeit-Fehler drin:
Soll Modus eine Zahl sein oder ein char? Entscheide dich mal. Ich nehme an eine Zahl also müssen die Anführungszeichen im switch statement weg.

Und deinen Interrupt solltest du vielleicht eher auf nur eine Flanke triggern. Sonst löst er bei jedem Drücken zweimal aus.

Hm das mit dem char stimmt, danke
Das Problem mit dem Taster wird durch die ganzen Delays gelöst :smiley:
aber is auch nen verbesserungsvorschlag joa

EDIT: geht aber immernoch nicht :confused:

Blaulichtsteuerung:175: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:176: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:177: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:178: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:179: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:180: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:181: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:182: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:183: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:184: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:185: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:186: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:187: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:188: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:189: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:190: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:191: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:192: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:193: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:194: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:195: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:196: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:197: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:198: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:199: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:200: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:201: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:202: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:203: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:204: error: expected constructor, destructor, or type conversion before '(' token
Blaulichtsteuerung:206: error: expected unqualified-id before 'for'
Blaulichtsteuerung:206: error: expected constructor, destructor, or type conversion before '<=' token
Blaulichtsteuerung:206: error: expected constructor, destructor, or type conversion before '+=' token
Blaulichtsteuerung:214: error: expected unqualified-id before 'for'
Blaulichtsteuerung:214: error: expected constructor, destructor, or type conversion before '>=' token
Blaulichtsteuerung:214: error: expected constructor, destructor, or type conversion before '-=' token
Blaulichtsteuerung:222: error: expected unqualified-id before 'for'
Blaulichtsteuerung:222: error: expected constructor, destructor, or type conversion before '<=' token
Blaulichtsteuerung:222: error: expected constructor, destructor, or type conversion before '+=' token
Blaulichtsteuerung:230: error: expected unqualified-id before 'for'
Blaulichtsteuerung:230: error: expected constructor, destructor, or type conversion before '>=' token
Blaulichtsteuerung:230: error: expected constructor, destructor, or type conversion before '-=' token
Blaulichtsteuerung:238: error: expected declaration before '}' token

Der Programmierstil mit delay ist bescheiden. Desweiteren funktioniert auch mit den delays dein Taster nicht richtig. Du solltest ihn entprellen. Denn auch wenn deine loop ausgebremst, der Taster kann prellen und die Werte dennoch um mehr als +1 erhöhen.

Der Fehler bei deinem Programm sind die falschen Kommentare

//--------------------Trippelblitz und Fadeaufblenden--------------------\\

'' solltest du bei sowas unterbinden, das wird verwendet, um einen Befehl in der 2. Zeilen weiterzuführen (übersichtlicher als eine lange Zeile).
Das es bei deinen anderen Kommentaren funktioniert, liegt daran, dass sich dazwischen eine Leerzeile befindet.
Abhilfe schafft ein x-beliebiges Zeichen am Ende des Kommentares. Aber das solltest du UNTERLASSEN!

Die Kompiler Meldung dazu ist nicht so hilfreich. Aufgefallen ist es erst als ich deinen Code in eine andere IDE kopiert hatte (Atmel Studio). Dort viel auf, dass die erste Zeile danach ausgegraut (kommentiert) wurde. Bleibe bei den typischen Kommentarstilen.

Nutzte entweder

// Kommentar einer Zeile

oder

/* Kommentar mit
mehr als einer Zeile
*/

hi,

das einzige, das mich tröstet, ist, daß es ein anderer stefan gefunden hat.

ich wollt's grad schreiben, da warst Du schneller. hab's übrigens nur durch probieren gefunden, daß \ diese funktion hat, wußte ich nicht (aber gut, es jetzt zu wissen, kann ja wirklich praktisch sein).

vermutlich hat er das \ nur der optik wegen eingebaut...

gruß stefan

XD

mich hatte es gewundert, dass er lediglich bei der Funktion gemeckert hat. Da ist mir die die fehlende Leerzeile bei den anderen Funktionen garnicht aufgefallen.

Ja, das '' wegen der Optik. Kann ich nur nicht verstehen, warum immer alle so Monster Header um Ihre Funktionen machen. Reicht es nicht, wenn man kurz die Funktion innerhalb von "/* */" schreibt, oder wenns noch kürzer ist "//"?

Für die Leute, die eventuel noch wissen möchten, was genau bei \ geschieht

C-Präprozessor – Wikipedia

Zusammenführung von Zeilen, die durch den umgekehrten Schrägstrich () am Zeilenende aufgeteilt wurden.

Somit erklärt sich auch der Fehler. Denn aus

//-Test-\\

void func01() {}

macht der Präprozessor

//-Test-\\
void func01(){}

Damit ein Zeilenumbruch erfolgt, muss nach dem \ ein Return (Eingabetaste) erfolgen.

Hier geschieht folgendes und geht deshalb nicht

//-Test-\\
void func01() {}
//-Test-\void func01() {}

Das erste \ bleibt wegen des fehlendes Returns stehen

DANKE DANKE DANKE
Hab ich noch nie gehört das \ diese Funktion hat, ich wäre glaube ich NIE drauf gekommen :smiley:

Ja sorry bin Einsteiger :blush:
Ich weis das Delay() scheiße für sowas is aber ohne wars mir zu kompliziert für doppel/trippleblitze, etc.. :o
Bin aber fleißig am einlesen / üben :wink:

Daniel