Перейти к содержанию

Рекомендуемые сообщения

Добрый вечер уважаемые! Проблема такая:

Есть мощный шаговый двигатель. На родном контроллере мог вращаться с большими оборотами.

Разработал на МК прототип устройства, все вроде отлично... но проблема в том что не удается достигнуть бОльших оборотов....

двигатель "дергается" ... Я сделал драйвер практически в точности, только поставил мощнее и современнее элементную базу..

Вопрос такой:

какие надо формировать импульсы для того чтобы получить максимально возможные обороты , и максимально возможную мощность?

Двигатель униполярный (4 фазы) питание 6В ток 2.4А.

Пробовал такие последовательности импульсов:

1000

0100

0010

0001

1100

0110

0011

1001

1110

0111

1011

1101

Буду ВАМ оооочень признателен за помощь!

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

между переключениями пауза есть? я делал по 1-3 ms - от типа двигателя зависит

самый быстрый - верхний, полношаговый

второй - полшага, мощнее и точнее.

нижний - не знаю, как я понимаю, это для ехе бОльшей мощности и точности

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1000 : waitms 1

0100: waitms 1

..............

Стоп, а пауза где?

разве не так должно быть?

: 1000 подождать потом 0000 подождать 1мс.

потом 0100 и т.д.

Вот у меня так:

Только не удается получить больших оборотов.... они должны быть больше в 3 раза чем на видео....

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

прим на асме от Дитер Кохц:

;**************************************************************
; Программа DREHSCHB.asm. Управление позиционированием стрелки
; с помощью шагового двигателя и микросхемы L293.
; PIC 16C54, f = 4,096 МГц; Кнопка "Влево" - RA0,
; кнопка "Вправо" - RA1, концевой выключатель - RA2
;**************************************************************
; Определения регистров
RTCC equ 1
PC equ 2
STAT equ 3
FSR equ 4
PORTA equ 5
PORTB equ 6
ZAEHL equ 8 ; Счетчик длительности паузы
ZAEHL8 equ 9 ; Кольцевой счетчик шагового цикла
SCHRT equ 0A ; Счетчик для отдельного шага
; Регистры назначения
w equ 0
f equ 1
; Разряды
zero equ 2
carry equ 0
;**************************************************************
org 0
beginn goto init
;**************************************************************
pause movlw 0A ; Загружаем в ZAEHL 10d
movwf ZAEHL ; для паузы 50 мс
movlw 60
movwf RTCC
wdh1 movf RTCC,w
btfss STAT,zero ; Ожидаем 5 мс
goto wdh1
movlw 60 ; Новая установка RTCC
movwf RTCC
decfsz ZAEHL,f
goto wdh1
retlw 0
;**************************************************************
; Один полушаг вперед
;**************************************************************
vor incf ZAEHL8,f
movf ZAEHL8,w
call tab
movwf PORTB
call pause
movlw 08
subwf ZAEHL8,w
btfss STAT,zero
goto fertv
clrf ZAEHL8
fertv retlw 0
;**************************************************************
; Один полушаг назад
;**************************************************************
rueck decf ZAEHL8,f
movf ZAEHL8,w
call tab
movwf PORTB
call pause
movf ZAEHL8,w
btfss STAT,zero
goto fertr
movlw 08
movwf ZAEHL8
fertr retlw 0
;**************************************************************
; Управляющее слово для шагов 1...8 или 0...7
;**************************************************************
tab addwf PC,f
retlw 35
retlw 21
retlw 39
retlw 18
retlw 3A
retlw 22
retlw 36
retlw 14
retlw 35
;**************************************************************
; Начало главной программы. Определение портов и
; установка и запуск RTCC. f = 4,096 МГц, SC = 0,9765625 мкс,
; делитель 32: RTCC увеличивается каждые 31,25 мкс;
; Предустановка RTCC в 96d (60h) дает переполнение каждые
; 160 x 31,25 мкс = 5 мс
;**************************************************************
init nop
movlw 60
movwf RTCC
movlw 04 ; Подготовка RTCC (внутреннее
 ; тактирование, делитель 32)
