Forum: Mikrocontroller und Digitale Elektronik Arduino Programm wird nich korrekt ausgeführt, kaputt?


von ardu (Gast)


Lesenswert?

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
void setup()
14
{
15
 pinMode(_rLed, OUTPUT); 
16
 pinMode(_gLed, OUTPUT); 
17
 pinMode(_bLed, OUTPUT); 
18
}
19
20
void loop()
21
{
22
  for(byte i = 0; i < 255; i++)
23
  {
24
   analogWrite(_rLed, i); 
25
   
26
   delay(10);
27
  }
28
  
29
  analogWrite(_rLed, 0); 
30
  
31
  for(byte i = 0; i < 255; i++)
32
  {
33
   analogWrite(_gLed, i); 
34
   
35
   delay(10);
36
  }
37
  
38
  analogWrite(_gLed, 0); 
39
  
40
  for(byte i = 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
void setup()
16
{
17
 pinMode(_rLed, OUTPUT); 
18
 pinMode(_gLed, OUTPUT); 
19
 pinMode(_bLed, OUTPUT); 
20
}
21
22
void loop()
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.

von H.Joachim S. (crazyhorse)


Lesenswert?

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.

von Werner A. (homebrew)


Lesenswert?

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...

von ardu (Gast)


Lesenswert?

Die Ausgänge sind richtig.

von ardu (Gast)


Lesenswert?

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.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

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.

von Markus (Gast)


Lesenswert?

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.

von Amateur (Gast)


Lesenswert?

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.

von ardu (Gast)


Lesenswert?

Ich kann AnalogWrite nicht an den Analog Pins vom Mega 2560 benutzen!?

von Karl H. (kbuchegg)


Lesenswert?

ardu schrieb:
> Ich kann AnalogWrite nicht an den Analog Pins vom Mega 2560 benutzen!?

Was sagt die Doku?
http://arduino.cc/de/Reference/AnalogWrite

Beachte insbesondere diesen Satz in der Doku
1
Die Funktion analogWrite() hat nichts mit den analogen Pins
2
oder der Funktion analogRead() zu tun.

Auch dein Lehrer sollte eigentlich wissen, dass man zuerst in der Doku 
nachsieht.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.