Beleg3INFO.ino 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. /*
  2. Arduino Spiel
  3. Autor: Johannes Tümler
  4. Letzte Änderung: 27.06.2020
  5. Zweck: Beleg 3 Hilfscode für den Start
  6. */
  7. unsigned char gesamtpunktzahl;
  8. byte x;
  9. const int red = 13, blue = 11, green = 12;
  10. void setup()
  11. {
  12. Serial.begin(9600);
  13. gesamtpunktzahl = 0;
  14. pinMode(red, OUTPUT);
  15. pinMode(green, OUTPUT);
  16. pinMode(blue, OUTPUT);
  17. pinMode(10, INPUT_PULLUP);
  18. pinMode(9, INPUT_PULLUP);
  19. pinMode(8, INPUT_PULLUP);
  20. pinMode(7, INPUT_PULLUP);
  21. pinMode(6, INPUT_PULLUP);
  22. pinMode(5, INPUT_PULLUP);
  23. pinMode(4, INPUT_PULLUP);
  24. pinMode(3, INPUT_PULLUP);
  25. pinMode(2, INPUT_PULLUP);
  26. pinMode(1, INPUT_PULLUP);
  27. pinMode(0, INPUT_PULLUP);
  28. resetAllPins();
  29. }
  30. void resetAllPins()
  31. {
  32. // alle Pins auf definierte Werte setzen (sonst wissen wir nicht, welchen Wert sie gerade haben.)
  33. digitalWrite(red, LOW);
  34. digitalWrite(green, LOW);
  35. digitalWrite(blue, LOW);
  36. // Alle nachfolgenden Pins werden auf HIGH gesetzt, sodass sie auf ein GND/Masse-Signal reagieren können.
  37. digitalWrite(0, HIGH);
  38. digitalWrite(1, HIGH);
  39. digitalWrite(2, HIGH);
  40. digitalWrite(3, HIGH);
  41. digitalWrite(4, HIGH);
  42. digitalWrite(5, HIGH);
  43. digitalWrite(6, HIGH);
  44. digitalWrite(7, HIGH);
  45. digitalWrite(8, HIGH);
  46. digitalWrite(9, HIGH);
  47. digitalWrite(10, HIGH);
  48. }
  49. void blink(const int *pin)
  50. {
  51. digitalWrite(*pin, HIGH);
  52. delay(500);
  53. digitalWrite(*pin, LOW);
  54. delay(500);
  55. }
  56. void loop()
  57. {
  58. if(digitalRead(0) == HIGH)
  59. {
  60. blink(&green);
  61. blink(&green);
  62. blink(&red);
  63. blink(&red);
  64. blink(&red);
  65. digitalWrite(0,LOW);
  66. }
  67. if (digitalRead(2) == LOW)
  68. {
  69. digitalWrite(2,HIGH);
  70. level1();
  71. }
  72. if (digitalRead(3) == LOW)
  73. {
  74. digitalWrite(3,HIGH);
  75. level2();
  76. delay(1000);
  77. }
  78. if (digitalRead(5) == LOW) // Hier im Beispiel: Wenn ein Masse-Signal / GND an Pin 5 liegt, dann blinkt es.
  79. {
  80. blink(&red);
  81. digitalWrite(5, HIGH);
  82. }
  83. resetAllPins();
  84. }
  85. void level1()
  86. {
  87. Serial.print("Level 1");
  88. if(x == 0 && y == 0){
  89. x = random(1,6);
  90. y = random(1,6);
  91. }