Ви не увійшли.

Помогите найти ошибку в скетче , мотор должен отработать 200 шагов по часовой и 100 против часовой и так в цикле , а шагает в одну сторону
#include <AccelStepper.h>
AccelStepper Stepper1(1.13,12); //использует пин 12 и 13 для dir и step, 1 - режим "external driver" (A4988)
int dir = 1; //используется для смены направления
int step = 2; //єто у нас будетшаг (если 1- на 200 двигаем,2-на 100)
int dist = 100; //дистанция 
 
void setup()
{
  Stepper1.setMaxSpeed(6000); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду)
  Stepper1.setAcceleration(20000); //устанавливаем ускорение (шагов/секунду^2)
}
void loop()
 
{
  if(Stepper1.distanceToGo()==0)
{ //проверка, отработал ли двигатель предыдущее движение
  if (step==1) //если біл шаг 2- тогда следующий -1
{
  step = 2;
  dist = 100;
}
  else
{
  step = 1;
  dist = 200;
}
  Stepper1.move(dist*dir);
  dir = dir*(-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направлении
delay(500); //задержка на 1 секунду
}
Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя
}Неактивний

во второй строке очепятка или как?

ещё бы кнопку привязать вкл. выкл. к ENBL
так в чем проблема?

leons пише:ещё бы кнопку привязать вкл. выкл. к ENBL
так в чем проблема?
   Учится говорят никогда не поздно , у меня с этим не сраслось. я больше по старинке возьму двух позиционный тумблер и буду переключать ENBL   с +5в на GND   а вот скорость регулировать потенциометром больше надо
 а вот скорость регулировать потенциометром больше надо 
    Я не программист а так зашёл сюда ,как то нужно было сделать счётчик и помогла мне одна программка Flprog, а там с шаговиками как-то не дружат но пытаются по мелочи я про форумчян   
Неактивний

т.е вам нужно одной кнопкой включать/выключать? Ну так digitalWrite(номер_пина_к_которому_подключен_ENBL, HIGH); или LOW в зависимости от потребности

ждем-с ....

вот , на железе не проверял , с кавычками наверное напутал
#include <AccelStepper.h>
AccelStepper Stepper1(1,11,12); //использует пин 12 и 11 для dir и step, 1 - режим "external driver" 
int dir = 1; //используется для смены направления
int step = 2; //єто у нас будет шаг (если 1- на 100 двигаем,2-на 200)
int dist = 400; //дистанция 
int buttonPin = 2; // номер порта нашей кнопки
int EnblPin =    13; // номер порта ENBL
 
void setup()
{
  Stepper1.setMaxSpeed(6000); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду)
  Stepper1.setAcceleration(13000); //устанавливаем ускорение (шагов/секунду^2)
   pinMode(enblPin, OUTPUT);  // устанавливаем порт ENBL на выход
   
   pinMode(buttonPin, INPUT); // устанавливаем порт кнопки на вход
}
void loop() {
int buttonState = digitalRead(buttonPin); // читаем состояние порта кнопки и записываем в переменную
 
{
 if (buttonState == HIGH) // делаем простую проверку нашей переменной, если на входе в порт кнопки присутствует напряжение
 
  digitalWrite(endlPin, HIGH); // подаем 5 вольт на порт enbl
} else {
 digitalWrite(enblPin, LOW);  // выключаем enbl
 }
  if(Stepper1.distanceToGo()==0)
{ //проверка, отработал ли двигатель предыдущее движение
  if (step==1) //если біл шаг 2- тогда следующий -1
{
  step = 2;
  dist = 100;
}
  else
{
  step = 1;
  dist = 200;
}
  Stepper1.move(dist*dir);
  dir = dir*(-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направлении
delay(1000); //задержка на 1 секунду
}
Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя
}Неактивний

вот , на железе не проверял
думаете кто-то будет за вас проверять?
с кавычками наверное напутал
и не только с кавычками
Ну и далее: во-первых, избавьтесь от дребезга. Во-вторых, у вас кнопка с фиксацией или без? Если без фиксации то нужно еще предусмотреть запоминание состояния кнопки. Иначе мотор будет крутиться до тех пор пока кнопка нажата.
Неактивний

Кнопка планируется с фиксацией
тогда уж действительно чем не вариант
по старинке возьму двух позиционный тумблер и буду переключать ENBL с +5в на GND

#include <AccelStepper.h>
AccelStepper Stepper1(1,11,12); //использует пин 12 и 11 для dir и step, 1 - режим "external driver" 
int dir = 1; //используется для смены направления
int step = 2; //єто у нас будетшаг (если 1- на 100 двигаем,2-на 200)
int dist = 400; //дистанция 
int buttonPin = 2; // номер порта нашей кнопки
int EnblPin =    13; // номер порта ENBL
 
void setup()
{
  Stepper1.setMaxSpeed(6000); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду)
  Stepper1.setAcceleration(13000); //устанавливаем ускорение (шагов/секунду^2)
   
   pinMode(13, OUTPUT);
}
void loop()
 
