Hilfe bei Erweiterung meines DAVID 3d Tellers

Hallo,

bin hier neu und suche jemanden von Euch, der mit bei der Erweiterung meiner Drehtellersteuerung behilflich sein kann. Habe ein Projekt mit Anleitung Für den DAVID 3D Scanner erfolgreich umgesetzt, stoße aber nun an meiner technischen Grenzen. Möchte meinen Drehteller mit zwei Tasten so erweitern, dass man nicht mehr über das Arduino Board die Anzahl der Teildrehungen eingibt, sondern direkt über zwei Tasten und einem Ausgabedisplay.

Benutze eine Arduino Uno + Motorshield V2 und Schrittmotor.

Hier der Code:

#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include <Adafruit_PWMServoDriver.h>

int val; //Variable to store the content of the COM port
int count = 0; // Variable to count the scans
int limit = 8; // Means the number of scans/round
int StepsPerRound = 200; // Depends on the stepper’s + gear’s resolution

// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
// Or, create it with a different I2C address (say for stacking)
// Adafruit_MotorShield AFMS = Adafruit_MotorShield(0x61);

// Connect a stepper motor with 200 steps per revolution (1.8 degree)
// to motor port #2 (M3 and M4)
Adafruit_StepperMotor *myMotor = AFMS.getStepper(200, 2);

void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps

AFMS.begin(); // create with the default frequency 1.6KHz
//AFMS.begin(1000); // OR with a different frequency, say 1KHz

myMotor->setSpeed(10); // 10 rpm
}

void loop() {
if (Serial.available() > 0) {
val = Serial.read(); // read if theres a message in the port and store it in the communication variable
}
if (val == ‘T’ && count < limit){
myMotor->step(StepsPerRound/limit, FORWARD, SINGLE); //Performs a turntable motion - This is needed for my Adafruit MotorShield on the Arduino
myMotor->release(); // Releases the stepper - This is needed for my Adafruit MotorShield on the Arduino
count +=1; //
}
if (val == ‘2’ && count > 0 && count < limit){
Serial.println(“S”); // Triggers the next scan when DAVID has sent its “ready” message
}
if (val == ‘2’ && count == limit){
count = 0; //Just to reset things when you finished a whole round
}
if (val == ‘1’){
count = 0; //To reset the counter after a faulty try switch to DAVID#s Calibration mode and return to ScanningMode
}
val = 0; // To refresh the COM port input
}

Bin gerne bereit auch das ganze zu entlohnen. bitte nur seriöse Angebote.

Code bitte mit Code Tags </> posten, Du kannst das mit Edit More nachholen.

Ich weiß nicht, wie sich ein LCD-Keypad Shield mit dem MotorShield verträgt, das wäre aber erst mal die einfachste Lösung für die Hardware.

Dann ersetze das Serial.read() durch die Abfrage der Tasten, und Serial.write() durch sinnvolle Ausgaben auf dem LCD Display.