Модераторы: PILOT, ManiaK, Mazzi

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Управление посредством L297 и двух L6203, проблемы с шаговым двигателем 
:(
    Опции темы
Deliverance
  Дата 22.1.2008, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



Нужна помощь досталась ,от предшествиника, плата с котроллером Atmega8535. Плата проектировалась для управления пресса в режимах:
а)Наладка
б)Делительная головка (управление ШД)
в)Ручной
г)От педали(ножной)

Суть проблеммы.
ШД управляеться посредством L297 и двух L6203. Шаговый двигатель ШДР-56 на 6-ть выводов.Подключен на 4-е.Работает через раз.Раз работает нормально,а раз стоит и не вращаеться.
Программа управления написана на СИ . Прошита через AVR CodeVIsion

Двигатель работает в шаговом режиме,хотя на микросхеме L297 ,судя по DataSheet, установлен полушаговый режим Half.
Очень большая просьба помогитье.

PM MAIL WWW ICQ Skype   Вверх
xvr
Дата 22.1.2008, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 8
Всего: 223



Цитата(Deliverance @ 22.1.2008,  08:57)
Нужна помощь досталась ,от предшествиника, плата с котроллером Atmega8535. Плата проектировалась для управления пресса в режимах:
а)Наладка
б)Делительная головка (управление ШД)
в)Ручной
г)От педали(ножной)

Суть проблеммы.
ШД управляеться посредством L297 и двух L6203. Шаговый двигатель ШДР-56 на 6-ть выводов.Подключен на 4-е.Работает через раз.Раз работает нормально,а раз стоит и не вращаеться.
Программа управления написана на СИ . Прошита через AVR CodeVIsion

Двигатель работает в шаговом режиме,хотя на микросхеме L297 ,судя по DataSheet, установлен полушаговый режим Half.
Очень большая просьба помогитье.

Цитата

Товарищи Ученые - у меня в подвале происходит подземный стук! Разберитесь!

Давай схему платы и программу, а то штатные телепаты все в отпусках  smile 
PM MAIL   Вверх
Deliverance
Дата 22.1.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



Вот прога

