Schrittmotor mit Folientaster steuern

Hallo,

ich möchte gerne meinen Schrittmotor mit dem Folientaster steuern können, also einen bestimmten Wert eingeben. Bzw. wie kann ich diesen bestimmten Wert lesen und ausgeben an den Schrittmotor.
Kann mir dazu jemand helfen?

Gruß

Lukas

Hallo,

für das keypad gibt es Beispiele. Für Schrittmotore gibt es die auch. Gehe die Aufgabe getrennt an. Erst mit dem Keypad eine Zahl mit mehreren Stellen einlesen und zusammen bauen. Die Eingabe mit einer Taste z.B * als Enter abschliessen. Dann hast Du eine Zahl z.B 1234.

Dann gehst Du den Schrittmotor an. Was willst Du da als Parameter von dem Keypad haben. Position ? Anzahl Schritte.? Was auch immer. Solange Du nur einen Wert eingibst klappt das so.Um einen richtigen Mensch-Maschine Dialog aufzubauen wirst Du noch eine Anzeige benötigen damit Du weist was Du gerade eingeben sollst.

Heinz

Danke für die Antwort, was muss ich denn machen damit ich einen Wert abschließen kann weil momentan setzt er ja nur eine Zahl nach der anderen.

Lukas

Hi

Du definierst Dir eine der Tasten für 'Fertig'.
Vorher musst Du natürlich die eingegebenen Ziffern zu einer Zahl 'zusammen basteln'.
In der ersten Klasse fing Das an mit Ein Zehner und drei Einer sind 13.
Du machst Das genau anders herum:
Beim Start den Wert auf Null stetzen
Mit jeder Ziffer den Wert x 10 und anschließend plus den Wert der Ziffer
Mit dem Stern wird der eingegebene (und mitgerechnete) Wert zum Stepper geschickt, der Wert wieder auf Null gesetzt
Mit Raute wird der Wert direkt auf Null gesetzt (gelöscht)

MfG

Hallo,

hab da gerade mal in meiner Wühlkiste gewühlt. Ob Du da was von brauchen kannst musst Du mal sehen.

/* Beispiel basierend auf Beispiel aus LIB
 * Beispiel FolienTastatur zur Eingabe von zwei
 * Integer Werten mit der Zuweisung  A  für Wetr1 B für Wert2 
 * Eingabe z.B 123A wird der vartablen Wert1 zugewiesen
 * Hardware UNO, Keypad 
 * Nov. 2018 erweitert Mai 2019 auf 2 Werte
 */


#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

char zeile[10];// Eingabe Zeile 
byte i;// Index CString
int wert1, wert2;

void setup() {
  Serial.begin(9600);
}

void loop() {
  readKeypad();
}


void readKeypad(){
char Key = customKeypad.getKey();

  if (Key) {  // Taste gedrückt
    //Serial.print(Key,DEC);
    Serial.print(Key);
    //Serial.print(Key,DEC);
    if (Key == 65) { // "A" erkannt
      zeile[i] = char(0); // C string Endzeichen
      wert1 = atoi(zeile);
      Serial.print("\n Wert1 ");Serial.println(wert1);
      //Serial.print (strlen(zeile));
      i = 0;  // Zeiger auf Anfang string löschen
    }

    if (Key == 66) { // "B" erkannt
      zeile[i] = char(0);
      wert2 = atoi(zeile);
      Serial.print("\n Wert2 ");Serial.println(wert2);
      i = 0;
    }

    // Zeichen inten anhängen und Index erhöhen 
    else if (i < 4 && Key >= 48 && Key <= 57 ) {
      zeile[i] = Key;
      i++;
    }

  }  
}

Danke für die Hilfe, ich werde mich da mal durchwühlen.

Gruß

Lukas