// Stepper motor on Wokwi!
/*#include <Stepper.h>
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
// set the speed at 60 rpm:
myStepper.setSpeed(60);
// initialize the serial port:
Serial.begin(9600);
}
void loop() {
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}*/
#include <Stepper.h> // Подключение библиотеки двигателя // Подключение библиотеки SPI
//const int slaveSelectPin = 10; // Вывод SS
const int IN1 = 8; // Выводы Arduino 2-5 для подключения к двигателю
const int IN2 = 9;
const int IN3 = 10;
const int IN4 = 11;
const int stepsPerRevolution = 2048;
//BUTTON S1
int L = 13;
int S1 = 3;
boolean lastButton = HIGH; //переменная для хранения последнего состояния кнопки
boolean currentButton = LOW; // Количество шагов на 1 оборот
int Direction = 50;
//POTENTIOMETER
int IRpin = 0;
Stepper myStepper(stepsPerRevolution , IN1, IN2, IN3, IN4); // Инициализация двигателя
boolean debounce(boolean last) //подпрограмма считывания состояния кнопки S1 с учетом подавления дребезга
{
boolean current = digitalRead(S1); //считывание текущего состояния кнопки
if(last = current) //сравнение с предыдущим значением
{
delay(200); //задержка 10 мс
current = digitalRead(S1); //считывание текущего состояния кнопки
}
return current; //возвращение текущего состояния кнопки
}
void setup() {
pinMode(L, OUTPUT);
pinMode(S1, INPUT_PULLUP);
myStepper.setSpeed(10); // Установка скорости 10 об/мин
Serial.begin(9600); // Инициализация последовательного порта
}
void loop() {
if (digitalRead(S1) == LOW){
IRpin = analogRead(0);
IRpin = map(IRpin, 0, 1023, 0, 255);
Serial.println(IRpin * 8);
digitalWrite(L, HIGH);
delay(500);
digitalWrite(L, LOW);
myStepper.step(IRpin * 8);
delay(500);
//myStepper.step(-IRpin);
//Direction = -Direction;
}
lastButton = currentButton;
//myStepper.step(Direction);
/* myStepper.step(stepsPerRevolution); // Полный оборот
delay(1000);
myStepper.step(-stepsPerRevolution); // Полный оборот
delay(1000); */ // Задержка 100мс
}