My code is almost complete.
I have one issue in that the motors will only go in one direction.
I've set them to -350 instead of 350 yet they go the same direction regardless.
Any help would be much appreciated!!
#include <LiquidCrystal.h>
#include <Stepper.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);
Stepper StepperElev(200, 22, 24, 26, 28);
Stepper StepperBase(200, 23, 25, 27, 29);
const int nextbutton = 41;
const int backbutton = 40;
int buttonstate = 0;
int buttonstate2 = 0;
int lastbuttonstate = 0;
int lastbuttonstate2 = 0;
int satpos = 0;
int satdirection = 0;
int hasbeendone = 1;
void setup()
{
lcd.begin(16, 2);
lcd.clear();
pinMode (nextbutton, INPUT);
pinMode (backbutton, INPUT);
StepperElev.setSpeed(60);
StepperBase.setSpeed(60);
}
void loop()
{
buttonstate = digitalRead(nextbutton);
if (buttonstate != lastbuttonstate) {
if (buttonstate == HIGH) {
satpos++;
satdirection = 0;
hasbeendone = 0;
}
delay(50);
}
lastbuttonstate = buttonstate;
buttonstate2 = digitalRead(backbutton);
if (buttonstate2 != lastbuttonstate2) {
if (buttonstate2 == HIGH) {
satpos--;
satdirection = 1;
hasbeendone = 0;
}
delay(50);
}
lastbuttonstate2 = buttonstate2;
if (satpos == 0) {
lcd.clear();
lcd.print ("SAT1: Astra 28:E");
lcd.setCursor(0, 1);
lcd.print ("Back Next");
delay(100);
if (hasbeendone == 0) {
if (satdirection == 0){
StepperBase.step(350);
hasbeendone = 1;
}
if (satdirection == 1) {
StepperBase.step(-350);
hasbeendone = 1;
}
}
}
if (satpos == 1) {
lcd.clear();
lcd.print ("SAT2: Astra 28:F");
lcd.setCursor(0, 1);
lcd.print ("Back Next");
if (hasbeendone == 0) {
if (satdirection == 0){
StepperElev.step(350);
hasbeendone = 1;
}
if (satdirection == 1) {
StepperElev.step(-350);
hasbeendone = 1;
}
}
}
if (satpos == 2) {
lcd.clear();
lcd.print ("SAT3: Astra 28:G");
lcd.setCursor(0, 1);
lcd.print ("Back Next");
delay(100);
if (hasbeendone == 0) {
if (satdirection == 0){
StepperBase.step(-350);
hasbeendone = 1;
}
if (satdirection == 1) {
StepperBase.step(350);
hasbeendone = 1;
}
}
}
if (satpos == 3) {
lcd.clear();
lcd.print ("SAT4: Astra 1:N");
lcd.setCursor(0, 1);
lcd.print ("Back Next");
delay(100);
if (hasbeendone == 0) {
if (satdirection == 0){
StepperElev.step(-350);
hasbeendone = 1;
}
if (satdirection == 1) {
StepperElev.step(350);
hasbeendone = 1;
}
}
}
if (satpos == -1){
satpos = 3;
}
if (satpos == 4){
satpos = 0;
}
}