Forum: Mikrocontroller und Digitale Elektronik Galtonbrett - Punktestandanzeige


von Moritz (Gast)


Angehängte Dateien:

Lesenswert?

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

von Frust (Gast)


Lesenswert?

Ich sehe mir Prosaschaltpläne nicht mehr an und wenn dann das Bild bei 
meiner langsamen DSL auch noch langsam anfängt sich aufzubauen ...

von STK500-Besitzer (Gast)


Lesenswert?

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.

von lüsterklemme (Gast)


Lesenswert?


von Moritz (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Walter S. (avatar)


Lesenswert?

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!

von Netzteil (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.