Forum: Mikrocontroller und Digitale Elektronik Bis 3 zählen- Programmiercode funktioniert nicht


von Simon N. (ardi)


Lesenswert?

Hi,
ich möchte mit einem Arduino bewirken, dass wenn ich auf den Knopf 
drücke eine Led angeht, wenn ich nochmal drücke die zweite und wenn ich 
nochmal drücke die dritte Led.
Nun hab ich eine Variable bzw. einen Pin deklarieren wollen und dann 
kommt:
"at this point in file"
1
void setup(){
2
  pinMode(13, OUTPUT);
3
  pinMode(12, OUTPUT);
4
  pinMode(11, OUTPUT);
5
  pinMode(2, INPUT);
6
  Serial.begin(9600);
7
}
8
9
void loop(){
10
 int counter=0;
11
 int led1=digitalWrite(13);
12
 int led2=digitalWrite(12);
13
 int led3=digitalWrite(11);...

Ich wollte nur die LED deklarieren.
Was ist zu tun?
Danke und Gruß

von Markus M. (mark_m)


Lesenswert?

Hast Du schon ein Programm geschrieben, das bei Tastendruck eine LED ein 
und wieder aus schaltet?

Wenn du das getan hast, dann kennst du alle technischen Voraussetzungen 
und kannst dieses Wissen für das Programm mit drei LEDs nutzen.

"digitalWrite()" erwartet zwei Parameter. Und einen Rückgabeparameter 
wird auch nicht geliefert.

Bitte Referenz auf arduino.cc lesen.

Grüsse

von Simon N. (ardi)


Lesenswert?

Was möchtest du sehen?
meinst du noch das deklarieren von dem Schalter? hab ich!
1
void setup(){
2
  pinMode(13, OUTPUT);
3
  pinMode(12, OUTPUT);
4
  pinMode(11, OUTPUT);
5
  pinMode(2, INPUT);
6
  Serial.begin(9600);
7
}
8
9
void loop(){
10
 int counter=0;
11
 int led1=digitalWrite(13);
12
 int led2=digitalWrite(12);
13
 int led3=digitalWrite(11);
14
 int schalter=digitalRead(2);
15
 Serial.println(schalter, DEC);
16
 
17
 if(schalter==HIGH){
18
   counter++;
19
 }
20
 if(counter==0){
21
   digitalWrite(13, LOW);
22
   digitalWrite(12, LOW);
23
   digitalWrite(11, LOW);
24
 }
25
 if(counter==1){
26
   digitalWrite(13, HIGH);
27
   digitalWrite(12, LOW);
28
   digitalWrite(11, LOW);
29
 }
30
 if(counter==2){
31
   digitalWrite(13, HIGH);
32
   digitalWrite(12, HIGH);
33
   digitalWrite(11, LOW);
34
 }
35
 if(counter==3){
36
   digitalWrite(13, HIGH);
37
   digitalWrite(12, HIGH);
38
   digitalWrite(11, HIGH);
39
 }  
40
 if(counter==4){
41
   counter=0;
42
 }
43
 
44
  
45
}

von Dumdi D. (dumdidum)


Lesenswert?

wolltest Du vielleicht statt

int led1=digitalWrite(13);

int led1=13;

schreiben?

von Markus M. (mark_m)


Lesenswert?

Ich möchte gar nichts sehen!

Du solltest die aber mal die Fehlermeldungen der Arduino IDE (verwendest 
Du diese?) anschauen!

Die angezeigten Fehler solltest Du beheben. Den Grund der Fehler steht 
in meinem Post oben.

Grüsse

Ergänzung:
1
int led1=digitalWrite(13);
ist ungültiger Syntax und ausserdem noch überflüssig!

von Gefallenes Bit (Gast)


Lesenswert?

Aus welchem Grunde wird hier "int" verwendet?

von Simon N. (ardi)


Lesenswert?

Ok danke jetzt gehts

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.