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
  Neuling Fehler beim Kompilieren guenni71 6 282 26.11.2017 16:48
Letzter Beitrag: hotsystems
  M enue System zeigt Fehler rev.antun 11 454 23.11.2017 12:22
Letzter Beitrag: rev.antun
  Fehler in gleitkomma Berechnung BennIY 5 357 04.11.2017 19:10
Letzter Beitrag: Tommy56
  Suche Hilfe für den Fehler in der Datei Holzwurm56 5 386 01.11.2017 14:26
Letzter Beitrag: Holzwurm56
  Compiler Fehler Harti 8 683 16.06.2017 17:51
Letzter Beitrag: Harti
  Fehler bei Zeitmessung Fox 15 871 24.05.2017 09:19
Letzter Beitrag: SkobyMobil
  Seltsamer Fehler bei Vergleichsoperation ardu_arne 14 978 22.01.2017 20:35
Letzter Beitrag: Binatone
  Fehler beim Hochladen steyr 24 2.597 16.12.2016 07:52
Letzter Beitrag: hotsystems
  Fehler in meinem Programm Franz54 7 634 01.12.2016 23:58
Letzter Beitrag: hotsystems
  Fehler im Programmablauf binderj1 14 1.050 10.10.2016 10:29
Letzter Beitrag: StephanBuerger

Gehe zu:


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