const int rs = 12; //Register Select Выбор регистра. Управляет выбором между командами и данными.
const int en = 11; //Enable Включение. Инициирует чтение или запись данных.
const int d4 = 5; //Data Lines Шина данных. Передача информации между дисплеем и Arduino.
const int d5 = 4; //Data Lines Шина данных. Передача информации между дисплеем и Arduino.
const int d6 = 3; //Data Lines Шина данных. Передача информации между дисплеем и Arduino.
const int d7 = 2; //Data Lines Шина данных. Передача информации между дисплеем и Arduino.
#include <LiquidCrystal.h> //Добавляем библиотеку LCD дисплея на 16 симоволов, 2 строки
LiquidCrystal lcd(12, 11, 5, 4, 3 , 2); //Инициализация библиотеки с номерами пинов
const int stepPin = 23; //Пин шага
const int dirPin = 25; //Пин направления вращения
const int enPin = 22; //Пин на запрет, 0 — включен, 5 В — выключен
#include <AccelStepper.h> //Добавляем библиотеку для работы с шаговыми двигателями
AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin); //Инициализация библиотеки для драйвера A4988
void setup() {
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enPin, OUTPUT);
digitalWrite(enPin, LOW); //Подаём низкий уровень на Enable, включаем драйвер
stepper.setMaxSpeed(1000); //Установка максимальной скорости (шагов в секунду)
stepper.setAcceleration(500); //Установка ускорения (шагов в секунду^2)
}
void loop() {
stepper.moveTo(200); //Вращение на 200 шагов вперёд
while (stepper.distanceToGo() != 0) { //Цикл в котором двигатель движется к цели
stepper.run(); //функция выполняется до тех пор, пока двигатель не достигнет установленной цели
}
delay (1000); //Задержка на 1 секунду
stepper.moveTo(-200); //Вращение на 200 шагов назад
while (stepper.distanceToGo() != 0) { //Цикл в котором двигатель движется к цели
stepper.run(); //функция выполняется до тех пор, пока двигатель не достигнет установленной цели
}
delay (1000); //Задержка на 1 секунду
}