Hallo, Habe ein SainSmart Display 1602 wie lese ich da am besten die Taster aus oder wie kann ich das beispiel Projekt umschreiben damit nachdem die Taster ausgelesen wurden das eigentliche programm kommen kann. /* The circuit: * LCD RS pin to digital pin 8 * LCD Enable pin to digital pin 9 * LCD D4 pin to digital pin 4 * LCD D5 pin to digital pin 5 * LCD D6 pin to digital pin 6 * LCD D7 pin to digital pin 7 * LCD BL pin to digital pin 10 * KEY pin to analogl pin 0 */ #include <LiquidCrystal.h> #include <Keys.h> LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7); char msgs[5][16] = {"Right Key OK ", "Up Key OK ", "Down Key OK ", "Left Key OK ", "Select Key OK" }; int adc_key_val[5] ={50, 200, 400, 600, 800 }; int NUM_KEYS = 5; int adc_key_in; int key=-1; int oldkey=-1; void setup() { lcd.clear(); lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("ADC key testing"); Serial.begin(9600); } void loop() { adc_key_in = analogRead(0); // read the value from the sensor key = get_key(adc_key_in); // convert into key press if (key != oldkey) // if keypress is detected { delay(50); // wait for debounce time adc_key_in = analogRead(0); // read the value from the sensor key = get_key(adc_key_in); // convert into key press if (key != oldkey) { lcd.setCursor(0, 1); oldkey = key; if (key >=0){ int Button=key; Serial.print(Button); } } } delay(100); } // Convert ADC value to key number int get_key(unsigned int input) { int k; for (k = 0; k < NUM_KEYS; k++) { if (input < adc_key_val[k]) { return k; } } if (k >= NUM_KEYS)k = -1; // No valid key pressed return k;
marc schrieb: > adc_key_in = analogRead(0); // read the value from the sensor > key = get_key(adc_key_in); // convert into key press Da hast Du doch schon Deine Funktionen die wohl in key.h definiert sind. Dann folgt die Prüfung auf neuen Wert und das entprellen. Was verstehst Du nicht ?
Ja das problem ist wie kann ich aus dieser code eine .h datei machen den wenn ich hinter diesen code ein programm setzt. dann passiert nichts mehr das ich ja mit return k zurück zum wert k gehe.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.