//4 LED die einen binär Zähler darstellen werden mit zwei Tastern angesteuert
//einen der rauf und einen der runterzählt.
//Zählerwert soll auch am seriellen monitor ausgegeben.
//Autor: Jonas Wackernell
int up = 2; //raufzählen
int down = 3; //runterzählen
int status_up; //status des ersten up Tasters
int status_down; //status des ersten down Tasters
int led1 = 10;
int led2 = 11;
int led3 = 12;
int led4 = 13;
int z;
void setup() {
z = 0; // zähler Variable
pinMode(10, OUTPUT); //Ausgang
pinMode(11, OUTPUT); //Ausgang
pinMode(12, OUTPUT); //Ausgang
pinMode(13, OUTPUT); //Ausgang
pinMode(2, INPUT_PULLUP); //Eingang gepullupt
pinMode(3, INPUT_PULLUP); //Eingang gepullupt
Serial.begin(9600); //beginn des Seriellen Monitors
}
void loop() {
status_up = !digitalRead(up); // Einlesen des up Tasters
status_down = !digitalRead(down); // Einlesen des down Tasters
//Wenn up-Tater gedrückt wird soll z um 1 erhöht werden und eine LED entsprechend der Zahl z leuchten
if(status_up == 1){
z++;
if(z >= 0b1111){
z = 0;
}
}
//Wenn Down Taste gedrückt wird soll z um 1 verringert werden und eine LED entsprechend der Zahl z leuchten
if(status_down == 1){
z--;
if(z < 0){
z = 0b1111;
}
}
Serial.println(z);
delay(150);
light(&z);
}
void light (int *z){
digitalWrite(led1, *z & B0001);
digitalWrite(led2, *z & B0010);
digitalWrite(led3, *z & B0100);
digitalWrite(led4, *z & B1000);
}