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?
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.
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.
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.