Помощь в написании скетча

atsek
Offline
Зарегистрирован: 23.08.2016

Доброго времени суток форумчане. Нужна помощь добрых людей в доработке скетча.

 

#include <Stepper_28BYJ.h>
// изменить количество шагов для вашего мотора
#define STEPS 4078
Stepper_28BYJ stepper(STEPS, 8, 9, 10, 11);
void setup()
{
  // установим скорость вращения 3 об/мин
  stepper.setSpeed(13);
}
void loop()
{
  stepper.step(4000); // Делаем 4000 шагов в одну строну
   stepper.step(-4000);// Делаем 4000 шагов в другую строну
}

Как в этом скетче внести изменения чтоб шаговик работал не чиклично, а после того как зделал 4000 шогов в одну сторону а потом в другую и остановился? И нужно добавить кнопку чтоб при её нажатии шаговик повторил работу и снова остановился. К каким пинам и как подключить кнопку?

Шаговик подключен так

 Спасибо за помощь.

 

 

DrProg
Offline
Зарегистрирован: 07.08.2015

И это за деньги делать будут?

atsek
Offline
Зарегистрирован: 23.08.2016

Это просто прозьба помочь. Недумаю что это сложно просто сам немогу понять как это зделать.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

DrProg пишет:

И это за деньги делать будут?

Если на честном Си  - почему бы и нет?

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014
#include <Stepper_28BYJ.h>
#define STEPS 4078
#define BUTTON_PIN 8

Stepper_28BYJ stepper(STEPS, 8, 9, 10, 11);


void setup(){
   stepper.setSpeed(13);
   pinMode(BUTTON_PIN, INPUT_PULLUP);
}


void loop(){
if (digitalRead(BUTTON_PIN) == LOW)  {
  stepper.step(4000); 
  stepper.step(-4000);
}
}

 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Кстати, вы уверены в этой константе?

#define STEPS 4078
atsek
Offline
Зарегистрирован: 23.08.2016

Спасибо попробую.

DrProg
Offline
Зарегистрирован: 07.08.2015

Я бы добавил ожидание отпускания кнопки. А то неровен час заклинит. Например так:

 

#include <Stepper_28BYJ.h>
#define STEPS 4078
#define BUTTON_PIN 8

Stepper_28BYJ stepper(STEPS, 8, 9, 10, 11);


void setup() {
  stepper.setSpeed(13);
  pinMode(BUTTON_PIN, INPUT_PULLUP);
}


void loop() {
  if (!digitalRead(BUTTON_PIN))  {
    delay(40);
    stepper.step(4000);
    stepper.step(-4000);
    while (!digitalRead(BUTTON_PIN));
    delay(40); // антидребезг
  }
}

 

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

http://robotclass.ru/tutorials/arduino-stepper-28byj-48-uln2003/

Пины возможно придется менять - там или драйвер кривой попался мне или библиотеки кривые (на 5 в включай и заливай скетч, меняй распиновку и как заработает ставь 4000 шагов, и после добавляй в обратную сторону - скетчи рабочие 200% только что делал)

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

DrProg пишет:

Я бы добавил ожидание отпускания кнопки. А то неровен час заклинит. Например так:

После первого касания кнопки, даже дребезжащего, мотор сделает 8000 шагов.

Кто там может заклинить?

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Gippopotam пишет:

DrProg пишет:

Я бы добавил ожидание отпускания кнопки. А то неровен час заклинит. Например так:

После первого касания кнопки, даже дребезжащего, мотор сделает 8000 шагов.

Кто там может заклинить?

Что вы тут гадаете.

Я дал ссылку + можно выставить работу в фоне (тогда можно моментом переключать двигатель)

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

p.masyukov пишет:

Что вы тут гадаете.

Я дал ссылку + можно выставить работу в фоне (тогда можно моментом переключать двигатель)

Ссылку для чего?

Есть четкое ТЗ. Зачем выдумывать что-то еще?

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Gippopotam пишет:

p.masyukov пишет:

Что вы тут гадаете.

Я дал ссылку + можно выставить работу в фоне (тогда можно моментом переключать двигатель)

Ссылку для чего?

Есть четкое ТЗ. Зачем выдумывать что-то еще?

Что выдумывать, какое задание?? Это даже программой не назвать, помигать светодиодами сложнее будет.

Я дал ссылку на готовый практически скетч, там пару мелочей поправить под себя..

atsek
Offline
Зарегистрирован: 23.08.2016

Gippopotam.

Ваш скетч работает именно так как мне нужно. Толико пин на кнопку я поставил седьмой. Большое вам спасибо.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

С вас 100 рублей в фонд имени "Чистого Си".

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Gippopotam пишет:

Если на честном Си  - почему бы и нет?

Ай малацца !!! Но это прерогатива Онкеля, так что нечего на чужие писуары с подсветкой зариться !

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

brokly пишет:

Gippopotam пишет:

Если на честном Си  - почему бы и нет?

Ай малацца !!! Но это прерогатива Онкеля, так что нечего на чужие писуары с подсветкой зариться !

минусовал не я...

marat670
Offline
Зарегистрирован: 25.08.2016

Как с  вами можно связаться? 

 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

marat670 пишет:

Как с  вами можно связаться? 

 

С кем, со мной?

StudioGippopotam@gmail.com

 

Но если вас интересуют реквизиты вышеупомянутого фонда - это не ко мне.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Gippopotam пишет:

минусовал не я...

Дык это бессмыслено в данной субстанции :)

pcb
Offline
Зарегистрирован: 02.04.2015

marat670 пишет:

Как с  вами можно связаться? 

Телефон в шапке.
Вот, на него родимого, кидайте.