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
Wo liegt der Fehler?
10.10.2013, 21:39
Beitrag #1
Wo liegt der Fehler?
Hallo,
ich bastele jetzt schon ein paar Tage rum,
begreife aber nicht warum dieser Code nicht läuft!

Obwohl ich beide Schalter betätige (gleichzeitig!) springt er nicht zu TOP2!

Kann mir jemand helfen?

Code:
#include <LiquidCrystal.h>

LiquidCrystal lcd(12,11,10,9,8,7,6);
const int Sch1 = 3;  
const int Sch2 = 2;
int S1 = 0;            
int S2 = 0;
  
void setup()
{
  pinMode(Sch1, INPUT);
  pinMode(Sch2, INPUT);
  lcd.begin(16,2);
}

void loop()
{

Top1:
  S1 = digitalRead(Sch1);
  S2 = digitalRead(Sch2);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Wo ist");
  lcd.setCursor(0,2);
  lcd.print("der Fehler?");
  if (S1==HIGH && S2==HIGH){goto Top2;}
  delay (1000);
  goto Top1;
  
Top2:
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Geschafft !");
  delay (100000);
  goto Top2;
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.10.2013, 22:19 (Dieser Beitrag wurde zuletzt bearbeitet: 10.10.2013 22:20 von AgileHardware.)
Beitrag #2
RE: Wo liegt der Fehler?
Wie sieht denn die elektrische Seite aus?

Du hast nicht INPUT_PULLUP verwendet, hast Du denn einen PullUp oder PullDown Widerstand angeschlossen? Verbinden Deine Taster die Eingaenge mit Masse oder Vcc?

Bitte entschuldige, dass ich so elementare Fragen stelle. Deine Software ist an mehreren Stellen etwas untypisch. Das kann gewollt sein, oder eben nicht. Typisch waere z.B. dass die Taster gegen Masse verbinden. Und wenn sie offen sind, zieht ein PullUp-Widerstand den Eingang auf High. Also inverse Logik: Gedrueckt ist Low, Offen ist High.

Du kannst ja erstmal jeden Taster einzeln mit der LED an Pin 13 testen.
Ich bin mir grad nicht sicher, aber ich ich glaube die LED an Pin13 auch Low-aktiv ist.

Code:
// Code ungetestet, also ohne Gewaehr ;-)

int tasterPin = 2;
int ledPin = 13;

void setup(){
  pinMode(tasterPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
}

void loop(){
  digitalWrite(ledPin, digitalRead(tasterPin));
}
Ach ja: Goto ist boese! ;-)

Gruesse,

AgileHardware

simple is beautiful. ™
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.10.2013, 22:33 (Dieser Beitrag wurde zuletzt bearbeitet: 10.10.2013 22:36 von polomicha.)
Beitrag #3
RE: Wo liegt der Fehler?
Danke für die schnelle Antwort.
Schalter haben einen Pull-Down auf Masse.

Denke das Problem liegt in der if Zeile.
Sobal ich mich auf "S1 == HIGH" beschränke und das zweite Kriterium mit "&& S1 == HIGH" weck lasse, funktioniert alles.

Noch eine Idee?

P.S. Warum is goto böse?

Danke für die schnelle Antwort.
Schalter haben einen Pull-Down auf Masse.

Denke das Problem liegt in der if Zeile.
Sobal ich mich auch "S1 == HIGH" beschränke und das Zweite Kriterium mit "&&" weck lasse, funktioniert alles.

Noch eine Idee?

P.S. Warum is goto böse?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2013, 09:16 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2013 09:21 von Rene.)
Beitrag #4
RE: Wo liegt der Fehler?
Ich sehe auch keinen Fehler in deinem Code. Sobald beide Schalter gleichzeitig gedrückt werden, müsste Top2 angesprungen werden.

