Шд+ a4988+e18-d80nk

Akim42
Offline
Зарегистрирован: 18.03.2019

Задача
Вращать шаговый двигатель(nema 17) если есть( кредит )
Вращать до тех пор пока датчик(e18-d80nk) не обнаружит объект
После обнаружения останавливать шд до появления кредита

Я начинающий ,заранее спасибо!

Сектч:
#include
AccelStepper Stepper1(1,11,10); //использует пин 10 и 11 для dir и step, 1 - режим "external driver" (A4988)
int steeps = 5000; // количество шагов
long KNO1 = 0; // Исходное значение для таймера.
long KNO2 = 200; // 200 милисекунд предотвращения повторного нажатия
int dir = 1;

const int coinpin = 2;
const int targetcents = 5;
#define SENSOR 3

volatile int cents = 0;
int credits = 0;

// Setup
void setup() {
attachInterrupt(digitalPinToInterrupt(coinpin), coinInterrupt, RISING);
pinMode(SENSOR, INPUT_PULLUP);
Stepper1.setMaxSpeed(1000); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду)
Stepper1.setAcceleration(700); //устанавливаем ускорение (шагов/секунду^2)
}

// Main loop
void loop() {
if (cents >= targetcents) {
credits = credits + 1;
cents = cents - targetcents;
}
else {
}
if (credits > 0) {
digitalRead(SENSOR);
unsigned long r = millis();
if(digitalRead(SENSOR)==0){
if(r - KNO1 > KNO2){
Stepper1.move(steeps);
steeps=steeps*1;
KNO1 = r;
Stepper1.run();}
}

credits = credits - 1;
}
}
void coinInterrupt(){
cents = cents + 1;
}

Поведение при данном скетче : если есть кредит
То двигатель вращается ,при появлении припятствия
Останавливается (шд) и сразу продолжает движение,
А нужно остановить и не запускать до появления
Нового кредита.

sadman41
Offline
Зарегистрирован: 19.10.2016

Не знаю, что тут означает "кредит", но вот это даю абсолютно бесплатно: http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

Akim42
Offline
Зарегистрирован: 18.03.2019

Спасибо ,кредит это 5 рублей ,каждые 5 рублей один кредит

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Зачем писать человеку, если он ... не выполняет то что написано выше. Может дело в стилистике написаного выше http://arduino.ru/forum/otvlechennye-temy/o-stilistike-foruma

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

В строке ХЗ Вы запускаете двигатель по условию наличая кредитов, но я не увидел остановки двигателя при кредитах=0. Допишите или это надо за Вас сделать? Если это так, так обратитесь к тому у кого скопирастили программу.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

qwone пишет:

Может дело в стилистике написаного выше

В смысле написали так. как журналист, и это оказалось непонятым, надо бы как редактор? :)