Fade LED: Der Arduino als analoger Output

Aus hyperdramatik
Zur Navigation springen Zur Suche springen

Analoger Output: Fade LED

Aufbau

In diesem Beispiel nutzen wir den Arduino als analogen Output, um eine LED schrittweise zu dimmen. Das positive, längere Bein (Anode) der LED wird dazu über einen 220 Ohm Widerstand an Pin 9 angeschlossen, das kürzere, negative Bein der LED (Kathode) an die Ground Pin des Arduino. Wir benutzen die PWD Pins des Arduino: 3, 5, 6, 9, 10, 11 um durch Pulse Width Modulation ein analoges Output Signal zu steuern, das die LED runter und anschließend wieder hoch dimmt.

Schaltplan & Reallife Aufbau

LED mit 220 Ohm Widerstand
LED Aufbau mit 0.2 kOhm Widerstand auf Breadboard



Steckplan

LED an PWD Pin 9 mit 220 Ohm Widerstand

Pulse Width Modulation Pin

Wenn du mehr über Pulse Width Modulation lernen möchtest, die wir nutzen, um den Arduino als scheinbar analogen Output zu verwenden, kannst du dir diesen Artikel anschauen: https://learn.sparkfun.com/tutorials/pulse-width-modulation/all Auf der Website wird einfach und genau erklärt, wie das PWD Signal im Vergleich zu einem analogen gedimmten Signal entsteht und wofür es angewendet werden kann.










Code

int led = 9;           // Die Pin, an die unsere LED angeschlossen ist, wird als Variable led festgelegt
int helligkeit = 0;    // Eine Variable, die die Helligkeit unserer Pin beschreibt
int fadeAmount = 5;    // Eine Variable, die die Helligkeitsveränderung (und damit die Intensität) des Fade In und Fade Outs beschreibt

// einmalig zu Beginn des Programms muss festgelegt werden:

void setup() {
  // Pin 9 ist ein Output!
  pinMode(led, OUTPUT);
}

// im Anschluss läuft das Programm im Loop unendlich weiter: 

void loop() {
  // stelle die Helligkeit von led "analog" ein:
  analogWrite(led, helligkeit);

  // im nächsten Schritt verändere die Helligkeit um die Menge fadeAmount:
  helligkeit = helligkeit + fadeAmount;

  // kehre den Wert des Fade um, sobald du am maximalen/minimalen Ende der analogen Werteskala angelangt bist:
  // Fade In wird,sobald die LED maximal hell ist zu Fade Out und umgekehrt
  if ( helligkeit <= 0 || helligkeit >= 255) {
    fadeAmount = -fadeAmount;
  }
  // warte für 30 Millisekunden, bis du zum nächsten Dimmschritt weitergehst
  // dieser Wert bestimmt die Geschwindigkeit des Fade In/Out
  delay(30);
}

Die LED wird also bis zur maximalen Helligkeit heller und anschließend wieder dunkler solange das Programm läuft, dadurch, dass wir die analogen Werte der PWD Pin verändern und damit die Spannung an dieser Pin.