system
June 29, 2017, 8:09am
1
Hallo,
Ich habe gerade angefangen mit Arduino ein paar leichte Sachen zu programmieren.
Allerdings habe ich bei der Programmierung der RGB-Lampe ein kleines Problem und komme nicht weiter. Ich hab den Sketch mit Hilfe eines Tutorials gemacht und obwohl dieser exakt dem des Tutorials gleicht, wird mir die Fehlermeldung
expected ")" before ";" token
an folgender Stelle angezeigt:
analogWrite(r_pin,r_val);
Hier einmal der Sketch. Der Plan war, dass die Lampe ihre Farbe wechselt mit Übergang von rot zu grün zu blau zu rot.
int r_pin = 9;
int g_pin = 10;
int b_pin = 11;
int r_val = 255;
int g_val = 0;
int b_val = 0;
void setup()
{
pinMode(r_pin,OUTPUT);
pinMode(g_pin,OUTPUT);
pinMode(b_pin,OUTPUT);
}
void loop()
{
while (r_val != 0)
(
analogWrite(r_pin,r_val);
analogWrite(g_pin,g_val);
r_val--;
g_val++;
delay(20);
)
while (g_val != 0)
(
analogWrite(g_pin,g_val);
analogWrite(b_pin,b_val);
g_val--;
b_val++;
delay(20);
)
while (b_val != 0)
(
analogWrite(b_pin,b_val);
analogWrite(r_pin,r_val);
b_val--;
r_val++;
delay(20);
)
}
Du verwendest an der fehlerhaften Stelle falsch Klammern: ist "()", soll "{}"
system
June 29, 2017, 8:20am
3
Hat geklappt.
Super Danke!
Ich mag keine while Schleifen, delay, etc.
Schau mal, es geht auch ohne:
const byte r_pin = 9;
const byte g_pin = 10;
const byte b_pin = 11;
enum {
fadeRotGruen,
fadeGruenBlau,
fadeBlauRot,
};
int r_val = 255;
int g_val = 0;
int b_val = 0;
void setup() {
pinMode(r_pin, OUTPUT);
pinMode(g_pin, OUTPUT);
pinMode(b_pin, OUTPUT);
}
void loop() {
static unsigned long lastStep;
static byte fade = fadeRotGruen;
unsigned long topLoop = millis();
if (topLoop - lastStep > 20) {
lastStep = topLoop;
switch (fade) {
case fadeRotGruen:
if (--r_val == 0) {
fade = fadeGruenBlau;
}
g_val++;
break;
case fadeGruenBlau:
if (--g_val == 0) {
fade = fadeBlauRot;
}
b_val++;
break;
case fadeBlauRot:
if (--b_val == 0) {
fade = fadeRotGruen;
}
r_val++;
break;
}
analogWrite(r_pin, r_val);
analogWrite(g_pin, g_val);
analogWrite(b_pin, b_val);
}
}
combie
June 29, 2017, 1:12pm
6
Ich mag keine while Schleifen, delay, etc.
Ich bin ein while Fan!
Und am häufigsten setze ich wohl die while(1), die endlose, ein.
Auch gerne ein Dutzend davon, in einem Programm.
combie:
Ich bin ein while Fan!
Und am häufigsten setze ich wohl die while(1), die endlose, ein.
Auch gerne ein Dutzend davon, in einem Programm.
Das hatte ich mir irgendwie schon gedacht.