Fade LED: Der Arduino als analoger Output: Unterschied zwischen den Versionen

Aus hyperdramatik
Zur Navigation springen Zur Suche springen
Zeile 37: Zeile 37:
// einmalig zu Beginn des Programms muss festgelegt werden:
// einmalig zu Beginn des Programms muss festgelegt werden:


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

Version vom 25. Juni 2021, 15:09 Uhr

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, 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 analog 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);
}