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();
}