#include <AccelStepper.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
int lcdColumns = 20;
int lcdRows = 4;
const int DIR = 12;
const int STEP = 14;
const int DIR2 = 27;
const int STEP2 = 26;
#define motorInterfaceType 1
AccelStepper vertical(motorInterfaceType, STEP, DIR);
#define motorInterfaceType 1
AccelStepper horizontal(motorInterfaceType, STEP2, DIR2);
LiquidCrystal_I2C lcd(0x27, lcdColumns,lcdRows);
void setup() {
Wire.begin();
Serial.begin(115200);
Serial.println("\nI2C Scanner");
horizontal.setMaxSpeed(1000);
horizontal.setAcceleration(600);
horizontal.setSpeed(100);
horizontal.moveTo(40);
vertical.setMaxSpeed(1000);
vertical.setAcceleration(600);
vertical.setSpeed(100);
vertical.moveTo(40);
lcd.init();
lcd.backlight();
}
void loop() {
if (horizontal.distanceToGo() == 0) {
horizontal.moveTo(-horizontal.currentPosition());
lcd.clear();
lcd.setCursor(15, 0);
lcd.print(horizontal.currentPosition());
Serial.println("Rotating Horizontal in opposite direction...");
lcd.setCursor(0, 0);
lcd.print("Horizontal");
}
if (vertical.distanceToGo() == 0) {
vertical.moveTo(-vertical.currentPosition());
lcd.clear();
lcd.setCursor(15, 1);
lcd.print(vertical.currentPosition());
Serial.println("Rotating Vertical in opposite direction...");
lcd.setCursor(0, 1);
lcd.print("Vertical");
}
vertical.run();
horizontal.run();
}