Управление шаговым двигателем по UART - Проекты - AVR project. Dim S As. Byte 'эта переменная следит за номером шага двигателя. Dim A As. Word 'хранит количество сделанных шагов. Dim N As. Word 'хранит количество полушагов которые необходимо сделать. Dim T As. String*6 'хранит команду пришедшую по UARTDim Sign As. String*1 'хранит направление движения. Dim M As. Byte 'хранит количество знаков в команде пришедшей по UARTDim Char As. String*5 'хранит числовое значение необходимых шагов. S =1 'нумерация шагов начинается с единицы'прерывания будут генерироваться пока на ноге низкий уровень, то есть пока кнопка будет нажата. Config. Int. 0=Low Level. Config. Int. 1=Low Level. Config. Portb=Output 'конфигурируем порт на выход. Config. Portd. 5=Output 'конфигурируем ногу для подключения светодиода. Led Alias. Portd. Для установки приложения запустите файл setup.exe и следуйте дальнейшим инструкциям. «Модуль ЧПУ. Для этого вызовите команду приложения Настройки и в текстовом поле соответствующей строки укажите полный путь к исполняемому файлу Python. Установка драйвера. 2.1 Windows 98/ME. После загрузки, Windows обнаружит модем автоматически. Нажмите Отменить. Затем вставьте компакт-диск с драйверами. Какую схему драйвера посоветуете, чтобы подключить такие двигатели к контролеру на основе 555ТМ7????? уже начал монтаж блока контролеров). хочу собрать станок на основе готовой платы из поднебесной (CNC 3 Axis Stepper Motor Driver Controller Board TB6560) есть много нерабочих.. Программа turboCNC поддерживает работу с контроллером VRI-cnc на 555тм7. Давайте рассмотрим настройки бесплатной программы управления самодельного станка с ЧПУ с дешевыми контроллерами на 555тм7.. Имеется драйвер Microstep Driver CW8060 и Мотор stepping motor 85BYGH450B 06D 43 CW No:11.11.30 Станок китаец CM1325 работает под. Смотрим таблицу на драйвере: Положение ON на переключателях драйвера = 0 в таблице.. Описание программы VRI- cnc (для контроллера VRI на 555тм7) Драйвер ( программный) для обслуживания LPT под XP я взял здесь настройка чтобы проверить работу тм7 необходимо передать следующие сигналы в LPT. Один из выходов - создание самодельного станка с ЧПУ. Контроллеры выдают, а драйвера принимают, последовательность в виде «Данные» передаются на триггеры ТМ7 выводы 2, 3, 6, 7 (D1, D2, D3, D4. Настройка. Система управления для ЧПУ станка покруче чем на ТМ7 =) увы, я не нащел ни одного доступного самодельного контроллера. Из известных мне подобных проектов самый продвинутый выложен здесь http:// cnc / частота тактирования в программе 4 мгц, а зачем в настройки. Самодельный станок с ЧПУ для механической обработки пластмасс, данные записываются в триггер ТМ7 и соответственно поступают на драйвер. LED выводу 5 порта DOn Urxc Command 'даем ссылку на обработчик прерывания по UARTOn. Int. 0 Knopka. 1 'даем имена обработчикам прерываний от кнопок. On. Int. 1 Knopka. Enable. Interrupts. Enable Urxc. Enable. Int. 0Enable. Int. Print"Enter direction (+,- ) and value step"'****** ОСНОВНОЙ ЦИКЛ ПРОГРАММЫ ******Do'проверяем состояние переменной Sign'в зависимости от ее содержимого выполняем соответствующий код If Sign ="+"Then 'если в ней плюс. Led =1 'зажигаем светодиод. Gosub Plus 'выполняем подпрограмму с меткой plus. Led =0 'гасим светодиод Print"OK!"Print""Print"Enter direction (+,- ) and value step" End. If If Sign ="- "Then 'если в ней минус. Led =1 'зажигаем светодиод. Gosub Minus 'выполняем подпрограмму с меткой minus. Led =0 'гасим светодиод Print"OK!"Print""Print"Enter direction (+,- ) and value step" End. If. Loop'****** здесь крутим двигатель в одном направлении ******Plus: Do. Incr S 'увеличим номер шага If S =9. Then 'максимально возможный номер шага = 8. S =1. End. If. Select. Case S 'выбираем какие обмотки включать в зависимости от номера шага. Case. 1: Portb= & B0. Case. 2: Portb= & B0. Case. 3: Portb= & B0. Case. 4: Portb= & B0. Case. 5: Portb= & B0. Case. 6: Portb= & B0. Case. 7: Portb= & B0. Case. 8: Portb= & B0. End. Select. Waitus. Incr A 'считаем пройденные шаги Loop Until A = N 'если прошагали сколько нужно выходим из цикла'обнуляем переменные. A =0. N =0. Sign ="0"Return 'возвращаемся в главный цикл программы'****** а здесь крутим двигатель в обратном направлении ******Minus: Do. Decr S If S =0. Then 'минимально возможный номер шага = 1. S =8. End. If. Select. Case SCase. 1: Portb= & B0. Case. 2: Portb= & B0. Case. 3: Portb= & B0. Case. 4: Portb= & B0. Case. 5: Portb= & B0. Case. 6: Portb= & B0. Case. 7: Portb= & B0. Case. 8: Portb= & B0. End. Select. Waitus. Incr A Loop Until A = N'обнуляем переменные. A =0. N =0. Sign ="0"Return 'возвращаемся в главный цикл программы'****** обрабатываем команду пришедшую по UART ******Command: Input T 'пришедшая команда. Sign =Left(t , 1) 'вытащим первый символ, отвечающий за направление движения. M =Len(t) 'узнаем сколько символов в пришедшей команде. M = M - 1 'убавляем на 1, так как первый символ хранит только направление. Char =Right(t , M) 'вытаскиваем из команды все символы кроме первого символа. N =Val(char) 'преобразуем строку в числовую переменную. N = N *2 'теперь мы знаем сколько нужно сделать полушагов (N)Return'****** обработка нажатия кнопок ****** Knopka. Led =1 'зажигаем светодиод. Incr S 'увеличим номер шага If S =9. Then 'максимально возможный номер шага = 8. S =1. End. If. Select. Case S 'выбираем какие обмотки включать в зависимости от номера шага. Case. 1: Portb= & B0. Case. 2: Portb= & B0. Case. 3: Portb= & B0. Case. 4: Portb= & B0. Case. 5: Portb= & B0. Case. 6: Portb= & B0. Case. 7: Portb= & B0. Case. 8: Portb= & B0. End. Select. Waitus. Led =0 'гасим светодиод. Return Knopka. 2: '< < < обработчик прерывания второй кнопки. Led =1 'зажигаем светодиод. Decr S 'тут все тоже самое, только в обратном направлении If S =0. Then 'минимально возможный номер шага = 1. S =8. End. If. Select. Case SCase. 1: Portb= & B0. Case. 2: Portb= & B0. Case. 3: Portb= & B0. Case. 4: Portb= & B0. Case. 5: Portb= & B0. Case. 6: Portb= & B0. Case. 7: Portb= & B0. Case. 8: Portb= & B0. End. Select. Waitus. Led =0 'гасим светодиод.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
December 2016
Categories |