Hallo,
ich habe eine Frage zu einem Arduino-Programm. Was ist hier falsch?
Ich sehe hier nichts Falsches. Mein Informatik-Lehrer sieht hier auch
nichts Falsches.
1
/*
2
RGB-Led ansteuern.
3
4
Schreibe ein Programm, bei dem die Intensität der Farbe rot von wenig (0) bis zum
5
Maximum (255) kontinuierlich zunimmt. Erweitere Dein Programm so, dass dieses für die
6
Farben grün und blau wiederholt wird.
7
*/
8
9
int_rLed=A0;
10
int_gLed=A1;
11
int_bLed=A2;
12
13
voidsetup()
14
{
15
pinMode(_rLed,OUTPUT);
16
pinMode(_gLed,OUTPUT);
17
pinMode(_bLed,OUTPUT);
18
}
19
20
voidloop()
21
{
22
for(bytei=0;i<255;i++)
23
{
24
analogWrite(_rLed,i);
25
26
delay(10);
27
}
28
29
analogWrite(_rLed,0);
30
31
for(bytei=0;i<255;i++)
32
{
33
analogWrite(_gLed,i);
34
35
delay(10);
36
}
37
38
analogWrite(_gLed,0);
39
40
for(bytei=0;i<255;i++)
41
{
42
analogWrite(_bLed,i);
43
44
delay(10);
45
}
46
47
analogWrite(_bLed,0);
48
}
Ausgeführt wird aber folgendes Programm, obwohl völlig andere Pins
benutzt werden, hä??:
1
/*
2
RGB-Led ansteuern.
3
4
1. Zunächst soll keine Farbe angezeigt werden.
5
2. Nach einer Sekunde soll für eine Sekunde rot angezeigt werden.
6
3. Nach einer weiteren Sekunde soll für eine Sekunde grün angezeigt werden.
7
4. Nach einer weiteren Sekunde soll für eine Sekunde blau angezeigt werden.
8
*/
9
10
11
int_rLed=8;
12
int_gLed=9;
13
int_bLed=10;
14
15
voidsetup()
16
{
17
pinMode(_rLed,OUTPUT);
18
pinMode(_gLed,OUTPUT);
19
pinMode(_bLed,OUTPUT);
20
}
21
22
voidloop()
23
{
24
delay(1000);
25
26
digitalWrite(_rLed,HIGH);
27
delay(1000);
28
digitalWrite(_rLed,LOW);
29
30
31
delay(1000);
32
33
34
digitalWrite(_gLed,HIGH);
35
delay(1000);
36
digitalWrite(_gLed,LOW);
37
38
delay(1000);
39
40
digitalWrite(_bLed,HIGH);
41
delay(1000);
42
digitalWrite(_bLed,LOW);
43
}
Ich habe das Programm bereits auf zwei Arduino Mega 2560 ausgeführt.
Und woher weisst du, das das 2.Programm ausgeführt wird? Das
rekonstruiert man ja nicht mal ebenso aus ein paar blinkenden LEDs. D.h.
du hast dieses Programm schon mal geschrieben und übertragen.
Also hast du ein Problem mit dem flashen des neuen Programms.
Was steht denn im Logfenster nach dem compilieren und download?
War das zweite Programm auf beiden 2560 vorher drauf und der download
geht schief?
Bist du sicher, dass die Ausgänge im ersten Programm richtig sind?
>int _rLed = A0;>int _gLed = A1;>int _bLed = A2;
Ich hatte verstanden, dass das Analog INs wären...
H.Joachim Seifert schrieb:> Und woher weisst du, das das 2.Programm ausgeführt wird? Das> rekonstruiert man ja nicht mal ebenso aus ein paar blinkenden LEDs. D.h.> du hast dieses Programm schon mal geschrieben und übertragen.> Also hast du ein Problem mit dem flashen des neuen Programms.
Also ich habe ein ähnliches Programm geschrieben, nur mit anderen Pins.
Das tatsächlich dieses ausgeführt wird, scheint nicht der Fall zu sein.
Der Arduino verhält sich aber wie das zweite Programm, wie der andere,
obwohl dieser (baugleich) mit dem zweiten Programm nie in Berührung
gekommen ist.
ardu schrieb:> Der Arduino verhält sich aber wie das zweite Programm, wie der andere,> obwohl dieser (baugleich) mit dem zweiten Programm nie in Berührung> gekommen ist.
Siehe Beitrag "Re: Suche Alkoholspender"
Sorry, konnte jetzt nicht anders.
ardu schrieb:> int _rLed = A0;> int _gLed = A1;> int _bLed = A2;
Nein, das sind alles keine PWM Ausgänge und können somit nicht mit
analogWrite(_rLed, i) gesetzt werden.
Wie schon von Werner A. geschrieben.
Ich würde mal mit einem 08/15-Blinkprogramm die ganze Kette Compiler bis
incl. Loader überprüfen.
Am besten mit einem der mitgelieferten Beispiele.
Sinnvoll wäre es auch, wenn dieses nicht dem, bei der Auslieferung
entspricht. Bei meinen waren Samples eingebrannt. Keine Ahnung ob das
immer so ist.