Forum: Mikrocontroller und Digitale Elektronik Das Programm funktioniert nicht


von Danny haß (Gast)


Lesenswert?

der Arduino hat eine Fehlermeldung angegeben jedoch finden wir ihn 
nicht.


Das fertige Programm:
1
void setup(){
2
  pinMode(5,OUTPUT);     // led
3
  pinMode(6,OUTPUT);     // led
4
  pinMode(7,OUTPUT);     // led
5
  pinMode(8,OUTPUT);     // led
6
  pinMode(9,OUTPUT);     // das ist der Motor
7
  pinMode(A2,INPUT);     // Sensor
8
  pinMode(A1,INPUT);     // Sensor
9
}
10
void loop () {
11
  digitalWrite(5,HIGH);
12
  if(digitalWrite(5==HIGH)) {
13
    Serial.println(analogRead(A2));
14
  } 
15
  delay(1000);
16
  digitalWrite(5,LOW);
17
  delay(1000);
18
  digitalWrite(6,HIGH);
19
  if(digitalWrite(6==HIGH)) {
20
    Serial.println(analogRead(A2));
21
  }
22
  delay(1000);
23
  digitalWrite(6,LOW);
24
  delay(1000);
25
  digitalWrite(7,HIGH);
26
  if(digitalWrite(7==HIGH)) {
27
    Serial.println(analogRead(A1));
28
  }
29
  delay(1000);
30
  digitalWrite(7,LOW);
31
  delay(1000);
32
  digitalWrite(8,HIGH);
33
  if(digitalWrite(8==HIGH)) {
34
    Serial.println(analogRead(A1));
35
  }
36
  delay(1000);
37
  digitalWrite(8,LOW);
38
  delay(1000);
39
  digitalWrite(9,HIGH);
40
  delay(1000);
41
  digitalWrite(9,LOW);
42
  delay(36000);
43
}



Es wäre nett wenn jemand antworten würde.



Lg  Danny Haß

: Bearbeitet durch User
von Konstantin (Gast)


Lesenswert?

> der Arduino hat eine Fehlermeldung angegeben jedoch finden wir ihn nicht.

Super präzise. Wäre vielleicht vorteilhaft, diese hier zu posten.

> if(digitalWrite(5==HIGH)) {

wie kann 5 HIGH sein?

> if(digitalWrite(6==HIGH)) {

dito

> if(digitalWrite(7==HIGH)) {

dito

> if(digitalWrite(8==HIGH)) {

dito

von Fred (Gast)


Lesenswert?

Danny haß schrieb:
> der Arduino hat eine Fehlermeldung angegeben jedoch finden wir ihn
> nicht.

Meistens befindet er sich am anderen Ende des eingesteckten USB-Kabels.

Falls ihr ihn im Netzwerk betreibt, wird es schwieriger, weil 
Netzwerkverkabelung recht unübersichtlich sein kann, besonders im Labor- 
und Bastel-Setting.

Vielleicht vereinfacht es die Suche, wenn ihr im Blick behaltet, daß der 
Arduino so sieben mal fünfeinhalb Zentimeter groß ist, und gezielt nach 
solchen Platinen schaut.

von Konstantin (Gast)


Lesenswert?

Fred schrieb:
> Danny haß schrieb:
>> der Arduino hat eine Fehlermeldung angegeben jedoch finden wir ihn
>> nicht.
>
> Meistens befindet er sich am anderen Ende des eingesteckten USB-Kabels.
>
> Falls ihr ihn im Netzwerk betreibt, wird es schwieriger, weil
> Netzwerkverkabelung recht unübersichtlich sein kann, besonders im Labor-
> und Bastel-Setting.
>
> Vielleicht vereinfacht es die Suche, wenn ihr im Blick behaltet, daß der
> Arduino so sieben mal fünfeinhalb Zentimeter groß ist, und gezielt nach
> solchen Platinen schaut.

+1

von Stephan L. (Gast)


Lesenswert?

Wenn eine Fehlermeldung ausgegeben wird, empfiehlt es sich, diese auch 
hier mitzuteilen ;)

Beim drüberlesen fällt auf:
| if(digitalWrite(6==HIGH))

Das kann so nicht stimmen. digitalWrite() erwartet 2 Parameter (Pin, 
Pegel) und gibt keinen Wert zurück. Das quittiert der Compiler mit einem 
Fehler.

Sicherlich meinst du:

if(digitalRead(6)==HIGH)

Das gefällt dem Compiler schon besser, allerdings ist es reichlich 
witzlos, einen Pin auszulesen, den man zuvor gesetzt hat und der außer 
einer LED nichts zu treiben hat. Denke noch einmal drüber nach, was dein 
Programm überhaupt machen soll und setze das dann in eine einfache 
Wenn-Dann-Logik um.

von Karl H. (kbuchegg)


Lesenswert?

Konstantin schrieb:
>> der Arduino hat eine Fehlermeldung angegeben jedoch finden wir ihn nicht.
>
> Super präzise. Wäre vielleicht vorteilhaft, diese hier zu posten.
>
>> if(digitalWrite(5==HIGH)) {
>
> wie kann 5 HIGH sein?

Da kann man ruhig auch noch weiter gehen und die nächste Frage 
aufwerfen.

Wir wissen, dass digitalWrite eine Funktion ist, die einen Output Pin 
auf einen bestimmten Zustand setzt. Nicht mehr und nicht weniger. Das 
ist es, was diese Funktion macht.

Also lieber Danny, kannst du mal in einem deutschen Satz formulieren, 
was hier eigentlich passieren soll. Also jetzt nicht einfach nur den 
Code vorlesen. Was ist die Absicht an dieser Stelle.

beispiel
1
  digitalWrite(5,HIGH);
das würde man (mit der Kenntnis dessen, was digitalWrite macht) so 
übersetzen. Den Ausgangspin 5 auf HIGH setzen, weil da eine LED drann 
hängt, die bei einem HIGH leuchtet.

Was also ist die Absicht in deinem if. Welcher Umstand soll da getestet 
werden?
Berücksichtige in deiner Antwort auch, dass der Pin 5 auf Ausgang 
geschaltet ist. D.h. wenn du mit einem digitalWrite den Pin auf HIGH 
setzt, dann ist der auch HIGH. Und berücksichtige in deiner Antwort 
auch, dass digitalWrite einen Pin aktiv auf entweder HIGH oder LOW 
setzt, aber abgesehen davon nichts darüber aussagt, welchen Zustand ein 
Pin hat.
Welchen Zweck soll daher hier ein if erst mal grundsätzlich haben? Was 
ist die Idee dahinter? Was wollt ihr eigentlich testen? Liefert 
digitalWrite eigentlich irgendetwas, das getestet werden kann?
Oder habt ihr das if nur hingeschrieben, damit in eurem Programm auch 
mal ein if vorkommt?

: Bearbeitet durch User
von Sebastian W. (wangnick)


Lesenswert?

Hallo Danny,

Danny haß schrieb:
> void setup(){
>   pinMode(5,OUTPUT);     // led
>   pinMode(6,OUTPUT);     // led
>   pinMode(7,OUTPUT);     // led
>   pinMode(8,OUTPUT);     // led
>   pinMode(9,OUTPUT);     // das ist der Motor
>   pinMode(A2,INPUT);     // Sensor
>   pinMode(A1,INPUT);     // Sensor
> }

Hier fehlt auch noch Serial.begin(9600);

LG, Sebastian

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.