INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
if7else
04.09.2016, 08:38 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2016 08:49 von Bitklopfer.)
Beitrag #1
if7else
hey leute

Bin irgendwie verzweifelt, versuche gerarde mein erstes Projekt zu programmieren. Bin nun dabei die einzelnen Komponenten zu testen.

Habe unten einen kleinen Code geschrieben bi dem ich eine Lichtschranke (light1)
habe, sobald diese betätigt(LOW) ist sollte der Ausgang relais1 HIGH sein.

Jedoch funktioniert das nicht, wieso?

Gruss

Philipp


Code:
int light1 = 5;
int light2 = 6;
int relais1 = 8;
int relais2 = 9;

void setup() {
   pinMode(light1INPUT);
  pinMode(light2,INPUT);
  pinMode(relais1,OUTPUT);
  pinMode(relais2,OUTPUT);

  Serial.begin(9600);
  }

void loop()       {
                if (light1,LOW)
                {  
                  digitalWrite(relais1,HIGH);
                }
                if (level,HIGH)
                {  
                digitalWrite(relais1,LOW);
                }
      }
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 08:48
Beitrag #2
RE: if7else
Hi,
versuche es doch mal damit...

Code:
int light1 = 5;
int light2 = 6;
int relais1 = 8;
int relais2 = 9;

byte status1;   // Stausbuffer für Portpin light1
byte status2;

void setup() {
  pinMode(light1INPUT);
  pinMode(light2,INPUT);
  pinMode(relais1,OUTPUT);
  pinMode(relais2,OUTPUT);

  Serial.begin(9600);
  }

void loop() {

digitalRead(status1, light1);  // Port einlesen und in status1 speichern

  if (status1,LOW)   // status1 zur Entscheidung testen
  {  
    digitalWrite(relais1,HIGH);
  }
  if (status1,HIGH)
  {  
  digitalWrite(relais1,LOW);
  }
}

...weil ohne den Port einzulesen geht es nicht...
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 08:56
Beitrag #3
RE: if7else
Danke für deine Antwort das macht sinn.

noch eine kleine Fragte was hat es sich mit den beiden byte status1 aufsich?




byte status1; // Stausbuffer für Portpin light1
byte status2;
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 08:58
Beitrag #4
RE: if7else
(04.09.2016 08:56)Hangloose schrieb:  Danke für deine Antwort das macht sinn.

noch eine kleine Fragte was hat es sich mit den beiden byte status1 aufsich?




byte status1; // Stausbuffer für Portpin light1 <=== NA DAS STEHT HIER
byte status2;

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 10:09
Beitrag #5
RE: if7else
Hier fehlt ein Komma:

Code:
pinMode(light1INPUT);

zwischen "light1, INPUT"

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 10:11
Beitrag #6
RE: if7else
OK, Danke

hab noch ein kleines Problem mit deinem Code dieser gibt mir bei folgender Zeile eine Fehlermeldung heraus.

Code:
digitalRead(status1, light1);  // Port einlesen und in status1 speichern


(too many arguments to function 'int digitalRead(uint8_t)'
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 10:17 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2016 10:20 von hotsystems.)
Beitrag #7
RE: if7else
(04.09.2016 10:11)Hangloose schrieb:  hab noch ein kleines Problem mit deinem Code dieser gibt mir bei folgender Zeile eine Fehlermeldung heraus.

Code:
digitalRead(status1, light1);  // Port einlesen und in status1 speichern
(too many arguments to function 'int digitalRead(uint8_t)'

Das geht so auch nicht.
Code:
status1 = digitalRead(light1);

So muss es sein.

Und das hier:

Code:
if (light1,LOW)
geht auch nicht.

so muss es sein.

Code:
if (light1 == LOW)

Sieh dir mal die Beispiele in der IDE an, da ist alles genau beschrieben.

Grundlagen sind sehr wichtig.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 11:47
Beitrag #8
RE: if7else
(04.09.2016 10:17)hotsystems schrieb:  
(04.09.2016 10:11)Hangloose schrieb:  hab noch ein kleines Problem mit deinem Code dieser gibt mir bei folgender Zeile eine Fehlermeldung heraus.

Code:
digitalRead(status1, light1);  // Port einlesen und in status1 speichern
(too many arguments to function 'int digitalRead(uint8_t)'

Das geht so auch nicht.
Code:
status1 = digitalRead(light1);

So muss es sein.

....sorry den Mist hab ich gebaut...das kommt davon wenn es den Compiler nicht prüfen läßt..Sad

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste