LCD-Modul – Frage: Versorgungsspannung / Helligkeit

Hallo Zusammen!

Ich habe meinen Arduino UNO mit einem Schraub-Anschluss-Shield und einem LCD-Display-Modul mit Tasten „verheiratet“.

[https://www.reichelt.de/arduino-shield-screw-shield-ard-shd-screw-p191222.html?CCOUNTRY=445&LANGUAGE=de&trstct=pos_0&nbc=1&&r=1]
(https://www.reichelt.de/arduino-shield-screw-shield-ard-shd-screw-p191222.html?CCOUNTRY=445&LANGUAGE=de&trstct=pos_0&nbc=1&&r=1)

https://www.voelkner.de/products/5432410/TRU-COMPONENTS-Display-Modul-5.6cm-2.22-Zoll-16-x-2-Pixel-Passend-fuer-Entwicklungskits-Arduino-mit-Hintergrundbeleuchtung.html

Funktioniert soweit auch alles super bei Betrieb über USB-Kabel.

Jetzt möchte ich das natürlich auch ohne Laptop betreiben. Also 9VDC auf Vin gegeben.
Ergebnis: Alles extrem hell, Anzeige nicht mehr lesbar -> schnell ausgesteckt bevor etwas abraucht.

Fragen: Darf ich diese Kombination überhaupt so betreiben, ohne dass das Display oder die Hintergrundbeleuchtung kaputt geht?? (9V an Vin)

Wenn ja: Kann man die Helligkeit über einen Wert an D10 reduzieren? (D10 steuert ja lt. Datenblatt die Hintergrundbeleuchtung). In den Beispielprogrammen wird aber nirgends D10 im Programm Listing angesprochen oder als Ein- oder Ausgang definiert).
Z.B. hier:
https://www.elecrow.com/wiki/index.php?title=LCD_Keypad_Shield

Ich habe jetzt 5V auf Vin gegeben und das funktioniert merkwürdiger weise ohne USB-Kabel. Ich dachte da müssen mindesten so um die 7V angelegt werden?

Gruß Martin

Miß mal die 5V am 5V Pin.

Laut Datenblatt kann die Helligkeit mittels eines PWM Signal an Pin 10 geregelt werden.

Zur Lesbarkeit drehe mal am Kontrastpotentiometer.

Grüße Uwe

Spannung am 5V pin = 4,96V

"Laut Datenblatt kann die Helligkeit mittels eines PWM Signal an Pin 10 geregelt werden.
Zur Lesbarkeit drehe mal am Kontrastpotentiometer"

Schon klar, aber wie mache ich das?
Pin10 als Ausgang definieren - dann 1/2 "Saft" drauf geben ?

pinMode(10, OUTPUT);
analogWrite(10, 125);

Hat das schon mal jemand gemacht? (Bevor ich mir hier etwas zerschieße :slight_smile: )

Da kann nichts schief gehen.

Das pinModer() brauchst Du bei analogWrite() nicht.

Einfach mal versuchen.

Grüße Uwe

Halo Uwe,
funktioniert prinzipiell aber mit ganz merkwürdigen Effekten:

  • Nur wenn das USB-Kabel zum Rechner angeschlossen ist.
  • Wenn Vin > 6V erst einmal alles viel zu hell.
    ´habe das Schraub-Anschluss-Shield schon gemessen ob ein Kurzschluss zwischen Vin und +5V vorhanden ist (-> Nein)
    Gruß Martin

Da wir das schlecht messen können, nimm einfach 5 Volt am 5 Volt-PIN. So sollte das funktionieren und kann auch nichts kaputt gehen.
Aber immer nur eins anschließen, 5Volt oder USB.

Wenn 5V an Vin dann:

Welche Spannung hast Du am 5V pin wenn Vin > 6V?

Grüße Uwe

Hallo Zusammen!

Ich habe das jetzt mit je 2 Stück

  • Arduino UNO
  • Arduino MEGA
  • LCD Tasten Shields

durchprobiert um auszuschließen, dass eine der Hardware Komponenten "eine Hau hat".

Ergebnis:
Beim Arduino MEGA treten die Probleme nicht auf.

Unabhängig von der Versorgungsspannung (Vin) 7-12V

  • leuchtet das Display immer gleich hell
  • habe ich an den Digital pins HIGH 4,97V

Regulierung der Helligkeit über D10 PWM funktioniert aber nicht!
(Gut dass ich das hier jetzt erst einmal nicht zwingend brauche :slight_smile: )

Beim UNO habe ich keine Fortschritte bzgl. meiner Fragen erzielt.

Hat jemand von Euch so ein LCD-Tasten-Shield mit einem UNO / MEGA im Einsatz?

Gruß Martin

Dan messe mal ob die Basis vom Transistor wirklich auf 10 geht, ist ja normaler NPN Transistor drauf = sollte funktionieren, oderversuchen den 10 auf LOW setzen dann sollte der ausschalten das Display

Da solltest du mal die Spannungen messen. Am Vin, am 5Volt Pin, an der Led.
Da muss ja irgendwo der Fehler liegen. Wir können das nicht messen und das jemand diesen Exoten von Shield verwendet, ist schon selten.

Wurde sagen für überteuerten Wecker schon :wink:
Irgend eine hatte schon enliche Probleme hier im Forum.

War es tatsächlich das verlinkte ?
Es gibt da einige, die sehr ähnlich aussehen.

Ich habe ein Shield, das dem von Elecrow jedenfalls sehr ähnlich sieht. Wo ich das gekauft habe, weiß ich nicht mehr und Datenblatt ist keines vorhanden.

Den Beispielcode von der Elecrow-Website habe ich leicht modifiziert und auf Pin 10 wird mit PWM "gespielt". Das funktioniert bei mir mit UNO und MEGA und auch die Helligkeit der Displaybeleuchtung lässt sich über Pin 10 einstellen.

//Sample using LiquidCrystal library
#include <LiquidCrystal.h>

// select the pins used on the LCD panel
//LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);   // Angabe der erforderlichen Pins
// Achtung: Pin 10 wird für die Displaybeleuchtung verwendet

// define some values used by the panel and buttons
int lcd_key       = 0;
int adc_key_in    = 0;
const byte pwmPin = 10;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5

// read the buttons
int read_LCD_buttons() {
  adc_key_in = analogRead(0);      // read the value from the sensor
  // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
  // we add approx 50 to those values and check to see if we are close
  if (adc_key_in > 1500) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
  if (adc_key_in < 50)   return btnRIGHT;
  if (adc_key_in < 195)  return btnUP;
  if (adc_key_in < 380)  return btnDOWN;
  if (adc_key_in < 500)  return btnLEFT;
  if (adc_key_in < 700)  return btnSELECT;
  return btnNONE;  // when all others fail, return this...
}

void setup() {
  lcd.begin(16, 2);              // start the library
  lcd.setCursor(0, 0);           // print a simple message
  lcd.print("HG PWM Test   ");
  delay(1500);
  analogWrite(pwmPin, 3);
  delay(1500);
  analogWrite(pwmPin, 15);
  delay(1500);
  analogWrite(pwmPin, 50);
  delay(1500);
  analogWrite(pwmPin, 100);
  delay(1500);
  analogWrite(pwmPin, 180);
  delay(1500);
  analogWrite(pwmPin, 255);
  delay(1500);
  lcd.setCursor(0, 0);
  lcd.print("Push the buttons"); 
}

void loop() {
  lcd.setCursor(9, 1);           // move cursor to second line "1" and 9 spaces over
  lcd.print(millis() / 1000);    // display seconds elapsed since power-up
  lcd.setCursor(0, 1);           // move to the begining of the second line
  lcd_key = read_LCD_buttons();  // read the buttons
  switch (lcd_key) {             // depending on which button was pushed, we perform an action
    case btnRIGHT:
      lcd.print("RIGHT ");
      break;
    case btnLEFT:
      lcd.print("LEFT   ");
      break;
    case btnUP:
      lcd.print("UP    ");
      break;
    case btnDOWN:
      lcd.print("DOWN  ");
      break;
    case btnSELECT:
      lcd.print("SELECT");
      break;
    case btnNONE:
      lcd.print("NONE  ");
      break;
  }
}

Spannungsversorgung über USB oder extern (5 Volt am 5 Volt-Pin - wie im Bild) - kein Unterschied festzustellen.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.