Шаговик и концевики

jablokov
Offline
Зарегистрирован: 08.10.2021

Ардуино Uno + мотор 28BYJ-48 с драйвером ULN2003 + два концевика.

Мотор крутится в одну сторону концевик меняет направление в обратную.

 

Скорость движения мотора выставляется в скетче. 

 

Все.

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

Отличный случай для ежегодного эксперимента. Платите сколько посчитаете нужным.

01#include <CustomStepper.h>           
02 
03const uint8_t in1 = 8;
04const uint8_t in2 = 9;
05const uint8_t in3 = 10;
06const uint8_t in4 = 11;
07 
08const uint8_t limitR = 2;
09const uint8_t limitL = 3;
10const float rpm = 12.0;
11 
12CustomStepper stepper(in1, in2, in3, in4); 
13 
14void setup() {
15  stepper.setRPM(rpm);                
16  stepper.setSPR(4075.7728395);      
17  pinMode(limitR, INPUT_PULLUP);
18  pinMode(limitL, INPUT_PULLUP);
19  stepper.setDirection(CW);
20  stepper.rotate(0);
21}
22 
23void loop() {
24  if (LOW == digitalRead(limitR)) {
25    stepper.setDirection(CW);       
26  }
27  if (LOW == digitalRead(limitL)) {
28    stepper.setDirection(CCW);       
29  }
30  stepper.run();                     
31}

wrk.sadman@gmail.com

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Дворник для машины? 

Давно не брал ты в руки шашек...

Или ошибок налепил для прикола? Не жалко студента?

barmaley2m@yandex.ru

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

Ошиб_о_к? Расскажи-ка про них, послушаю.

Одна функция ( rotate ) была забыта - это так. Поленился ночью прицепить драйвер с лампочками.

 

Green
Offline
Зарегистрирован: 01.10.2015

Помойму направления попутаны, не? Если наименования концевиков соответствуют логике).

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

sadman41 пишет:

Ошиб_о_к? Расскажи-ка про них, послушаю.

Одна функция ( rotate ) была забыта - это так. Поленился ночью прицепить драйвер с лампочками.

Ну да. Заказчик же программист, он сам увидит, что одной функции нет. Вставит. 

А это ты наверное на чистом СИ написал?

if (LOW == digitalRead(limitR))

Ещё или сам признаешься, где ему затычек наставил? Вот не верю, что ТАК случайно ошибся. 

 

 

Green
Offline
Зарегистрирован: 01.10.2015

Бармалей пишет:

А это ты наверное на чистом СИ написал?

if (LOW == digitalRead(limitR))


Это Yoda Conditions для тех кто понимает.)

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Тогда всё правильно :)

b707
Offline
Зарегистрирован: 26.05.2017

Бармалей, ты либо пальцем покажи. либо не выделывайся. Что, например, тебя не устраивает в записи (LOW == digitalRead()) ?

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

Green пишет:

Помойму направления попутаны, не? Если наименования концевиков соответствуют логике).


Какой логике? ТС написал "в одну сторону и в другую". А как у него там мотор стоит - к лесу задом или передом я без понятия.

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

b707 пишет:

Бармалей, ты либо пальцем покажи. либо не выделывайся. Что, например, тебя не устраивает в записи (LOW == digitalRead()) ?

То есть, скетч рабочий? Тогда я молчу. 

Green
Offline
Зарегистрирован: 01.10.2015

sadman41 пишет:
Какой логике? ТС написал "в одну сторону и в другую". А как у него там мотор стоит - к лесу задом или передом я без понятия.

Моей.) Если достигли левого концевика, то начинаем двигаться по часовой (CW). И наоборот. Конечно, если двигатель стоит раком - тогда всё меняется.)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Бармалей пишет:

А это ты наверное на чистом СИ написал?

if (LOW == digitalRead(limitR))

Ещё или сам признаешься, где ему затычек наставил? Вот не верю, что ТАК случайно ошибся.

Познавшие дзен пишут именно так, чтобы не написать случайно оператор присваивания в скобках условия if. Оператор присваивания отдаёт значение правого операнда и поведение программы сложно предсказать в этом случае.  Чтобы не наделать трудноуловимых ошибок, гуру пишут именно так 

if (5 == i), а не if (i == 5)

тогда ошибочно написанный в скопках оператор присваивания мгновенно выловится компилятором.  Станешь гуру - будешь сам так писАть, а пока не позорься. 

jablokov
Offline
Зарегистрирован: 08.10.2021

Очень интересно, но ничего не понятно. Сейчас попробую. Сообщу.

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Ага, интересно, как программа заработает. 

jablokov
Offline
Зарегистрирован: 08.10.2021

Моторчик крутится, но концовки не срабатывают. Их надо на 2 и 3 пины, а второй контакт куда?

jablokov
Offline
Зарегистрирован: 08.10.2021

GND разобрался. Все ок!!!

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

jablokov пишет:

Моторчик крутится, но концовки не срабатывают. Их надо на 2 и 3 пины, а второй контакт куда?

в розетку.

денехx то переслал?

jablokov
Offline
Зарегистрирован: 08.10.2021

обязательно