Просмотр этой темы:
3 анонимных пользователей
1 2
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
есть ли примеры управления шаговиком по датчику холла?
Отправлено: 20.11.2021 20:53
|
|
Модератор
Зарегистрирован:
26.01.2010 23:26 Из: Тирасполь
Сообщений:
3926
|
А зачем шаговику датчик Холла?
Отправлено: 20.11.2021 21:59
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
чтобы определить начальную точку движения
Отправлено: 20.11.2021 22:06
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
необходимо что бы при каждом включении ардуинки вал двигателья занимал одну и ту же позицию
Отправлено: 20.11.2021 22:08
|
|
Администратор
Зарегистрирован:
07.08.2008 20:40 Из: Тирасполь
Сообщений:
7275
|
А в чем сложность то? Вы ставите на ваше устройство концевик (датчик холла), ну и при инициализации контролируете срабатывание концевика и крутите шаговый двигатель до срабатывания.
Ну или для правильного понимания вопроса конкретнее опишите ваше устройство.
Отправлено: 21.11.2021 0:21
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
все верно вы написали.не могу понять как это выразить в коде.
Отправлено: 21.11.2021 0:38
|
|
Администратор
Зарегистрирован:
07.08.2008 20:40 Из: Тирасполь
Сообщений:
7275
|
volatile boolean intFlag = false; // флаг
Можно еще вначале проверять на событие, что концевик уже нажат, и пропускать все.
Отправлено: 21.11.2021 10:46
Отредактировано пользователем MACTEP 21.11.2021 18:03:26
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
#include
int hallSensorPin = 2; int dirA = 12; int dirB = 13; int pwmA = 3; int pwmB = 11; Stepper stepper(200, dirA, dirB); volatile boolean intFlag = false; void setup() { pinMode(2, INPUT_PULLUP); // 2 пин вход с подтягивающим резистором - концевик // 0 - прерывание 0 // обработчик - функция turnStep // FALLING - при срабатывании концевика будет сигнал 0, его и ловим attachInterrupt(0, turnStep, FALLING); pinMode(pwmA, OUTPUT); pinMode(pwmB, OUTPUT); digitalWrite(pwmA, HIGH); digitalWrite(pwmB, HIGH) stepper.setSpeed(60); } примерно так должно быть?
Отправлено: 21.11.2021 14:50
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
не пошло. пошел курить литературу дальше))))))
Отправлено: 21.11.2021 14:57
|
|
Администратор
Зарегистрирован:
07.08.2008 20:40 Из: Тирасполь
Сообщений:
7275
|
Вот работающий код по отключению встроенного светодиода по клику на 2 вывод (0 - прерывание)
volatile boolean intFlag = false; // флаг
Код вставляйте в теги, у вас часть порезало...
Отправлено: 21.11.2021 16:41
Отредактировано пользователем MACTEP 21.11.2021 18:07:26
Отредактировано пользователем MACTEP 21.11.2021 18:08:14 Отредактировано пользователем MACTEP 21.11.2021 18:08:43 |
|
1 2