option
clrw ; Порта B - выход
tris PORTB
movlw 1F
tris PORTA ; Порт A - вход
;**************************************************************
start movlw 0FF ; Поиск нулевой точки путем
 ; поворота вправо до
 ; положения концевого
 ; выключателя (RA2)
movwf SCHRT ; Загружаем в SCHRT 255d
 ; (соответствует углу
 ; поворота 239 градусов)
movlw 08
movwf ZAEHL8 ; Загружаем кольцевой счетчик
 ; ZAEHL8 значение 8 для
 ; поворота вправо
call tab
movwf PORTB ; Устанавливаем состояние 1
such0 call rueck ; Поворот на 1 шаг вправо
decfsz SCHRT,f ; Уменьшаем счетчик шагов
goto weiter
goto start ; Если счетчик шагов = 0,
 ; начинаем сначал
weiter btfsc PORTA,2 ; Кольцевой выключатель RA2=0?
goto such0 ; Если нет, ищем дальше путем
 ; поворота вправо
call pause ; Если да, то пауза
btfss PORTA,2 ; Кольцевой выключатель RA2=0?
goto status1 ; Если да, устанавливаем сос-
 ; тояние 1 и ожидаем команду
goto such0 ; Если нет, ищем дальше
;**************************************************************
status1 clrf PORTB ; Двигатель обесточен
nop
nop
clrf ZAEHL8 ; Устанавливаем состояние 1
call tab
movwf PORTB ; Двигатель по остановочному
 ; моменту – в исходное
 ; положение
nop ; Начинаем с позиции 0
alinks btfsc PORTA,0 ; Кнопка "Влево" (RA0) нажата?
goto alinks ; Если нет, ожидаем
goto v_180 ; Если да, то поворот на 180
 ; градусов влево (из 0 в I)
brechts btfsc PORTA,1 ; Кнопка "Вправо"(RA1) нажата?
goto blinks ; Если нет, переход к blinks
goto r_14d ; Если да, поворот на 14,4
 ; градуса вправо (из I в III)
blinks btfsc PORTA,0 ; Кнопка "Влево" (RA0) нажата?
goto brechts ; Если нет, переход к brechts
goto v_14c ; Если да, поворот на 14,4
 ; градусов влево (из I в II)
crechts btfsc PORTA,1 ; Кнопка "Вправо"(RA1) нажата?
goto crechts ; Если нет, ожидаем
goto r_14b ; Если да, поворот на 14,4
 ; градусов вправо (из II в I)
dlinks btfsc PORTA,0 ; Кнопка "Влево" (RA0) нажата?
goto drechts ; Если нет, переход к drechts
goto v_14b ; Если да, поворот на 14,4
 ; градусов влево (из III в I)
drechts btfsc PORTA,1 ; Кнопка "Вправо"(RA1) нажата?
goto dlinks ; Если нет, переход к dlinks
goto r_165 ; Поворот вправо на 165,6
 ; градусов (из III в 0)
;**************************************************************
v_180 movlw 0C8 ; 180 градусов = 200 полушагов
 ; влево (C8h)
movwf SCHRT
movlw 08 ; Если ZAEHL8 = 8, установка 0
subwf ZAEHL8,w
btfss STAT,zero
goto wdh2
clrf ZAEHL8
wdh2 call vor
decfsz SCHRT,f
goto wdh2
goto blinks
v_14c movlw 10 ; 14,4 градусов = 16 полушагов
 ; влево (10h)
movwf SCHRT
movlw 08 ; Если ZAEHL8 = 8, установка 0
subwf ZAEHL8,w
btfss STAT,zero
goto wdh3
clrf ZAEHL8
wdh3 call vor
decfsz SCHRT,f
goto wdh3
goto crechts
r_14d movlw 10 ; 14,4 градусов = 16 полушагов
 ; вправо (10h)
movwf SCHRT
movf ZAEHL8,w ; Если (ZAEHL8) = 0,
 ; загружаем 8