> Sobal ich mich auf "S1 == HIGH" beschränke und das zweite Kriterium mit "&& S1 == HIGH" weck lasse, funktioniert alles.
Mit S1 == HIGH fragst du nur den ersten Schalter ab.
Was passiert, wenn du es mit S2 == HIGH versuchst. Reagiert das Programm dann auf den zweiten Schalter ?
Wenn nicht, dann musst du die Verkabelung überprüfen.

> P.S. Warum is goto böse?
Goto ist bei so einfachen Programmen sicher ein brauchbares Mittel. Wenn du einige tausend Zeilen Code und einige Dutzend goto hast, wirst du schnell die Übersicht verlieren. Vor 30 Jahren (Apple II, C64 usw.) schrieb man in Basic häufig Programme mit vielen goto's und gosub's. Zum Glück stehen heute auch auf einfachen Systemen elegantere Möglichkeiten zur Verfügung.

Der Hobbyelektroniker wagt sich an die Arduinoprogrammierung auf Video und auf seiner Webseite
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2013, 11:54
Beitrag #5
RE: Wo liegt der Fehler?
Ja. Der S2 Funktioniert auch einzeln.
Nur die Funktion der UND mir beiden klappt nicht.

Ist mir nen Rätsel!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2013, 13:03
Beitrag #6
RE: Wo liegt der Fehler?
Ich habe das schnell nachgebaut. Allerdings habe ich auf das Display verzichtet und gebe nur Meldungen mit Serial.println aus.
Es funktioniert alles einwandfrei. Deine Software ist also korrekt.
Das LCD sollte keinen Unterschied machen.

Es herrscht Ratlosigkeit!

Der Hobbyelektroniker wagt sich an die Arduinoprogrammierung auf Video und auf seiner Webseite
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2013, 16:14
Beitrag #7
RE: Wo liegt der Fehler?
Moin,

Zitat:Deine Software ist also korrekt.
Sehe ich auch so, also bleibt eigentlich nur die Hardware, soll heißen die Taster.
Sind ja teilweise klapprige Teile. Entweder andere Taster benutzen oder, um solche Situationen von vornherein abzublocken, die bounce - lib benutzen.
Siehe hier: http://playground.arduino.cc/code/bounce

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2013, 22:58
Beitrag #8
RE: Wo liegt der Fehler?
DANKE an Alle!

Habe den Fehler gefunden, es war die Hardware.
Es ist mir auch fast peinlich, aber ich habe einen Kabel falsch gesetzt!

Ich habe den Vorschlag von Pull-Down auf Pull-Up umzusteigen angenommen!
Es funzt!

Nochmal vielen Dank!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Nachtwächter - Fehler im Sketch juergen001 15 874 24.04.2018 06:54
Letzter Beitrag: juergen001
  Hilfe bei diesen Fehler MrMagoo 22 1.066 06.02.2018 20:03
Letzter Beitrag: hotsystems
  <RCReceive.h> Fehler do1xxy 7 507 13.01.2018 13:21
Letzter Beitrag: do1xxy
  Arduino zu MySQL via Wifi Fehler beim compilieren Franzel007 21 1.162 05.01.2018 20:24
Letzter Beitrag: Tommy56
  Neuling Fehler beim Kompilieren guenni71 6 918 26.11.2017 16:48
Letzter Beitrag: hotsystems
  M enue System zeigt Fehler rev.antun 11 1.014 23.11.2017 12:22
Letzter Beitrag: rev.antun
  Fehler in gleitkomma Berechnung BennIY 5 567 04.11.2017 19:10
Letzter Beitrag: Tommy56
  Suche Hilfe für den Fehler in der Datei Holzwurm56 5 615 01.11.2017 14:26
Letzter Beitrag: Holzwurm56
  Compiler Fehler Harti 8 1.058 16.06.2017 17:51
Letzter Beitrag: Harti
  Fehler bei Zeitmessung Fox 15 1.437 24.05.2017 09:19
Letzter Beitrag: SkobyMobil

Gehe zu:


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