Hallo,
ich habe folgenden Sketch einmal mit zwei unterschiedlichen Variablendeklarationen ausprobiert.
i habe ich einmal als Byte deklariert. Die LED blendet von dunkel bis hell auf und dann beginnt das Spielchen von vorne.
Auf dem Seriellen Monitorerscheint nur
Hallo
start
und dann nichts mehr.
Wenn ich i als int deklariere läuft alles erwartungsgemäß, sprich auf dem seriellen Monitor erscheint:
Hallo
start
ende
start
ende usw.
Woran könnte es liegen? i läuft von 0 bis 255, somit müsste Byte doch eigentlich ausreichen.
Vielen Dank im Voraus
Gruß
Ardubu
// Dim an LED using a PWM pin
int PWMpin = 13; // LED in series with 470 ohm resistor on pin 13
byte i=0;
void setup()
{
Serial.begin(9600);
Serial.println("Hallo");
}
void loop()
{
Serial.println("start");
for (i=0; i <= 255; i++){
analogWrite(PWMpin, i);
delay(10);
}
Serial.println("ende");
}
Die Variable läuft im letzten Schritt von 255 auf 0 über und die Schleife wird damit immer ausgeführt.
Sieht man hiermit:
for(byte i = 250; i <= 255; i++)
{
Serial.println(i);
delay(200);
}
Hat nichts mit Rücksetzen zu tun, sondern einfach damit, dass beim letzten Inkrementieren (und bevor die Bedingung überprüft wird) 255 + 1 = 256 gemacht wird.
und der Sketch funktioniert mit int nur, weil dieser auf 256 geht. 256 wäre aber keine Wert für PWM mehr. Sprich PWM dürfte dann wieder auf 0 stehen, obwohl der Wert 256 in i steht.
Außerdem ist pin 13 beim Arduino UNO kein PWM-Pin. @Marcus W bitte benutze für den sketch die CODE TAGS (so wie ich Deinen ersten Post ausgebessert habe). Die CODE TAGS bekommst du mit dem #-Ikone oberhalb des Editorfensters.
Grüße Uwe
Oh entschuldige @ardubu bitte benutze für den Sketch die CODE TAGS (so wie ich Deinen ersten Post ausgebessert habe). Die CODE TAGS bekommst Du mit dem #-Ikone oberhalb des Editorfensters.
Grüße Uwe
Ach Mööönsch Uwe, nun ist mein Beitrag #1 nutzlos geworden und ich kann den nun auch editieren. Ich hätte den Quelltext so gelassen, um zu zeigen was richtiges C ausmacht.
Hallo Uwe,
sorry für den nicht leserlichen Code, aber ich habe den Code mit # eingesetzt, und dann hat der Editor, das was ihr gesehen habt, daraus gemacht. Was habe ich falsch gemacht?
Gruß
Ardubu
Jop, beim kopieren hast du den Fehler gemacht. In der Arduino IDE nicht "Für Forum kopieren" auswählen sondern einfach kopieren. Dann entsprechend mit [code] .... [/code] hier einfügen.