Официальный сайт компании Arduino по адресу arduino.cc
Контроль перемещения и линейный энкодер
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Всем здавствуйте!
Есть ардуино уно, шаговик (униполярный), драйвер шаговика, дисплей 16х2, клавиатура 3х4, энкодер и оптический датчик! Также есть две линейные направляющие и ходовой винт к которому подсоединен шаговик и два концевика (один для калибровки начала, второй для определения максимального расстояния)! Максимальное расстояние перемещения каретки приблизительно 550 мм!!!
Вобщем задумка такая. Сделать из всего этого что-то типа: набрал на клаве расстояние в миллиметрах, нажал на "решетку" и каретка отъехала на заданное расстояние! Кнопка "звездочка" для сброса неправильно набранного расстояния!
Т.к. для меня это дело новое я не знаю с чего начать!
Может кто нибудь укажет на то с чего начинать? Или же если есть подобная тема, просьба скинуть ссылочку!
Зачем энкодер? Вымеряете шаг резьбы ходового винта и крутите шаговик на нужное количество оборотов.(если к примеру шаг=0,5 то два оборота будет смещение 1мм и т.д.).
У шаговиков иногда случаются пропуски шагов, а энкодер будет более точно передавать расстояние!
В ЧПУ энкодеры стоят? У меня нет. И пропусков шагов тоже нет.
Хотите с энкодером ? Пожалуйста.
"мы легких путей не исчем"(с)
ОК, но как все это дело согласовать с матричной клавиатурой?
Мне, как вы помните, нужно задать расстояние с клавиатуры!!!
В некоторых ЧПУ параллельно к счету шагов стоят энкодеры для контроля, вернее стоят специальные линейки которые дают большую точность нежели энкодеры. В большинстве случаев конечно вы правы что энкодеры не используются. Существуют так же т.н. гибридные двигатели в которых энкодер уже внутри стоит.
Теперь как задать расстояние с клавиатуры. Для начала вам надо определить какая кнопка нажата. Все зависит от того аналоговая клавиатура или матричная. Скорее всего матричная. Тогда ищите как читать матричную клавиатуру. Тут скорее всего возникает требование нажимать на одну кнопку за раз. Нажатую кнопку определили, проверяем ее на решетку и звездочку, если да, то выполняем смещение либо обнуляем переменную (лучше как мне кажется хранить текстом). Если первая проверка не прошла значит нажато число, его добавляем к тексту. После добавления преобразуем текст в число и сравниваем с максимальным, если оно больше, то... вам решать что делать.
Также советую хранить текущую позицию - проще будет считать перемещение.
Есть отдельно скечи для управления шаговиком, чтение энкодерной ленты и подключение матричной клавиатуры, а вот как их объеденить не особо понятно!
PS У меня первая ардуино пявилось пару месяцев назад! До этого с програмированием дел не имел!!!!
Ну так и выкладывайте что уже есть и что не понятно.
Опишите своими словами последовательность действий\ логику работы устройства.
Например
1. С клавиатуры вводится величина перемещения (скетч для калвиатуры)
2. Рассчитывается, сколько это будет в шагах ШД. (самостоятельно)
3. Подаются соотвктствующие команды на шаговик (скетч для шаговика)
4. После каждого шага шаговика считываются показания с энкодерной ленты и сравниваются с шаговиком.
5. Если расхождения нет, делаем следующий шаг.
Ну или сразу делаем заданное число шагов, считываем показания с ленты и сравниваем ))
Всем здавствуйте!
Есть ардуино уно, шаговик (униполярный), драйвер шаговика, дисплей 16х2, клавиатура 3х4, энкодер и оптический датчик! Также есть две линейные направляющие и ходовой винт к которому подсоединен шаговик и два концевика (один для калибровки начала, второй для определения максимального расстояния)! Максимальное расстояние перемещения каретки приблизительно 550 мм!!!
Вобщем задумка такая. Сделать из всего этого что-то типа: набрал на клаве расстояние в миллиметрах, нажал на "решетку" и каретка отъехала на заданное расстояние! Кнопка "звездочка" для сброса неправильно набранного расстояния!
Т.к. для меня это дело новое я не знаю с чего начать!
Может кто нибудь укажет на то с чего начинать? Или же если есть подобная тема, просьба скинуть ссылочку!