LEDs schalten mit PORT/DDR



Seite als PDF

Die LEDs sollen als Lau­flicht und in ver­schiede­nen Kom­bi­na­tion leucht­en:

  • Lau­flicht hin und zurück
  • alle LEDs
  • die LEDs 7 5 3
  • die bei­den inneren LEDs
  • die bei­den äußeren LEDs
  • alle außer den äußeren LEDs
  • nur die mit­tlere

So sieht es aus:

Die dig­i­tal­en und die analo­gen Pins des Arduinos sind in drei Grup­pen aufgeteilt:

Funk­tio­nen wie dig­i­tal­Write() und dig­i­tal­Read() sind rel­a­tiv langsam in der Aus­führung und manch­mal wer­den Pro­gramme mit vie­len Ein- oder Aus­gän­gen kom­plex und schw­er überschaubar.Deshalb ist es oft über­sichtlich­er die Pins mith­il­fe der Ports zu definieren und zu schal­ten.

Es existieren drei soge­nan­nte Reg­is­ter:

Reg­is­terFunk­tion
DDR(D,B,C)Pins als INPUT = 0 oder als OUTPUT = 1 definieren
PORT(D,B,C) Pins als HIGH = 1 oder als LOW = 0 fes­tle­gen
PIN(D,B,C)gibt den Zus­tand der Pins an, die im DDR-Reg­is­ter auf Input geset­zt wur­den

Das Reg­is­ter wird jew­eils mit dem Namen des Ports (D, B oder C) ergänzt.
Beim Zugriff auf die Ports wird jew­eils ein Bit geset­zt. Sein Wert ist entwed­er 1 = an, oder 0 = aus

Beispiele:

Dig­i­tale Pins 7, 6, 5, 4 und 3 als OUTPUT set­zen

DDRD = B11111000;

Dig­i­tale Pins 7, 6, 5, 4 und 3 auf HIGH set­zen:

PORTD = B11111000;

Taster an Pin 11 als INPUT set­zen

DDRB = B00001000;

Pin 11 auf HIGH set­zen

PORTB = B00001000;

Einzelne Bits wer­den mit den Oper­a­toren « eine Posi­tion nach links und » eine Posi­tion nach rechts ver­schoben.

Nach rechts schieben:

PORTD = PORTD » 1;

PORTD = PORTD » 1;

PORTD = PORTD » 1;

PORTD = PORTD » 1;

PORTD = PORTD » 1;

Nach links schieben:

PORTD = PORTD « 1;

PORTD = PORTD « 1;

PORTD = PORTD « 1;

PORTD = PORTD « 1;

PORTD = PORTD « 1;

Bit­ma­nip­u­la­tion

Der Para­me­ter ~ kehrt den Wert eines Bits um:

// LEDs an den Pins 7 5 3 leucht­en
PORTD = B10101000;

// Werte umkehren, aus 0 wird 1 und aus 1 wird 0
PORTD = ~PORTD;
// PORTD hat jet­zt den Wert B01010111
// -> Die LEDs an den Pins 6 4 leucht­en (Pins 2 bis 0 sind nicht belegt)

Benötigte Bauteile:

  • 5 LEDs
  • 3 Wider­stände 220 Ω (gelbe, rote und grüne LED)
  • 2 Wider­stände 100 Ω (blaue und weiße LED)
  • Leitungs­drähte

Beachte die ⇒Vor­wider­stände ver­schieden­er LEDs

Baue die Schal­tung auf:
(Fahre mit der Maus über das Bild, um die Beze­ich­nun­gen der Bauteile zu sehen)

Das Pro­gramm. Beachte die Kom­mentare.


Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ähnliche Projekte


Letzte Aktualisierung: Dez. 11, 2025 @ 21:32