btfss STAT,zero
goto wdh4
movlw 08
movwf ZAEHL8
wdh4 call rueck
decfsz SCHRT,f
goto wdh4
goto dlinks
r_14b movlw 10 ; 14,4 градусов = 16 полушагов
 ; вправо (10h)
movwf SCHRT
movf ZAEHL8,w ; Если (ZAEHL8) = 0,
 ; загружаем 8
btfss STAT,zero
goto wdh5
movlw 08
movwf ZAEHL8
wdh5 call rueck
decfsz SCHRT,f
goto wdh5
goto blinks
v_14b movlw 10 ; 14,4 градусов = 16 полушагов
 ; влево (10h)
movwf SCHRT
movlw 08 ; Если ZAEHL8 = 8, установка 0
subwf ZAEHL8,w
btfss STAT,zero
goto wdh6
clrf ZAEHL8
wdh6 call vor
decfsz SCHRT,f
goto wdh6
goto blinks
r_165 movlw 0B8 ; 165,6 градусов = 184
 ; полушагов вправо (B8h)
movwf SCHRT
movf ZAEHL8,w ; Если (ZAEHL8) = 0,
 ; загружаем 8
btfss STAT,zero
goto wdh7
movlw 08
movwf ZAEHL8
wdh7 call rueck
decfsz SCHRT,f
goto wdh7
goto alinks ; Переход к alinks
org 1FF
goto beginn
end

Ссылка на комментарий
Поделиться на другие сайты

