/* Testing a Step motor nad notor controller with Arduion */
#include<SevSeg.h>
#include<AccelStepper.h>
SevSeg sevseg;
#define stepPin A1
#define Button1 A4
#define Button2 A3
#define StartButton A2
#define motorInterfaceType 1
float Speed = 370;
int SetNumber = 0;
boolean lock = false;
// // Create a new instance of the AccelStepper class:
AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin);
void setup() {
pinMode(Button1, INPUT_PULLUP);
pinMode(Button2, INPUT_PULLUP);
pinMode(StartButton, INPUT_PULLUP);
byte numDigits = 4;
byte digitPins[] = {8, 11, 12, 2};
byte segmentPins[] = {9, 13, 4, 6, 7, 10, 3, 5};
stepper.setMaxSpeed(1000);
stepper.setAcceleration(30);
bool resistorsOnSegments = true;
byte hardwareConfig = COMMON_CATHODE;
bool updateWithDelays = false;
bool leadingZeros = false;
bool disableDecPoint = true;
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments,
updateWithDelays, leadingZeros, disableDecPoint);
sevseg.setBrightness(50);
}
void loop() {
for (long i = 0; i <= Speed; i++) {
sevseg.setNumber(SetNumber, 0);
sevseg.refreshDisplay();
}
//-------------------------------------------------------------button2
if (lock == false) {
if (digitalRead(Button2) == LOW) {
Speed = 370;
SetNumber ++;
if (SetNumber > 9999)
SetNumber = 0;
}
}
//-----------------------------------------------------------------button1
if (lock == false) {
if (digitalRead(Button1) == LOW) {
Speed = 370;
SetNumber--;
if (SetNumber < 0)
SetNumber = 0;
}
}
//-------------------------------------------------------------button 1 & button2
if (digitalRead(Button1) == LOW && digitalRead(Button2) == LOW ) {
Speed = 370;
sevseg.blank();
delay(350);
lock = true;
SetNumber = 0;
}
//----------------------------------------------------------------START Winding
if (digitalRead(StartButton) == LOW) {
Speed = 370;
if (SetNumber < 0) {
SetNumber = 0;
}
if (SetNumber > 0) {
lock = false;
stepper.moveTo(SetNumber+2);
stepper.runToPosition();
sevseg.blank();
}
}
}