• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Alternative LCD Keypad Shields

Offline
#1 stocki1972
Hallo Gunther,

ich habe nicht das LCD Display Shield, sondern das Sainsmart LCD Keypad Shield. Da sind die PINs anscheinend anders. Wenn ich mein Shield umdrehe, habe ich oben nur 7 PINS, die aber anscheinend ins Leere laufen. Darunter ist die Stiftleiste zum Anschluss an das Arduino. Ich habe mal ein Bild angehängt. Wo muss ich da die Kabel der Platine anlöten?

Vielen Dank

mfg
Martin

   
Offline
#2 Gunther
Das kann ich Dir so leider nicht sagen. Meine Anleitung bezieht sich auf den beschriebenen DisplayShield. Andere mögen funktionieren, allerdings braucht man dann u.U. andere Treiber oder die Pin Belegung ist anders, das muss man dann auch in dem Sketch ändern.
Dazu kann ich leider keinen Support geben.
Wenn es nur die Pins sind, kannst Du die ja recht einfach durchmessen. Auf dem Arduino Board ist ja in der Regel aufgedruckt, was welcher Kontakt tut, ich denke aber, damit ist es vermutlich nicht getan.
Subscribe to: LRTimelapse Newsletter, Youtube Channel, Instagram, Facebook.
Offline
#3 jk.foto
Hallo Zusammen,

zum löten der Pins kann ich leider nichts hilfreiches Beitragen, aber für ein anderes LCD Shield hätte ich Anpassungen für den Code:

Das "LCD Keypad Shield von DFRobot v1.0" und mit dem Original Werten hat der Right Button nur das Licht ein und ausgeschaltet :-(
um das zum Laufen zu bringen musste ich folgende Änderungen in den 3 Quellcode Dateien vornehmen:

LCD_Keypad_Reader.h:
//DFRobot LCD Keypad Shield 1.0
#define SAMPLE_WAIT -1 
#define NO_KEY 0 
#define UP_KEY 2 
#define DOWN_KEY 3 
#define LEFT_KEY 4 
#define RIGHT_KEY 1 
#define SELECT_KEY 5 

LCD_Keypad_Reader.cpp:
//DFRobot LCD Keypad Shield 1.0
static int UPKEY_ARV = 101;  
static int DOWNKEY_ARV = 257;
static int LEFTKEY_ARV = 411;
static int RIGHTKEY_ARV = 0;
static int SELKEY_ARV = 641;
static int NOKEY_ARV = 1023;

und schließlich 
LRTimelaps_Pro_Timer_Free:
//DFRobot LCD Keypad Shield 1.0 Key constants
const int NONE = 0;            
const int SELECT = 5;
const int LEFT = 4;
const int UP = 2;
const int DOWN = 3;
const int RIGHT = 1;

Danach funktionierte alles wie gewünscht

Vielen Dank Gunter für die Bereitstellung des Codes


Jürgen
Offline
#4 TORBEN-DALLAS
Ich habe ein ähnliches Problem.

Ich habe diesen Shield hier:

http://amzn.to/2jSZH8e


weil der verlinkte nicht verfügbar war.

Bei mir funktioniert nur die rechte Taste.

Kennt jemand die benötigten Parameter?
Offline
#5 TORBEN-DALLAS
Hat sich erledigt. Durch messen und probieren hab ichs rausbekommen.

Mit diesen Werten funktioniert der (das?) Shield von kwmobile einwandfrei [Image: https://forum.lrtimelapse.com/images/icons/thumbsup.gif]
Attached Files
Thumbnail(s)
   
Offline
#6 TFD2017
KW Mobile von Amazon

Hi,
mit diesem Setting habe ich die Keys zum laufen bekommen.



// The KWMobile LCD keypad Shield uses a voltage divider to deliver a voltage  
// between 0 and 5 V that corresponds to the key being pressed in  
// order to use only a single input pin. The values below are from 0 to  
// 1023 because the Arduino uses a 10 bit resolution.
static int UPKEY_ARV = 100; // 0.490 V, that's read "analogue read value"
static int DOWNKEY_ARV = 256; // 1.252 V
static int LEFTKEY_ARV = 410; // 2.000 V
static int RIGHTKEY_ARV = 0; // 0 V
static int SELKEY_ARV = 640; // 3.125 V
static int NOKEY_ARV = 1023; // 5.000 V

Gruß Thomas

Danke für das tolle Projekt.
Offline
#7 TORBEN-DALLAS
Bei kwmobile scheint es eine gewisse Serienstreuung zu geben... :-)
Offline
#8 Gunther
User Kurgil hat hier eine tolle Anleitung gepostet, wie man die geeigneten Werte selbst herausfinden kann:
https://forum.lrtimelapse.com/Thread-kei...4#pid31504
Subscribe to: LRTimelapse Newsletter, Youtube Channel, Instagram, Facebook.
Offline
#9 Johannes Z
Für alle die Probleme mit den Tasten und den Werten haben, hier ein kleiner Sketch, welcher die Werte auf dem Diplay anzeigt


//Initialize LCD
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup()
{
//Set LCD Display Size
lcd.begin(16,2);
lcd.clear();

//Control LED Backlight @ D10
pinMode(10, OUTPUT);
}

void loop()
{
//Set LED Backlight to OFF
digitalWrite(10, LOW);

//Read Shield Button from Analog 0 Pin
double button = analogRead(0);

//Set LCD Display Settings
lcd.setCursor(0,0);
lcd.println("Analog 0 Value: ");

lcd.setCursor(0,1);
lcd.print(button);
lcd.println(" ");

}
Offline
#10 TORBEN-DALLAS
Astrein - Danke Johannes

...also check out: