Punktezähler
Punktezähler:
- zählt Punkte für einen (bis 9)
- man drückt auf den Punkteknopf und es kommt ein Punkt dazu
- man drückt auf den Resetknopf und ist wieder bei 0
- wenn zwei Leute die Aufbaute besitzen, kann man gegeneinander spielen
- läuft auf dem Arduino Mega
- funktioniert ohne Library
- kursiv heißt nicht geprüft
- bisher wurde nur das Display geprüft, nicht das Zählen der Punkte
-> 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();
}
}
}