{
  if(Stepper1.distanceToGo()==0)
{ //проверка, отработал ли двигатель предыдущее движение
  if (step==1) //если біл шаг 2- тогда следующий -1
{
  step = 2;
  dist = 100;
}
  else
{
  step = 1;
  dist = 200;
}
  Stepper1.move(dist*dir);
  dir = dir*(-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направлении
delay(1000); //задержка на 1 секунду
}
Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя
}
{
 
 if(digitalRead(2)==HIGH)//если кнопка нажата ...
 
 {
 
 digitalWrite(13,HIGH);//включаем светодиод
 
 }
 
 else//если не нажата... 
 {
 
 digitalWrite(13,LOW);//выключаем
 
 }
 
 } Неактивний

"ковычки" - это типа фигурные скобки {} ?
Я бы на вашем месте сначала исправил все ошибки и проверил работу кода с кнопкой, а потом уже брался бы за потенциометры.
Остання редакція ard125 (2019-10-19 18:41:35)
Неактивний

вот рабочий скетч ,
 вот только скорость меня волнует , перепробовал увеличивать  Stepper1.setMaxSpeed(6000); вплоть до 240000, разницы не заметил ,а в FLprog  визуально быстрее, у меня драйвер работает в полушаговом режиме  
#include <AccelStepper.h>
AccelStepper Stepper1(1,11,12); //использует пин 12 и 11 для dir и step, 1 - режим "external driver" 
int dir = 1; //используется для смены направления
int step = 2; //єто у нас будетшаг (если 1- на 100 двигаем,2-на 200)
int dist = 400; //дистанция 
int buttonPin = 2; // номер порта нашей кнопки
int EnblPin =    13; // номер порта ENBL
 
void setup()
{
  Stepper1.setMaxSpeed(6000); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду)
  Stepper1.setAcceleration(13000); //устанавливаем ускорение (шагов/секунду^2)
   
   pinMode(13, OUTPUT);
}
void loop()
 
{
  if(Stepper1.distanceToGo()==0)
{ //проверка, отработал ли двигатель предыдущее движение
  if (step==1) //если біл шаг 2- тогда следующий -1
{
  step = 2;
  dist = 100;
}
  else
{
  step = 1;
  dist = 200;
}
  Stepper1.move(dist*dir);
  dir = dir*(-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направлении
delay(200); //задержка на 1 секунду
}
Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя
{
 
 if(digitalRead(2)==HIGH)//если кнопка нажата ...
 
 {
 
 digitalWrite(13,HIGH);//включаем светодиод
 
 }
 
 else//если не нажата... 
 {
 
 digitalWrite(13,LOW);//выключаем
 
 }
 
 } 
 }Остання редакція leons (2019-10-19 19:57:50)
Неактивний

почему моторчик с принтера такой быстрый а мой NEMA 23  НЕ МОЖЕТ ЕГО ДОГНАТЬ 
https://www.youtube.com/watch?v=dlrjSMwTy_w
Неактивний