LEDs PORT/DDR - Lösung

int Leuchtdauer = 200;

void setup() 
{
  DDRD = B11111000;
}

void loop()
{
  // Lauflicht hin Start mit LED Pin 7
  PORTD = B10000000;
  delay(Leuchtdauer);
  for (int i = 0; i < 4; i++)
  {
    /*
      1 Bit nach rechts schieben
      B01000000 -> Pin 6
      B00100000 -> Pin 5
      B00010000 -> Pin 4
      B00001000 -> Pin 3
    */
    PORTD = PORTD >> 1;
    delay(Leuchtdauer);
  }

  // Lauflicht zurück Start mit LED Pin 3
  PORTD = B00001000;
  delay(Leuchtdauer);
  for (int i = 0; i < 4; i++)
  {
    /*
      1 Bit nach links schieben
      B00010000 -> Pin 4
      B00100000 -> Pin 5
      B01000000 -> Pin 6
      B10000000 -> Pin 7
    */
    PORTD = PORTD << 1;
    delay(Leuchtdauer);
  }
  delay(Leuchtdauer);
  
  // alle LED
  PORTD = B11111000;
  delay(1000);

  // alle aus
  PORTD = B00000000;
  delay(1000);

  // 7 5 3 leuchten
  PORTD = B10101000;
  delay(1000);

  // umkehren die inneren LEDs leuchten
  PORTD = ~PORTD;
  delay(1000);

  // die beiden äußeren
  PORTD = B10001000;
  delay(1000);

  // die inneren
  PORTD = ~PORTD;;
  delay(1000);
  
  // nur die mittlere
  PORTD = B00100000;
  delay(1000);

  // alle aus
  PORTD = B00000000;
  delay(1000);

}

Letzte Aktualisierung: 22. Nov 2023 @ 9:45