Wür­feln mit LEDs

void setup()
{
  // Pins 7 bis 3 als OUTPUT definieren
  DDRD = B11111000;

  // Pins 8 bis 9 als OUTPUT definieren
  DDRB = B00000011;

  // Pin 13 PULLUP-Widerstand einschalten
  PORTB = B00100000;

  // Zufallsgenerator starten
  randomSeed(analogRead(A0));

  // Test ob alle LEDs leuchten
  PORTD = B11111000;
  PORTB = B00000011;
}

void loop()
{
  boolean TASTER;
  int Minimum = 1;
  int Maximum = 7;

  /*
    Port B lesen
    Bit 13 wird ausgeblendet (PINB & B00100000),
    damit der Wert gelesen werden kann
  */
  TASTER = PINB & B00100000;
  
  // Taster gedrückt, Pin 13 hat den Wert 0 (false)
  if (!TASTER)
  {
    delay(200);
    int Zahl = random(Minimum, Maximum);

    switch (Zahl)
    {
      case 1:
        AlleAus();
        PORTD = B01000000;
        break;

      case 2:
        AlleAus();
        PORTD = B10100000;
        break;

      case 3:
        AlleAus();
        PORTD = B11100000;
        break;

      case 4:
        AlleAus();
        PORTD = B10101000;
        PORTB = B00000010;
        break;

      case 5:
        AlleAus();
        PORTD = B11101000;
        PORTB = B00000010;
        break;

      case 6:
        AlleAus();
        PORTD = B10111000;
        PORTB = B00000011;
        break;

      default:
        break;
    }
  }
}

void AlleAus()
{
  PORTD = 0;
  PORTB = 0;
}

Letzte Aktualisierung: 25. Jul 2023 @ 22:02