Banner Ausblenden
Kleines Logo

Willkommen auf PSI-Online

Punktezähler

Punktezähler:

-> nächste Idee wäre, mit einer Library ein 4-Ziffern-Display anzusteuern, um direkt 2 Anzeigen für 2 Spieler zu haben, die bis 99 zählen können.

 

Das Programm:

 

/* Max Wolter, April 2020, mit diesem Programm wird über zwei Knöpfe ein Display angesteuert, am Anfang steht eine Null auf dem 7-Segment-Display, bei jedem Druck auf den "Punkte-Knopf", wird die Zahl um 1 erhöht. drückt man auf den "Reset-Knopf", wird der Wert auf 0 zurück gesetzt

*/

int unten=3;                                  // alle PINs benennen
int mitte=6;
int oben=8;
int untenlinks=2;
int untenrechts=4;
int obenrechts=9;
int obenlinks=7;
int punkt=5;
int knopf=10;
int reset=11;
int knopfstatus;
int resetstatus;



void setup() {
  // put your setup code here, to run once:
pinMode(2, OUTPUT);                           // PIN wird als Output definiert
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, INPUT);                           // PIN wird als Input definiert
pinMode(11,INPUT);

digitalWrite(knopf,HIGH);                     // Pull-Up Wiederstand wird aktiviert
digitalWrite(reset,HIGH);


anfangspunktestand();                             //Am Anfang soll "0" auf dem Display zu sehen sein
}


void eins(){
digitalWrite(obenrechts, HIGH);              //Auf dem 7-Segment-Display soll eine "1" zu sehen sein
digitalWrite(untenrechts, HIGH);


resetstatus=digitalRead(reset);              // frage den Status vom Resetknopf ab

if (resetstatus==LOW){                              // wenn der Knopf gedrückt wurde
 
  anfangspunktestand();                            // kehre zum Punktestand 0 zurück
}

else {                                                             // wenn er nicht gedrückt würde
knopfstatus=digitalRead(knopf);              // Frage den Status vom Punkteknopf ab

if (knopfstatus==LOW)                               // wenn der Knopf gedrückt wurde
{
  zwei();                                                          // wechsle zu Punktestand 2
}

else {                                                             // wenn er nicht gedrückt würde
  eins();                                                          // kehre zum Anfang von Punktestand 1 zurück
}
}

}





void zwei(){                                                   // siehe "void eins()"
digitalWrite(unten, HIGH);
digitalWrite(untenlinks, HIGH);
digitalWrite(mitte, HIGH);
digitalWrite(obenrechts, HIGH);
digitalWrite(oben, HIGH);


resetstatus=digitalRead(reset);

if (resetstatus==LOW){
 
  anfangspunktestand();
}

else {
knopfstatus=digitalRead(knopf);

if (knopfstatus==LOW)
{
  drei();
}

else {
  zwei();
}
}

  }



void drei(){                                                   // siehe "void eins()"
digitalWrite(unten, HIGH);
digitalWrite(untenrechts, HIGH);
digitalWrite(untenlinks, HIGH);
digitalWrite(mitte, HIGH);
digitalWrite(obenrechts, HIGH);
digitalWrite(oben, HIGH);


resetstatus=digitalRead(reset);

if (resetstatus==LOW){
 
  anfangspunktestand();
}

else {
knopfstatus=digitalRead(knopf);

if (knopfstatus==LOW)
{
 vier();
}

else {
  drei();
}
}

  }



void vier(){                                                     // siehe "void eins()"
digitalWrite(obenrechts, HIGH);
digitalWrite(untenrechts, HIGH);
digitalWrite(obenlinks, HIGH);
digitalWrite(mitte, HIGH);


resetstatus=digitalRead(reset);

if (resetstatus==LOW){
 
  anfangspunktestand();
}

else {
knopfstatus=digitalRead(knopf);

if (knopfstatus==LOW)
{
  fuenf();
}

else {
  vier();
}
}

  }



void fuenf(){                                                 // siehe "void eins()"
digitalWrite(unten, HIGH);
digitalWrite(untenrechts, HIGH);
digitalWrite(mitte, HIGH);
digitalWrite(obenlinks, HIGH);
digitalWrite(oben, HIGH);


resetstatus=digitalRead(reset);

if (resetstatus==LOW){
 
  anfangspunktestand();
}

else {
knopfstatus=digitalRead(knopf);

if (knopfstatus==LOW)
{
  sechs();
}

else {
  fuenf();
}
}

  }



void sechs(){                                                 // siehe "void eins()"
digitalWrite(unten, HIGH);
digitalWrite(untenrechts, HIGH);
digitalWrite(untenlinks, HIGH);
digitalWrite(mitte, HIGH);
digitalWrite(obenlinks, HIGH);
digitalWrite(oben, HIGH);


resetstatus=digitalRead(reset);

if (resetstatus==LOW){
 
  anfangspunktestand();
}

else {
knopfstatus=digitalRead(knopf);

if (knopfstatus==LOW)
{
  sieben();
}

else {
  sechs();
}
}

  }




  void sieben(){                                                 // siehe "void eins()"
digitalWrite(untenrechts, HIGH);
digitalWrite(obenrechts, HIGH);
digitalWrite(oben, HIGH);


resetstatus=digitalRead(reset);

if (resetstatus==LOW){
 
  anfangspunktestand();
}

else {
knopfstatus=digitalRead(knopf);

if (knopfstatus==LOW)
{
  acht();
}

else {
  sieben();
}
}

  }



  void acht(){                                             // siehe "void eins()"
digitalWrite(unten, HIGH);
digitalWrite(untenrechts, HIGH);
digitalWrite(untenlinks, HIGH);
digitalWrite(mitte, HIGH);
digitalWrite(obenlinks, HIGH);
digitalWrite(oben, HIGH);
digitalWrite(obenrechts, HIGH);


resetstatus=digitalRead(reset);

if (resetstatus==LOW){
 
  anfangspunktestand();
}

else {
knopfstatus=digitalRead(knopf);

if (knopfstatus==LOW)
{
  neun();
}

else {
  acht();
}
}

  }


 
void neun(){                                                 // siehe "void eins()"
digitalWrite(unten, HIGH);
digitalWrite(untenrechts, HIGH);
digitalWrite(obenrechts, HIGH);
digitalWrite(mitte, HIGH);
digitalWrite(obenlinks, HIGH);
digitalWrite(oben, HIGH);


resetstatus=digitalRead(reset);

if (resetstatus==LOW){
 
  anfangspunktestand();
}

else {
knopfstatus=digitalRead(knopf);

if (knopfstatus==LOW)
{
  anfangspunktestand();
}

else {
  neun();
}
}

  }



void anfangspunktestand(){                      // siehe "void eins()"
digitalWrite(unten, HIGH);
digitalWrite(untenrechts, HIGH);
digitalWrite(untenlinks, HIGH);
digitalWrite(obenrechts, HIGH);
digitalWrite(obenlinks, HIGH);
digitalWrite(oben, HIGH);

resetstatus=digitalRead(reset);

if (resetstatus==LOW){
 
  anfangspunktestand();
}

else {
knopfstatus=digitalRead(knopf);

if (knopfstatus==LOW)
{
  eins();
}

else {
  anfangspunktestand();
}
}

   }

Erstellt: Max Wolter (26.04.2020) Letzte Änderung: Max Wolter (27.04.2020)