LCD Display mit PWM Dimmer Funktion

Die Helligkeit der Hintergrundbeleuchtung beim LCD Display kann mit Hilfe der PWM – Puls Weiten Modulation – Funktion eingestellt werden.

Die Stromaufnahme meines Displays beträgt ca. 19mA gemessen. Der Arduino Mega ist für maximal 40mA Ausgangsstrom an den Pins ausgelegt. Das heisst wir sind weit im grünen Bereich und können die PWM Funktion des Arduino direkt für das Dimmen der LCD Hintergrundbeleuchtung verwenden.

Basierend auf der LCD 4×20 Schaltung wird eine Helligkeitseinstellung hinzugefügt.

Die Hardware

Der K Anschluss (Kathode / Minus) der Displaybeleuchtung wird über einen 10 Ohm Widerstand an den Arduino PWM Pin 6 gelegt ansonsten ist die Verkabelung genau wir bei der LCD 4×20 Schaltung.
Achtung: Die Logik ist jetzt umgekehrt, das heißt immer wenn der Pin 6 aus ist (0V) ist die LED Beleuchtung an. PWM 0 bedeutet also volle Helligkeit und bei einem PWM Wert von 255 ist die Beleuchtung aus. Die halbe Helligkeit wird bei einem Wert von ca. 200 erreicht.

Die Software

Hier der Arduino Programmcode mit Kommentaren:

// 4x20 LCD Display Ausgabe mit PWM Dimmer
//
// Diese Bauteile verwendet werden: 
// Arduino Mega 2560 (auch für andere Arduinos geeignet)
// LCD Display mit 4 Zeilen mit je 20 Zeichen
// Widerstände: 1k und 10 Ohm
// Poti: ca. 10 kOhm
//
// Matthias Busse 22.4.2013 Version 1.1

/* LCD Display Anschlüsse:
LCD > Arduino
-------------
VSS > GND
VDD > +5V
V0  > 10k Poti + 1kOhm Widerstand > GND
RS  > Pin 12
R/W > Pin 13
E   > Pin 11
D4  > Pin 7
D5  > Pin 8
D6  > Pin 9
D7  > Pin 10 
A   > +5V
K   > 10 Ohm Widerstand > PIN 6 */

#include < LiquidCrystal.h>
LiquidCrystal lcd(12, 13, 11, 7, 8, 9, 10);
int belpin=6; // Pin für die Beleuchtung

void setup()
{
  lcd.begin(20,4);
  lcd.clear();
  lcd.setCursor(0,0); // Cursor Zeile 0 setzen
  lcd.print("4x20 LCD TESTAUSGABE"); // Text ausgeben
  lcd.setCursor(0,3); // Cusor Zeile 3
  lcd.print("Matthias Busse V 1.0");
  pinMode(belpin, OUTPUT); // PWM Pin ist ein Ausgang
}

void loop()
{
  analogWrite(belpin, 200); // Beleuchtung 0(hell) - 255(dunkel)
  lcd.setCursor(3,1); // Zeile 1 Sekunden ausgeben
  lcd.print("Sekunden: "); 
  lcd.setCursor(13,1);
  lcd.print(millis()/1000); // die Sekunden seit Programmstart
  delay(994); // nur fast 1000 ms warten weil das Programm auch ca. 6 ms benötigt
}

Hilfreiche Links

Arduino PWM Erklärung
Arduino analogWrite()

Teil 1 < Ein LCD Display 4×20 am Arduino betreiben.
> Frequenzzähler mit LCD Display

Ein Gedanke zu „LCD Display mit PWM Dimmer Funktion

  1. Pingback: Den Frequenzzähler mit LCD Display auf der Platine aufgebaut. | Shelvin – Elektronik ausprobiert und erläutert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.