Не хочет быстро вращаться... :(

Медленно - без проблем.

Уже чего только не делал...

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Уже чего только не делал...

а напряжение поднять? смысл как-бы в том, что при увеличении скорости , начинает сказываться реактивное сопротивление обмоток, те ток не успевает набрать нужную величину , в идеале ШД должен питаться от источника тока
Ссылка на комментарий
Поделиться на другие сайты

Единственное отличие моей управы от родной:

В родной стояли еще два реостата на 50Вт. через каждую пару фаз и напряжение подходило 24В (лишнее гасилось на реостатах) . Может из за них такая особенность?

Я сейчас подаю на два соединенные в кучу отвода 5В.

Изменено пользователем artos5

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

IMXO, Вы абсолютно правы!

Провел эксперимент. Подключил амперметр , получается: когда двигатель остановлен = 2.2А на малых/средних оборотах = 1.5-2.1А!!

На больших (2 оборота в сек. на данный момент его максимальные обороты) = 1.1А

Посоветуйте схему стабилизатора тока до 5А

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

В вашем случае - на холостом ходу и небольшом ускорении двигатель может достигать

номинальных скоростей, при возможно существенном снижении момента.

Попробуйте притормозить ротор пальцами, если двигатель легко останавливается

как на «большой», так и на малой скорости (малый момент) причину следует искать

в неправильном управлении, если только на большой- попробуйте использовать

«родную» схему питания через резистор как наиболее простую.

Запитка через линейный стабилизатор тока, будет не очень эффективна,

С большой рассеивающей мощностью на регулирующих транзисторах.

Шим схемы, сравнительно сложны. И в этом случае есть смысл обратить

внимание на специализированные драйверы. Есть и простой способ

повышения скорости, путем коммутации двух напряжений.

Все это, описано в известной статье Ридико:

http://forum.cxem.net/index.php?app=core&module=attach&section=attach&attach_id=185926

Ссылка на комментарий
Поделиться на другие сайты

Попробуйте притормозить ротор пальцами, если двигатель легко останавливается

как на «большой», так и на малой скорости (малый момент) причину следует искать

в неправильном управлении

Спасибо за ссылку на статью! У меня когда двигатель медленно вращается - его не остановить. А когда увеличиваю обороты - мощность падает. А когда уже предельно большая частота импульсов управления - мотор дергается или "пищит" . На видео я вижу как в родной схеме он вращается с огромными оборотами... но там правда есть реостаты на 50Вт , и в реале подается 24В питания на силовую часть (18В гасится на реостате!!!! Может в этом вся беда?!).

Изменено пользователем artos5

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Самый простой способ стабилизировать токи обмоток - поставить стабилизаторы тока на MC34063. На питание каждой обмотки свой! Запитать схемы от 15В для шестивольтового двигателя. Схемы есть в разделе http://forum.cxem.net/index.php?showforum=114

Только надо пересчитать номиналы под нужный ток.

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

В любом случае с увеличением частоты, мощность будет падать.

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

Что вам мешает запитать ШД от 12V через сопротивления 4-5 Ом?

Получив результат, можно будет думать, в каком направлении работать.

Явления резонанса в ШД далеко не теоретическая проблема.

Так на всех опробованных ПБМГ-200 проявлялся резонанс,

в резкой потери синхронизации(дерганье). Стоило изменить

даже скорость разгона, как резонанс можно было «проскочить»

и достичь бо`льших скоростей. Обратите также внимание

на схему управления ключевыми транзисторами. Так, если

транзисторы управляются непосредственно с МК, с большими

сопротивлениями в цепях затворов, то их емкость может

привести к «затягиванию» импульсов, что также скажется

на качестве работы ШД. Также в этом случае при мгновенной

смене фазы, возникает cитуация, когда отрываются транзисторы

новой фазы, при этом в старой, еще не успели закрыться.

Поэтому введение незначительной паузы-0000(несколько мкс),

может иметь положительный эффект.

Изменено пользователем akwadag
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Добрый вечер всем! Помогите мне убрать опухоль мозга : )))

Почему программа после старта МК выпрыгивает из вечного цикла в функцию main() я уже и собаки всевозможные по отключал , также отключил бод.

Вот такой код:

flags_version_system=0;

	   if(flags_version_system==0) // U1.3
	 {
	  led_buff[0]=led_table[21];
	  led_buff[1]=led_table[1] | LED_MASK;
	  led_buff[2]=led_table[3];
	  led_buff[3]=led_table[10];
	  delay_ms(2000);
	   flags_version_system=1;
	 }

этот код помещен в функцию main

перед вечным циклом. Так код в железе постоянно отображает версию (то есть код в конце main)!!!

Что это за байда? Контроллер - PIC16F690 . компилятор - MikroC

Отключил от программатора (подал питание отдельно) и эти чудеса пропали... это что было?

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

выпрыгивает из вечного цикла
А где он, этот вечный цикл ? Телепатов лень вызывать...
перед вечным циклом
то есть код в конце main
Так где он на самом деле находится ?
Ссылка на комментарий
Поделиться на другие сайты

void main() {
OPTION_REG = 0x05; // ïðåääåëèòåëü òàéìåðà
IOCB = 0x00; // off interrupt PORTB
TXSTA=0x00; // off USART
RCSTA=0x00; // off USART
SSPCON = 0; // SPI OFF
OSCCON=0xF0;
TRISA=0b000000; // out
TRISB=0b01100000; // input 5,6 bit
TRISC=0b01001000; // output
PORTC=0b01001000;
PORTB=0b01100000;


PORTA=0;
WPUA=0; // pul up OFF
WPUB=0; // pul up OFF
ANSEL=0; // îòêëþ÷àåì àíàëîãîâûå âõîäû.
ANSELH=0;

flags_version_system=0;
delay_ms(100);
eep_read();


if(revers_mode > 1) revers_mode=0;
if(motor_mode > 2) motor_mode=0;

	 if(flags_version_system==0)
	 {
	 led_buff[0]=led_table[21];
	 led_buff[1]=led_table[1] | LED_MASK;
	 led_buff[2]=led_table[3];
	 led_buff[3]=led_table[10];
	 delay_ms(2000);
	 flags_version_system=1;
	 }
stop;
while (1)
{
motor_func();
eep_write();
indication_func();
}
}

Повторяю , отключил от программатора и глюки пропали. Это что было?

Все равно такое есть. Только через раз

Изменено пользователем artos5

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...