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

Keine Bedienung des Pro-Timer möglich

Offline
#11 CNitz
Hallo nochmal... es war ein Original Arduino. Aber ggf. hat es doch durch das vorherige Projekt irgendwo einen Schaden erhalten.. Mit den Clonen habe ich bis jetzt nur Ärger gehabt.
Offline
#12 Kurgil
Hallo,

ich habe heute den Nachbau testweise in Betrieb genommen und hatte ein ähnliches Problem. Außer der >Rechts> Taste reagierte keine Taste.
Da ich mich in der Materie ein wenig auskenne, habe ich zunächst mal den Schaltplan des Display-Shields, insbesondere der Tasten, angesehen. Dabei fiel mir auf, das die Tasten über einen analogen Eingang des Arduino abgefragt werden. Meine erste Vermutung, wo der Fehler liegt, war auch gleich die richtige.
Der Arduino-Sketch fragt ziemlich genau die Werte des analogen Eingangs ab und wertet danach aus. welche Taste gedrückt wurde. Bei meinem Shield wichen die Werte aber vergleichsweise heftig ab. Deshalb wurden die Tastendrücke nicht erkannt.

Falls jemand ähnliche Probleme hat:
Einfach in der Arduino-IDE den Sketch unter DATEI->BEISPIELE->ANALOG->ANALOGINSERIALOUT laden, auf den Arduino hochladen, dann die Tasten drücken und die Werte, die unter WERKZEUGE->SERIELLER MONITOR angezeigt werden notieren.
Diese Werte müssen dann in der Arduino IDE im Reiter LCD_Keypad_Reader.cpp angepasst werden.

Hier müssen die entsprechenden Werte angepasst werden:

static int UPKEY_ARV = 144; // 0.720 V, that's read "analogue read value"
static int DOWNKEY_ARV = 329; // 1.645 V
static int LEFTKEY_ARV = 505; // 2.525 V
static int RIGHTKEY_ARV = 0; // 0 V
static int SELKEY_ARV = 742; // 3.710 V
static int NOKEY_ARV = 1023; // 5.115 V

Hoffe, mein Beitrag hilft einigen vielleicht weiter.

Gruß
Kurt
Offline
#13 TORBEN-DALLAS
Danke Kurt fürs teilen. Die Anleitung ist goldwert.

Hatte genau das Problem. Ich habs halt durch annähern und probieren hinbekommen.
Mit deiner Lösung gehts schneller und bei weitem eleganter :-)

Sicher für so manchen hilfreich.
Offline
#14 Johannes Z
Hier wäre noch ein Sketch, der die Werte der Tasten direkt auf dem Display anzeigt. Einfach aufspielen, Shield aufsetzen, starten und Tasten drücken ;-)


//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(" ");

}

...also check out: