Das ganze Leben ist bekanntlich ein Quiz und unser Arduino wird jetzt zu einem Binärzahlenquiz…

Programmierung:

#define DATA 6
#define LATCH 8
#define CLOCK 10

int number =0;
int answer = 0;

void setup()
{
pinMode(LATCH, OUTPUT);
pinMode(CLOCK, OUTPUT);
pinMode(DATA, OUTPUT);
Serial.begin(9600);
randomSeed(analogRead(0));
displayNumber(0);
}

void displayNumber(byte a)
{
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, MSBFIRST, a);
digitalWrite(LATCH, HIGH);
}

void getAnswer()
{
int z = 0;
Serial.flush();
while (Serial.available() == 0)
{
}


while (Serial.available() > 0)
{
answer = answer * 10;

z = Serial.read() -'0';

answer = answer + z;

delay(5);
}

Serial.print("Sie haben eingegeben: ");
Serial.println(answer);
}


void checkAnswer()
{
if (answer ==number)
{
Serial.print("Richtig! ");
Serial.print(answer, BIN);
Serial.print(" entspricht ");
Serial.println(number);
Serial.println();
}

else
{
Serial.print("Falsch! ");
Serial.print(number, BIN);
Serial.print(" entspricht ");
Serial.println(number);
Serial.println();
}
answer = 0;
delay(10000);

}

void loop()
{
number = random(256);
displayNumber(number);
Serial.println("Was ist die dezimale Entsprechung der angezeigten Binärzahl? ");
getAnswer();
checkAnswer();
}

Von Torsten