#include <Keypad.h>
#include <AccelStepper.h>
// Keypad configuration
const byte ROWS = 4; // Four rows
const byte COLS = 4; // Four columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; // Row pin numbers
byte colPins[COLS] = {6, 7, 8, 9}; // Column pin numbers
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// Motor driver configuration
#define dirPin 11
#define stepPin 10
#define enablePin 12
AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin);
void setup() {
Serial.begin(9600);
pinMode(enablePin, OUTPUT);
digitalWrite(enablePin, LOW); // Enable motor driver
stepper.setMaxSpeed(2000); // Set maximum speed in steps per second
stepper.setAcceleration(1000); // Set acceleration
}
void loop() {
char key = keypad.getKey();
if (key) {
Serial.println(key);
int speed = 0;
switch(key) {
case '1':
speed = 500; // Set speed for key '1'
break;
case '2':
speed = 1000; // Set speed for key '2'
break;
case '3':
speed = 1500; // Set speed for key '3'
break;
default:
speed = 0; // Stop the motor for other keys
break;
}
stepper.setSpeed(speed);
}
stepper.runSpeed(); // Run the motor at the set speed
}