Форум

Радиолюбительский форум.

Если у Вас возникли вопросы, задавайте их на форуме.

В сети

Пользователей: 119
Из них просматривают:
Аналоги: 30. Даташиты: 21. Инструкции: 5. Новости: 11. Остальное: 4. Программы: 1. Производители: 3. Профиль пользователя: 22. Форум: 22.
Участников: 2
Гостей: 117

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.

Просмотр этой темы: 

 1 анонимных пользователей
управление шаговиком
Сотрудник
Зарегистрирован:
09.10.2013 22:40
Сообщений: 36
Не в сети
есть ли примеры управления шаговиком по датчику холла?



Re: управление шаговиком
Модератор
Зарегистрирован:
26.01.2010 23:26
Из: Тирасполь
Сообщений: 3926
Не в сети
А зачем шаговику датчик Холла?



Re: управление шаговиком
Сотрудник
Зарегистрирован:
09.10.2013 22:40
Сообщений: 36
Не в сети
чтобы определить начальную точку движения



Re: управление шаговиком
Сотрудник
Зарегистрирован:
09.10.2013 22:40
Сообщений: 36
Не в сети
необходимо что бы при каждом включении ардуинки вал двигателья занимал одну и ту же позицию



Re: управление шаговиком
Администратор
Зарегистрирован:
07.08.2008 20:40
Из: Тирасполь
Сообщений: 7275
Не в сети
А в чем сложность то? Вы ставите на ваше устройство концевик (датчик холла), ну и при инициализации контролируете срабатывание концевика и крутите шаговый двигатель до срабатывания.

Ну или для правильного понимания вопроса конкретнее опишите ваше устройство.



Re: управление шаговиком
Сотрудник
Зарегистрирован:
09.10.2013 22:40
Сообщений: 36
Не в сети
все верно вы написали.не могу понять как это выразить в коде.



Re: управление шаговиком
Администратор
Зарегистрирован:
07.08.2008 20:40
Из: Тирасполь
Сообщений: 7275
Не в сети
volatile boolean intFlag false;   // флаг

void setup() {
  pinMode(2INPUT_PULLUP);  // 2 пин вход с подтягивающим резистором - концевик

  // 0 - прерывание 0
  // обработчик - функция turnStep
  // FALLING - при срабатывании концевика будет сигнал 0, его и ловим
  attachInterrupt(0turnStepFALLING);
  // Здесь запускаем ШД
}


void turnStep() {
  intFlag true;   // подняли флаг прерывания    
}

void loop() {
  if (intFlag) {
    intFlag false;    // сбрасываем
    // Здесь останавливаем ШД
   
}
как то так наверное...
Можно еще вначале проверять на  событие, что концевик уже нажат, и пропускать все.


Отредактировано пользователем MACTEP 21.11.2021 18:03:26


Re: управление шаговиком
Сотрудник
Зарегистрирован:
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);
}


примерно так должно быть?




Re: управление шаговиком
Сотрудник
Зарегистрирован:
09.10.2013 22:40
Сообщений: 36
Не в сети
не пошло. пошел курить литературу дальше))))))



Re: управление шаговиком
Администратор
Зарегистрирован:
07.08.2008 20:40
Из: Тирасполь
Сообщений: 7275
Не в сети
Вот работающий код по отключению встроенного светодиода по клику на 2 вывод (0 - прерывание)
volatile boolean intFlag false;   // флаг
void setup() {
  pinMode(2INPUT_PULLUP);  // 2 пин вход с подтягивающим резистором - концевик
  pinMode(13OUTPUT); //светодиод
  // 0 - прерывание 0
  // обработчик - функция turnStep
  // FALLING - при срабатывании концевика будет сигнал 0, его и ловим
  attachInterrupt(0turnStepFALLING);
  digitalWrite(131); //зажигаем светодиод
}

void turnStep() {
  intFlag true;   // подняли флаг прерывания    
}

void loop() {
  if (intFlag) {
    intFlag false;    // сбрасываем
    digitalWrite(130); //отключаем светодиод
   
}

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


Отредактировано пользователем MACTEP 21.11.2021 18:07:26
Отредактировано пользователем MACTEP 21.11.2021 18:08:14
Отредактировано пользователем MACTEP 21.11.2021 18:08:43


Поиск по форуму


Расширенный поиск

Разное

Интересно

Диэлектрические и диамагнитные отвертки можно выпилить из старых стеклотекстолитовых плат.