Добавлено @ 10:11
А схема не грузиться.нарисована в пикаде( Отправил на маил.

Сорь ,на тот исходник
Вот тот что нужен 

Это сообщение отредактировал(а) Deliverance - 22.1.2008, 10:45

Присоединённый файл ( Кол-во скачиваний: 29 )
Присоединённый файл  dgmy.c 16,74 Kb
PM MAIL WWW ICQ Skype   Вверх
xvr
Дата 22.1.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 8
Всего: 223



Цитата(Deliverance @ 22.1.2008,  10:06)
Вот прога

Добавлено @ 10:11
А схема не грузиться.нарисована в пикаде( Отправил на маил.


Пока не пришло smile

Цитата

Сорь ,на тот исходник
Вот тот что нужен

При беглом взгляде на исходник (насколько я понял у тебя step ШД подключен к PORTB.4) я заметил вот это:
Код

#define M1              PORTB.4  //Двигатель основной М1

И дальнейшую работу с M1 для простого включения и выключения двигателя, что не согласуется с
Код

void step(void)
{
PORTB.0=1; PORTB.1=1;   //Установка тока шагового двигателя =1.5А
PORTB.4=1;
delay_us(600);
PORTB.4=0;
delay_us(600);
}

Ты уж определись что и куда у тебя подключено  smile 
PM MAIL   Вверх
Deliverance
Дата 22.1.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



Яж говорю,что не тот скинул(((


Присоединённый файл ( Кол-во скачиваний: 29 )
Присоединённый файл  dgmy.c 17,93 Kb
PM MAIL WWW ICQ Skype   Вверх
Deliverance
Дата 22.1.2008, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



После подачи питания на плату

МК запускает подпрограмму SelectMode

Выбираем режим DG
Потом запускается подпрограмма SelectPaz
Потом InitReduktor
Вот тут и начинаются  траблы((

Пробовал запустить только TestReduktor работает нормально(писалось спецом для для проверки датчиков холла)
А вот инит рдуктор не работае,один раз проходит пишет ,что шаги не совпадают и все,больше ни шагу движок не делает.даже после перевключения только мычит и всё
PM MAIL WWW ICQ Skype   Вверх
xvr
Дата 22.1.2008, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 8
Всего: 223



Цитата(Deliverance @ 22.1.2008,  12:17)
После подачи питания на плату

МК запускает подпрограмму SelectMode

Выбираем режим DG
Потом запускается подпрограмма SelectPaz
Потом InitReduktor
Вот тут и начинаются  траблы((

В первый раз шагает нормально?
Цитата

А вот инит рдуктор не работае,один раз проходит пишет ,что шаги не совпадают и все,больше ни шагу движок не делает.
И не  будет - у тебя Init_Reductor зацикливется в строке 325 при несовпадении шагов (кстати - сколько шагов показывает?)
Цитата

даже после перевключения только мычит и всё
После перевключения контроллера? Это странно, должно все сбросится.

PS. Схема так и не пришла.
PM MAIL   Вверх
Deliverance
Дата 22.1.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



204 шага,а почему за цикливаеться?
Не после сброса питания ,всё также ,тока когда до инит редуктора доходит начинает сразу мычать(

Это сообщение отредактировал(а) Deliverance - 22.1.2008, 14:06
PM MAIL WWW ICQ Skype   Вверх
xvr
Дата 22.1.2008, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 8
Всего: 223



Цитата(Deliverance @ 22.1.2008,  13:39)
204 шага,а почему за цикливаеться?

У тебя там есть такой код
Код

 if (Kol_step!=9802) {
  lcd_gotoxy(0,0);
  lcd_putsf("Bad reduktor!!!");
  lcd_gotoxy(0,1);
  sprintf(lcd_buffer, "Steps=\x%5u", Kol_step);
  lcd_puts(lcd_buffer);
 // PORTB.0=1; PORTB.1=1;   //Установка тока шагового двигателя =1.5А
  Exit=0;
  while (Exit==0) {
   //if (Sel_Mode==0) { Test_Reductor(); };  
  };
 };

Если программа попадает в if, что у тебя и происходит, то она циклится в while (Exit==0), т.к. тело цикла у тебя пустое, а переменная Exit так и останется в нуле.

Судя по тому, что число шагов сильно отличается от требуемого, то неправильна либо логика работы с датчиками хола либо где то механическая неисправность.

Как должны работать эти датчики?

Цитата

Не после сброса питания ,всё также ,тока когда до инит редуктора доходит начинает сразу мычать(

Это странно, как минимум 400 шагов он должен был сделать. А импульсы на ШД вообще выдаются? Может остался включенным какой нибудь тормоз или муфта?


PM MAIL   Вверх
Deliverance
Дата 22.1.2008, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



9802 - это шаги ШД,которые он делает за полный оборот заготовки, 204- это шаги ШД за один оборот вала ШД ,Редуктор 1:48,отсюда и все цифры,посмотри ,а нужен там вообще этот while? Датчики работают так,один отлеживает кол-во оборотов вала ШД,а второй оборотов Заготовки ,т.е. стоит ,грубо говоря, на валу редуктора. 
Процедура Init_Reduktor подразумевает следующее:
поверяються датчики холла (в каком положении находяться). Должны оба прийти в 0, Пока они не пришли выполняеться процедура Step.
Когда пришли,выполняеться инициализация. Я так понимаю For a=0; a<200; a++; Для того чтоб сдвинуть с нулевой точки.Следовательно редуктор должен сделать не больше однг8о полного круга,потом второй раз здвигаем датчик на 200 шагов,но при этом шаги уже считаем и считаем до того момента пока не придем в 0 датчиком редуктора,потом сравниваем кол-во шагов и если не совпали.то выводим "плохой редуктор". А совпали идём дальше

Добавлено через 2 минуты и 55 секунд
Вот так должно работать,а не хочет(( Муфт нет ,тормозить может тока электроникой.ну и если клина поймает редуктор.но на проверке ДХ работает же ! Не клинит! Ещё раз кинул схему на маил. Кидал непосредственно с маил ру.
PM MAIL WWW ICQ Skype   Вверх
xvr
Дата 22.1.2008, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 8
Всего: 223



Цитата(Deliverance @ 22.1.2008,  15:06)
9802 - это шаги ШД,которые он делает за полный оборот заготовки, 204- это шаги ШД за один оборот вала ШД ,Редуктор 1:48,отсюда и все цифры,посмотри ,а нужен там вообще этот while? Датчики работают так,один отлеживает кол-во оборотов вала ШД,а второй оборотов Заготовки ,т.е. стоит ,грубо говоря, на валу редуктора. 
Процедура Init_Reduktor подразумевает следующее:
поверяються датчики холла (в каком положении находяться). Должны оба прийти в 0, Пока они не пришли выполняеться процедура Step.
Когда пришли,выполняеться инициализация. Я так понимаю For a=0; a<200; a++; Для того чтоб сдвинуть с нулевой точки.Следовательно редуктор должен сделать не больше однг8о полного круга,потом второй раз здвигаем датчик на 200 шагов,но при этом шаги уже считаем и считаем до того момента пока не придем в 0 датчиком редуктора,потом сравниваем кол-во шагов и если не совпали.то выводим "плохой редуктор". А совпали идём дальше

Добавлено @ 15:09
Вот так должно работать,а не хочет(( Муфт нет ,тормозить может тока электроникой.ну и если клина поймает редуктор.но на проверке ДХ работает же ! Не клинит! 

У тебя в 2х while'ах (стр 291 и 310) противоречивые условия - они должны быть одинаковыми.
При срабатывании датчики выдают 0, я правильно понял? Тогда условие нужно записать так
( !(DH1==0 && DH2==0) )

Отбой, условия у тебя одинаковые, хотя и записаны по разному smile

Остается предположение, что датчик с вала редуктора не успевает снять 0 за один оборот вала ШД (люфт или зона срабатывания датчика слишком большая).

NB. А while лучше написать как while(DH1 || DH2)

Цитата

Ещё раз кинул схему на маил. Кидал непосредственно с маил ру.
 А, ты ее на мой e-mail кидал?! Тогда я ее посмотрю только вечером (как домой дойду)


Это сообщение отредактировал(а) xvr - 22.1.2008, 16:30
PM MAIL   Вверх
Deliverance
Дата 22.1.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



Условия и так и так пробовал,работает,суть в том ,что редуктор сфолочь клинит((( Движок не может сорвать.вот почему не включался второй раз. без кострукции (отдельно тока ШД) работает. Вопрос по поводу шагового и полушагового режима остался открытым. Уменя ШД с 6-ю выводами,два средних по схеме должны быть "-" А у меня тупо они откинуты,непойму почему.Спасибо за помошь,оч помог!
Просьба, завтра если что,помочь. А вообще былоб удобнее в аське,моя есть твою не знаю.

Добавлено через 2 минуты и 10 секунд
Да и ещё Когда пытаюсь сдержать ШД (рукой за вал) Чувствую что проскакивает.как избежать проскакивания?
PM MAIL WWW ICQ Skype   Вверх
xvr
Дата 22.1.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 8
Всего: 223



Цитата(Deliverance @ 22.1.2008,  16:30)
Условия и так и так пробовал,работает,суть в том ,что редуктор сфолочь клинит((( Движок не может сорвать.вот почему не включался второй раз. 

Люфт в редукторе или ШД не тянет редуктор? Если первое - то увеличь количество шагов для ухода с 0 (сделай на несколько полных оборотов вала ШД), если второе - то труба :(

Цитата

Вопрос по поводу шагового и полушагового режима остался открытым. 

Посмотрю схему, как доберусь до дома

Цитата

Уменя ШД с 6-ю выводами,два средних по схеме должны быть "-" А у меня тупо они откинуты,непойму почему.

Судя по всему движок расчитан под униполярное включение, а драйвер - под биполярное. Должно работать, но момент на валу упадет

Цитата

Спасибо за помошь,оч помог!
Просьба, завтра если что,помочь. А вообще былоб удобнее в аське,моя есть твою не знаю.


Аськи нет, увы.

Цитата

Да и ещё Когда пытаюсь сдержать ШД (рукой за вал) Чувствую что проскакивает.как избежать проскакивания?

Мал момент. Варианты:
1) Увеличить напряжение питания
2) Перейти на полный шаг

PM MAIL   Вверх
xvr
Дата 22.1.2008, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 8
Всего: 223



Посмотрел схему, есть несколько замечаний:
1) Максимальное напряжение на выводе Ref L297 3.3V, по datasheet допутимый максимум - 3.0V
2) При номинале Rsens (U32 & U33) в 0.2Ом ток максимальный ток стабилизации для двигателя - 15А, что явно ни в какие ворота не лезет. Увелич резисторы до 2 Ом. Сейчас двигатель явно работает без стабилизации вообще, что при его сопротивлении обмотки сказывается не очень сильно smile
3) После увеличения резисторов до 2х Ом можно поднять напряжение питания двигателя (раза в 2)
4) Переведи L297 в Full Step режим - момент на валу увеличится
5) Двигатель сам по себе довольно хлипкий, может редуктор не потянуть несмотря ни на что :(

PM MAIL   Вверх
Deliverance
Дата 22.1.2008, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.12.2007
Где: Украина,Донецк

Репутация: нет
Всего: нет



Спасибо,завтра буду смотреть поместу,всё дело в том ,что я как раз не электронщик(( Эта тема для меня в нове.Ни платами ни ШД ни электроникой раньше вообще не занимался.Поэтому прошу мне простить мою некопетентность в даном вопросе.Ещё раз спасибо,а то  посоветоваться не с кем было.)
PM MAIL WWW ICQ Skype   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0971 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.