Hallo, ich habe ein Galtonbrett( http://de.wikipedia.org/wiki/Galtonbrett ) gebaut, bei dem der Punktestand an einem LCD angezeigt werden soll. Jeder Schacht besitzt jedoch eine andere Punktzahl. Ich verwende einen Arduino Uno duemillanove. Ich habe 14 Schächte, auf die die Punktzahlen symmetrisch verteilt sind, also sieben verschiedene Punktzahlen. Ich hatte das Programm getestet bevor ich alles zusammengebaut und verlötet habe und da hat alles funktioniert, wenn ich jetzt den fünften und den siebten wert freigebe, so wird von selbst begonnen zu zählen und nicht mehr aufgehört. Alle anderen Schächte funktionieren tadellos. Ich habe je Schalter - da symmetrisch angeordnet- auf einen input geklemmt, die 6 analogen, die der arduino hat und einen digitalen. Zusätzlich ist jeder Input mit einem Pull down widerstand von 100 kOhm auf Masse gelegt. bezüglich der +5V sind die Schalter in reihe geschaltet. #include <LiquidCrystal.h> LiquidCrystal lcd(7, 8, 9, 10, 11, 12); int Punktestand; void setup() { pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(A3, INPUT); pinMode(A4, INPUT); pinMode(A5, INPUT); //pinMode(PIN0,INPUT); } void loop(){ lcd.begin(16,2); int WertS1 = 1; int WertS2 = 2; int WertS3 = 3; int WertS4 = 4; int WertS5 = 5; int WertS6 = 6; int WertS7 = 7; int Schalter1 = digitalRead(A0); int Schalter2 = digitalRead(A1); int Schalter3 = digitalRead(A2); int Schalter4 = digitalRead(A3); //int Schalter5 = digitalRead(A4); int Schalter6 = digitalRead(A5); int Schalter7 = digitalRead(PIN0); lcd.clear(); lcd.print("Punktestand:"); lcd.setCursor(0, 1); if ( Schalter1 == HIGH ){ Punktestand += WertS1; } else if ( Schalter2 == HIGH ) { Punktestand += WertS2; } else if ( Schalter3 == HIGH ) { Punktestand += WertS3; } else if ( Schalter4 == HIGH ) { Punktestand += WertS4; } /*else if ( Schalter5 == HIGH ) { Punktestand += WertS5; }*/ else if ( Schalter6 == HIGH ) { Punktestand += WertS6; } //else if ( Schalter7 == HIGH ) { // Punktestand += WertS7; //} lcd.print(Punktestand); delay(100); } Könnt ihr mir sagen wo der Hase begraben liegt. Oder habt ihr verbesserungsvorschläge für meinen Quelltext? Vielen dank im vorraus
Ich sehe mir Prosaschaltpläne nicht mehr an und wenn dann das Bild bei meiner langsamen DSL auch noch langsam anfängt sich aufzubauen ...
Moritz schrieb: > Zusätzlich ist jeder Input mit einem Pull down widerstand von 100 kOhm > auf Masse gelegt. bezüglich der +5V sind die Schalter in reihe geschaltet. Ich würde vermuten, dass du statt "in Reihe" "parallel" meinst. Den Arduino kenne ich leider nicht, aber die Beschaltung mit ein Pulldown-Widerstand ist eher unüblich, da die Controller alle einen internen Pullup besitzen. So, jetzt zu deinem Problem: Ich vermute, dass deine "Problem"-Schalter durch einen Kurzuschluss überbrückt werden. Du solltest mal die Verbindung über die Schalter überprüfen.
Als ich den Pull-down noch nicht hatte, waren die microschalter gegen Masse, +5V und den entsprechenden Pin gelegt, da ich jedoch immer zwei schalter an einem Pin hatte, gab es bei dem betätigen des Schalters immer einen kurzen. Deshalb wurde die Masse dann weggelassen und der Pull-down angeschlossen. Als ich zu testzwecken lediglich zwei Schalter angeschlossen hatte, wurde auf den restlichen 5 munter hochgezählt. Dies ist bei Schacht 5 & 7 wieder der Fall.
Moritz schrieb: > Als ich den Pull-down noch nicht hatte, waren die microschalter gegen > Masse, +5V und den entsprechenden Pin gelegt, da ich jedoch immer zwei > schalter an einem Pin hatte, gab es bei dem betätigen des Schalters > immer einen kurzen. SCHALTPLAN!
Wie wahrscheinlich ist es, das jemand von uns bei deinen verbalen Beschreibungen durchblickt ? Sicher < 1 ;-) Bitte male doch mal ein Schaltbild. Danke
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.