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
  Fehler in meinem Programm Franz54 7 162 01.12.2016 23:58
Letzter Beitrag: hotsystems
  Fehler im Programmablauf binderj1 14 357 10.10.2016 10:29
Letzter Beitrag: StephanBuerger
  Fehler beim Kompilieren binderj1 5 295 03.10.2016 21:27
Letzter Beitrag: hotsystems
Smile Simpler Fehler bei MAP? malsehen 8 229 02.10.2016 19:46
Letzter Beitrag: malsehen
  Fehler beim Speichern von Projekten Manni66 16 688 23.08.2016 10:05
Letzter Beitrag: hotsystems
  Ausgabe druckt immer 2 Werte anstatt nur einen. Finde den Fehler nicht TimeMen 24 743 02.07.2016 14:18
Letzter Beitrag: hotsystems
  Adafruit SD-master / logger shield: Fehler beim 2. Kompilieren kl-ing 3 337 06.06.2016 16:07
Letzter Beitrag: Bitklopfer
  Fehler beim Kompilieren Rudi 4 901 05.02.2016 19:46
Letzter Beitrag: Rudi
  Fehler in WCharacter.h beim Kompilieren sfl 0 357 04.02.2016 14:52
Letzter Beitrag: sfl
  LCD Display Fehler s_fr 2 639 30.01.2016 10:21
Letzter Beitrag: s_fr

Gehe zu:


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