Форум

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

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

В сети

Пользователей: 121
Из них просматривают:
Аналоги: 52. Даташиты: 49. Инструкции: 2. Новости: 2. Остальное: 3. Программы: 1. Форум: 11. Чат: 1.
Участников: 3
Гостей: 118

an , 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
Из: Тирасполь
Сообщений: 7287
Не в сети
А в чем сложность то? Вы ставите на ваше устройство концевик (датчик холла), ну и при инициализации контролируете срабатывание концевика и крутите шаговый двигатель до срабатывания.

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



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



Re: управление шаговиком
Администратор
Зарегистрирован:
07.08.2008 20:40
Из: Тирасполь
Сообщений: 7287
Не в сети
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
Из: Тирасполь
Сообщений: 7287
Не в сети
Вот работающий код по отключению встроенного светодиода по клику на 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


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


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

Разное

Интересно

При замене электролитических конденсаторов, кроме соблюдения полярности, не следует значительно превышать допустимое рабочее напряжение.
Например, если конденсатор рассчитан на рабочее напряжение 16 В, то при установке нового той же емкости, но рассчитанного на напряжение 300 В после непродолжительной эксплуатации произойдет его расформовка, и емкость его значительно уменьшится.