Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Общетехнические вопросы

Общетехнические вопросы Общие вопросы аналоговой и цифровой электроники.

Ответ
 
Опции темы Опции просмотра
Старый 09.06.2020, 18:47   #1
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 317
Вес репутации: 495/40
GoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of light
По умолчанию Управление приборным шаговым двигателем.

Всем добра! Вот некоторые вопросы возникли, хочу обсудить.
Возникла потребность поуравлять миниатюрным шаговым двигуном. Таким как на скрине с даташита.
И вроде как все не так плохо, однако есть некоторые противоречия.
В чем вопрос - с полношаговым режимом все ясно - там с даташитом нет расхождения. Один шаг - 0,5 град & полный цикл 4 шага - 2 град.
А вот микрошаговый - тут какая то муть. Почему то в даташите указано 6 шагов и 0,083 град на шаг. ????????
В реале на железе сколько не экспериментировал, в микрошаговом получается 8 шагов по 0,25 град - в сумме те же 2 град на цикл.
Кто сталкивался с подобными девайсами? Откликнитесь. Или у меня лыжи не едут, или даташит кривой?
Миниатюры
Screenshot-21.jpg   Screenshot-20.jpg   Screenshot-221.jpg   Screenshot-22.jpg  
GoshaGrek вне форума   Ответить с цитированием
Старый 09.06.2020, 19:25   #2
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,048
Вес репутации: 6060/180
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от GoshaGrek Посмотреть сообщение
Или у меня лыжи не едут, или даташит кривой?
а что, два последних слайда - это из какого-то (его) "даташита"?
Greg вне форума   Ответить с цитированием
Старый 09.06.2020, 19:48   #3
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 317
Вес репутации: 495/40
GoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of light
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Greg Посмотреть сообщение
а что, два последних слайда - это из какого-то (его) "даташита"?
Да,пардон...Забыл пояснить. Два последних слайда - это результат того что получилось экспериментально в железе на макете. В даташите никаких диаграмм нет.
Миниатюры
6405_r407_new.pdf  
GoshaGrek вне форума   Ответить с цитированием
Старый 09.06.2020, 20:49   #4
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,926
Вес репутации: 4789/139
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от GoshaGrek Посмотреть сообщение
Один шаг - 0,5 град & полный цикл 4 шага - 2 град.
А вот микрошаговый - тут какая то муть. Почему то в даташите указано 6 шагов и 0,083 град на шаг. ????????
0.5 градуса FullStep
Microstepping 1/6 *FullStep соответственно 0.5/6 = 0.083 градуса. Все верно в описании.
Я краем глаза посмотрел статью, так этот микрошаговый режим может быть 1/32 и даже меньше
https://www.njr.com/electronic_devic...ping_APP_E.pdf
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 09.06.2020, 21:03   #5
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 317
Вес репутации: 495/40
GoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of light
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Pridnya Посмотреть сообщение
0.5 градуса FullStep
Microstepping 1/6 *FullStep соответственно 0.5/6 = 0.083 градуса. Все верно в описании.
Я краем глаза посмотрел статью, так этот микрошаговый режим может быть 1/32 и даже меньше
https://www.njr.com/electronic_devic...ping_APP_E.pdf
Так эт понятно... Что 0,5/6 = 0.083 ...По даташиту.
Не совсем понятно пока как реализовать на практике это.
А тем более 1/32. Авторы сего девайса вообще никаких не дают рекомендаций. Почитал микрочиповский appnote на эту тему. Там есть раздел bipolar stepper motor - так по тем диаграммам что там - получается опять же или те же 0.5 или 0.25
Миниатюры
00907a.pdf  
GoshaGrek вне форума   Ответить с цитированием
Старый 09.06.2020, 21:08   #6
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,926
Вес репутации: 4789/139
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от GoshaGrek Посмотреть сообщение
Так эт понятно... Что 0,5/6 = 0.083 ...По даташиту.
Не совсем понятно пока как реализовать на практике это.
А тем более 1/32. Авторы сего девайса вообще никаких не дают рекомендаций. Почитал микрочиповский appnote на эту тему. Там есть раздел bipolar stepper motor - так по тем диаграммам что там - получается опять же или те же 0.5 или 0.25
Вместе будем думать. У меня несколько шаговиков есть, но как проверить количество градусов на шаг я не знаю. Каким методом проверять? У микрочипа, возможно, модуль таймера в старых МК не поддерживает некоторые режимы для микростеппинга. STM32 должен поддерживать или новые PIC-и. Вы не написали, какой у вас микроконтроллер и какой модуль используется (аппаратный или программно).
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 09.06.2020, 21:09   #7
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 317
Вес репутации: 495/40
GoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of light
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Pridnya Посмотреть сообщение
0.5 градуса FullStep
Microstepping 1/6 *FullStep соответственно 0.5/6 = 0.083 градуса. Все верно в описании.
Поясню вообще зачем я этим заинтересовался. просто попросили (некоммерчески) слепить градусник 0-100 с стрелочным индикатором.
И в наличии оказалась пара таких движков.
в принципе для данной задачи и 0.25 град с головой, если шкала будет градусов 100 и больше.
Но чисто спортивны интерес... А как же получить 0.083
GoshaGrek вне форума   Ответить с цитированием
Старый 09.06.2020, 21:11   #8
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 317
Вес репутации: 495/40
GoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of light
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Вместе будем думать. У меня несколько шаговиков есть, но как проверить количество градусов на шаг я не знаю. Каким методом проверять? У микрочипа, возможно, модуль таймера в старых МК не поддерживает некоторые режимы для микростеппинга. STM32 должен поддерживать или новые PIC-и.
Я вообще сделал без таймера...На старом добром PIC16F676(что под рукой оказалось)
GoshaGrek вне форума   Ответить с цитированием
Старый 09.06.2020, 21:13   #9
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,926
Вес репутации: 4789/139
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от GoshaGrek Посмотреть сообщение
Я вообще сделал без таймера...На старом добром PIC16F676(что под рукой оказалось)
Программно? А как количество градусов на микрошаг проверяете?
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 09.06.2020, 21:30   #10
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 317
Вес репутации: 495/40
GoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of light
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Программно? А как количество градусов на микрошаг проверяете?
Примерно так...Хотя код понимаю что не идеальный. Да и не профи программист я. не каждый день пишу


Код:
;***************************************************************
;                                                                    
;    Notes:   Для микрошагового режима ШД                                                     
;                                                                                                                                                                                                              
;***************************************************************
list      p=16F676 ,st = off  
    
#include <p16F676.inc>        

errorlevel  -302              

radix  dec 

__CONFIG   _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT

;****************************************************************
; PIN DEFINITIONS
;****************************************************************
#define  SENSOR_PORT PORTA,2
#define  SENSOR_TRIS TRISA,2

;ВЫВОДЫ на ШД 
;1+  PORTC,0
;1-  PORTC,1
;2-  PORTC,2
;2+  PORTC,3
;*****************************************************************
; CONSTANTS AND MACROS DEFINITIONS
;*****************************************************************
;константы разметки шкалы и управления ШД 
SCALE_LIMIT         EQU  .100 ;предел шкалы в единицах измерения
MAX_SCALE_DEGREE    EQU  .270 ;макс угол поворота стрелки по шкале
K                   EQU  MAX_SCALE_DEGREE*4/SCALE_LIMIT  

CONST_MAX_SPEED     EQU  .36 ;4ms 
CONST_LOW_SPEED     EQU  .70 ;15ms

;инициализация регистров 
CMCON_CONST         EQU  0x07        ;
TRISA_CONST         EQU  b'00001000' ;
TRISC_CONST         EQU  b'00000000' ;
ADCON0_CONST        EQU  0x00        ;    
ADCON1_CONST        EQU  0x00        ; 
ANSEL_CONST         EQU  0x00        ; 
INTCON_CONST        EQU  b'00000000' ; 
OPTION_CONST        EQU  b'10000100' ; 
PIE1_CONST          EQU  b'00000000' ; 

;константы и флаги термодатчика 18B20
SKIP_ROM            EQU  0xCC
CONVERT_T           EQU  0x44
WRITE_SCRATCHPAD    EQU  0x4E
READ_SCRATCHPAD     EQU  0xBE
NINE_RESOLUTION     EQU  0x1F
ZERO                EQU  0x00

CONST_WAIT_TIME     EQU  .4
CONST_RESET_PULSE   EQU  .12
CONST_IDLE_TIME     EQU  .255
     
#define   flag_present   flags_sensor,0
#define   flag_absent    flags_sensor,1
#define   flag_minus     flags_sensor,2
;*************************************************************
; VARIABLE DEFINITIONS
;**************************************************************
 UDATA_SHR   0x20
 step               RES .1   ; номер шага шд
 new_pos            RES .2   ; новое заданное положение указателя 
 current_pos        RES .2   ; текущее положение указателя
 work_data          RES .2   ; переменная для вычисления кол-ва шагов 
 delaycounter1      RES .1   ; для задержек 
 delaycounter2      RES .1   ;
 delay_reg          RES .1   ;
 ;переменные датчика 18В20
 flags_sensor       RES .1   ;флаги датчика
 bit_counter        RES .1   ;счетчик битов
 command            RES .1   ;регистр команд
 tmp                RES .2   ;рабочий регистр
 tmp_1              RES .1   ;рабочий регистр
 tempH              RES .1
 tempL              RES .1
 temperature        RES .1   ;температура в градусах 
;****************************************************************
;RESET_VECTOR
;****************************************************************
    org    0x0000      ; processor reset vector
    goto   Start       ; go to beginning of program
;****************************************************************
; these first 4 instructions are not required if the internal 
;oscillator is not used
Start
    call    0x3FF             
    bsf     STATUS,RP0        
    movwf   OSCCAL            
    bcf     STATUS,RP0        
;-----------------------------------------------------------------
    bcf     INTCON,GIE 
    bcf     STATUS,RP0        ;банк 0  
    movlw   CMCON_CONST
    movwf   CMCON 
    bsf     STATUS,RP0        ;банк 1
    movlw   TRISA_CONST
    movwf   TRISA 
    movlw   TRISC_CONST
    movwf   TRISC
    movlw   ANSEL_CONST
    movwf   ANSEL 
    movlw   ADCON1_CONST
    movwf   ADCON1 
    clrf    ADRESL
    movlw   OPTION_CONST
    option	
    bcf     STATUS,RP0        ;банк 0    	
    movlw   ADCON0_CONST
    movwf   ADCON0
    clrf    ADRESH
    movlw   INTCON_CONST
    movwf   INTCON
    ;--------------------
    clrf    new_pos
    clrf    new_pos+1
    clrf    current_pos
    clrf    current_pos+1
    clrf    step
;установка стрелки в 0 при включении или сбросе 	 
Go0
    movlw   low(.312)
    movwf   current_pos
    movlw   high(.312)
    movwf   current_pos+1
    movlw   CONST_MAX_SPEED      ;на макс скорости 
    movwf   delay_reg
Go0L1
    call    ComparePos
    btfsc   STATUS,Z             ; если в нуле то   
    goto    MainCycle	         ;переход в главный цикл
    btfsc   STATUS,C 
    call    DecPos
    call    MoveDown
    call    MoveDown
    call    MoveDown
    call    MoveDown	
    goto    Go0L1
;*************************************************************	
;                     ГЛАВНЫЙ ЦИКЛ
;************************************************************* 
MainCycle
    ;******************** измерение температуры 
    call    TemperatureMetering
    movlw   CONST_IDLE_TIME 
    movwf   delay_reg
    call    Delay
    ;******************** расчет новой позиции шд
    movf    temperature,w
    movwf   work_data
    clrf    work_data+1 
    movlw   K 
    call    Mult8x8
    movf    work_data,w 
    movwf   new_pos
    movf    work_data+1,w 
    movwf   new_pos+1
    movlw   CONST_LOW_SPEED	 
    movwf   delay_reg
    ;******************** управление шд
CheckPos 	                 
    call    ComparePos       ;сравнение позиций
    btfsc   STATUS,Z         ;если new = current,то в главный цикл 
    goto    MainCycle	
ClockWise	             ;если new > current,то по часовой     
    btfsc   STATUS,C    
    goto    CounterClockWise
    call    IncPos
    call    MoveUp
    goto    CheckPos
CounterClockWise             ;если new < current, то против 
    btfss   STATUS,C
    goto    CheckPos 	
    call    DecPos
    call    MoveDown
    goto    CheckPos	
;////////////////////////////////////////////////////////////
;         функции работы с датчиком  DS18B20
;////////////////////////////////////////////////////////////
;************************************************************
;                            СБРОС
;************************************************************
Reset:
    bsf     STATUS,RP0        
    bcf     SENSOR_TRIS      
    bcf     STATUS,RP0
    bcf     SENSOR_PORT       
    movlw   CONST_RESET_PULSE   
    movwf   delay_reg
    call    Delay 	
    bsf     STATUS,RP0        
    bsf     SENSOR_TRIS
    bcf     STATUS,RP0 
    movlw   CONST_WAIT_TIME
    movwf   delay_reg
    call    Delay 	
    btfsc   SENSOR_PORT 
    goto    ResetLoop1
    movlw   CONST_RESET_PULSE
    movwf   delay_reg
    call    Delay 		
    bsf     flag_present
    bcf     flag_absent        
    return
ResetLoop1 
    movlw   CONST_RESET_PULSE
    movwf   delay_reg
    call    Delay 		
    bcf     flag_present
    bsf     flag_absent
    return	  
;***********************************************************
;                            ЗАПИСЬ 
;************************************************************ 
Write:     	  
    clrf    bit_counter
    movlw   .8
    movwf   bit_counter	
    ;передача бита в 18В20	
WriteBit  
    bcf     INTCON,GIE
    bsf     STATUS,RP0     ;PORT 18B20-output
    bcf     SENSOR_TRIS
    bcf     STATUS,RP0
    bcf     SENSOR_PORT	  
    nop
    nop 
    rrf     command,f 
    bsf     STATUS,RP0 
    btfsc   STATUS,C	  
    bsf     SENSOR_TRIS
    bcf     STATUS,RP0
    movlw   CONST_WAIT_TIME
    movwf   delay_reg
    call    Delay 		
    bsf     STATUS,RP0      ;PORT 18B20-input
    bsf     SENSOR_TRIS
    bcf     STATUS,RP0 
    bsf     INTCON,GIE
    decfsz  bit_counter 
    goto	WriteBit
    return	  	  
;***********************************************************
;                            ЧТЕНИЕ 
;***********************************************************
Read:
    clrf    bit_counter
    clrf    tmp_1
    movlw   .8
    movwf   bit_counter
    ;чтение бита данных с 18В20
ReadBit	  
    bcf    INTCON,GIE
    bsf    STATUS,RP0
    bcf    SENSOR_TRIS
    bcf    STATUS,RP0
    bcf    SENSOR_PORT
    nop 
    nop 
    nop 
    nop 
    nop 
    nop 
    bsf    STATUS,RP0
    bsf    SENSOR_TRIS
    bcf    STATUS,RP0
    nop 
    nop 
    nop 
    nop 
    bcf     STATUS,C 
    btfsc   SENSOR_PORT
    bsf     STATUS,C 
    rrf     tmp_1,f
    movlw   CONST_WAIT_TIME
    movwf   delay_reg
    call    Delay	
    bsf     INTCON,GIE	  
    decfsz  bit_counter,f
    goto    ReadBit	  
    movf    tmp_1,w 
    return	     
;***********************************************************	  
;            СЧИТЫВАНИЕ ТЕМПЕРАТУРЫ С 18В20	  
;***********************************************************
TemperatureMetering:
    call    Reset            ;18B20 reset
    movlw   SKIP_ROM         ;skip rom
    movwf   command
    call    Write
    movlw   CONVERT_T        ;convert
    movwf   command
    call    Write
    movlw   CONST_IDLE_TIME
    movwf   delay_reg
    call    Delay
    call    Delay
    call    Delay
    call    Delay	  	
    call    Reset            ;18B20 reset
    movlw   SKIP_ROM         ;skip rom
    movwf   command
    call    Write	  
    movlw   READ_SCRATCHPAD  ;read scratchpad
    movwf   command
    call    Write
    clrf    tmp_1
    call    Read             ;read TL
    movf    tmp_1,w
    movwf   tempL
    clrf    tmp_1
    call    Read             ;read TH
    movf    tmp_1,w 
    movwf   tempH
    ;***********************************************************
    ;*******************перевод температуры в градусы 	  
    ;если положительная
    btfsc   tempH,4         
    goto    TConvLoop1            
    bcf     flag_minus
    swapf   tempL,f 
    movlw   0x0F
    andwf   tempL,f
    swapf   tempH,f
    movlw   0xF0
    andwf   tempH,f
    movf    tempL,w
    iorwf   tempH,w
    movwf   temperature
    return
    ;если отрицательная - то считаем что 0
TConvLoop1  
    btfss   tempH,4         
    return
    bsf     flag_minus
    clrf    temperature
    return
;************************************************************
;Delay  - задержка времени 
;************************************************************
Delay:
     movf    delay_reg,w             
     movwf   delaycounter1
     movf    delay_reg,w 
     movwf   delaycounter2
     decfsz  delaycounter2
     goto    $-1
     decfsz  delaycounter1
     goto    $-5
     return	
;***********************************************************
;ComparePos:
;сравнение заданной и текущей позиции
;на выходе:
;если new_position = current_position STATUS,Z = 1
;если new_position > current_position STATUS,C = 0
;если new_position <= current_position STATUS,C = 1
;************************************************************
ComparePos:
    movf    new_pos+1,w 
    subwf   current_pos+1,w 
    btfss   STATUS,Z 
    goto    Result
    movf    new_pos,w 
    subwf   current_pos,w 
Result
    nop   	
    return	
;************************************************************
;инкремент позиции шагового двигателя
;************************************************************
IncPos:
    incfsz  current_pos,f 
    return
    incf    current_pos+1,f
    return
;************************************************************
;декремент позиции шагового двигателя 
;************************************************************
DecPos:
    movf    current_pos,w 
    btfsc   STATUS,Z 
    goto    DPL1 
    decf    current_pos,f
    return 
DPL1
    decf    current_pos+1,f
    movlw   0xFF
    movwf   current_pos	
    return
;************************************************************
;MoveUp: Движение по часовой
;MoveDown: Движение против часовой 
;************************************************************
MoveUp:
    movf    step,w 
    addlw   0x01
    goto    MoveLoop1
MoveDown:
    movf    step,w 
    addlw   0xFF	
MoveLoop1
    andlw   0x07
    movwf   step
    call    TableSteps
    movwf   PORTC
    call    Delay
    return	
;************************************************************
;Mult8x8:умножение WREG x work_data(low byte)-> work_data 
;************************************************************	 
Mult8x8:
Mult    MACRO
    btfsc   STATUS,C
    addwf   work_data+1,f
    rrf     work_data+1,f
    rrf     work_data,f
        ENDM

    clrf    work_data+1             
    rrf     work_data,f             
    Mult                            
    Mult                            
    Mult                            
    Mult                            
    Mult                            
    Mult                            
    Mult                            
    Mult                                
    return
;***********************************************************
;Таблица для управления шаговым двигателем
;************************************************************
ORG   0x300
TableSteps:
    clrf    PCLATH
    bsf     PCLATH,0 	
    bsf     PCLATH,1       
    andlw   0x0F
    addwf   PCL,f
    retlw   b'00000001'
    retlw   b'00000101'
    retlw   b'00000100'
    retlw   b'00000110'
    retlw   b'00000010'
    retlw   b'00001010'
    retlw   b'00001000'
    retlw   b'00001001'	   		
    retlw   .0  
    retlw   .0  
    retlw   .0  
    retlw   .0 
    retlw   .0  
    retlw   .0  
    retlw   .0  
    retlw   .0 		 	
;************************************************************
    END
GoshaGrek вне форума   Ответить с цитированием
Старый 09.06.2020, 21:39   #11
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 317
Вес репутации: 495/40
GoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of light
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Программно? А как количество градусов на микрошаг проверяете?
просто тупо экспериментально взял какой то угол шкалы- отталкивался от найденой шкалы с разбитого то ли тахометра то ли спидометра.
Вымерял градусы транспортиром. Потом просто подобрал кол- во шагов сначала в full step потом почитав майкрочиповский аппнот - вычислил диаграмму типа micro step. Пару вечеров ушло...ну как то так примерно.
Но хоть убейся не выходит 0.083 град...как по даташиту...
GoshaGrek вне форума   Ответить с цитированием
Старый 09.06.2020, 22:15   #12
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,926
Вес репутации: 4789/139
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от GoshaGrek Посмотреть сообщение
просто тупо экспериментально взял какой то угол шкалы- отталкивался от найденой шкалы с разбитого то ли тахометра то ли спидометра.
Вымерял градусы транспортиром. Потом просто подобрал кол- во шагов сначала в full step потом почитав майкрочиповский аппнот - вычислил диаграмму типа micro step. Пару вечеров ушло...ну как то так примерно.
Но хоть убейся не выходит 0.083 град...как по даташиту...
Так по вашей таблице управление и не выйдет, в ней не 6 микрошагов. Нужно теорию читать. Я сам читаю.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 09.06.2020, 22:40   #13
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 317
Вес репутации: 495/40
GoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of light
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Так по вашей таблице управление и не выйдет, в ней не 6 микрошагов. Нужно теорию читать. Я сам читаю.
Если просто взять нарисовать шкалу, например 270 град. То у меня получилось в режиме full step 540 шагов двигателя по коду. Тут полное соответствие по логике даташиту. 0,5 град на шаг. Я правда пробовал не так как microchip советует в an907 - диаграмму в смысле. А просто как по школьному учебнику - самая простая диаграмма как в первом посте. Потом попробовал как в аn907 - в итоге получил что те же самые 0,5 град, только на моих задержках получалась скорость большая и отсюда инерция. Там Задержками было влом играться. А потому наверное что там в шагах повторяются комбинации на выводах - например ++ потом - -
Потом попробовал как в an907 microstep типа - и вот тут получилось что я чего то не понимаю. Возился с подбором таблицы - как ни крути опять 0,25 )))
Теперь вот какие мысли.
1) Во первых там наверное указана теория для двигателя с двуполярным питанием.
А у того что у меня по даташиту предел 7,5 и это наверняка при однополярном питании.
2) далее к нашим баранам опять почему для этого мотора full step - 4 шага , а micro - 6 ???? Логично бы было дробить как то четно - 4, 8 ,16 ...
Хз короче... Надо разбираться.
Завтра может на свежую голову почитаю.
GoshaGrek вне форума   Ответить с цитированием
Старый 10.06.2020, 01:10   #14
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,926
Вес репутации: 4789/139
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от GoshaGrek Посмотреть сообщение
почему для этого мотора full step - 4 шага , а micro - 6 ???? Логично бы было дробить как то четно - 4, 8 ,16 ...
В терминах из их техописания:
Цитата:
Step size degree in full step mode – 0.5 – degree
Step size degree with 6 micro steps – 0.083 – degree
Полный шаг равен полградуса, а микрошаг 1/6 соответственно 0.083 градуса.
Похоже, что эта фирма использует нестандартный микрошаг, он у них не вписывается в систему 1, 1/2, 1/4, 1/8, 1/16...взяли и написали 1/6 и все, подходят нужные драйверы и решения. Или двигатель какие особенности конструкции имеет. Тема интересная.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 10.06.2020, 07:09   #15
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 317
Вес репутации: 495/40
GoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of light
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Pridnya Посмотреть сообщение
В терминах из их техописания:
Полный шаг равен полградуса, а микрошаг 1/6 соответственно 0.083 градуса.
Похоже, что эта фирма использует нестандартный микрошаг, он у них не вписывается в систему 1, 1/2, 1/4, 1/8, 1/16...взяли и написали 1/6 и все, подходят нужные драйверы и решения. Или двигатель какие особенности конструкции имеет. Тема интересная.
Да, интересная тема...
Если у двигателя 4 вывода, то число комбинации ууправления при однополярном питании не может превышать 16 , при чем из них 4 сразу отпадают на таких движках.
Я думаю что надо тут надо программно две задержки иметь. Одна - время самого импульса. Другая - сдвиг начала импульса в следующем шаге.
На работе мне этим некогда заниматься, а дома вечерком подумаю.
GoshaGrek вне форума   Ответить с цитированием
Старый 10.06.2020, 09:57   #16
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,048
Вес репутации: 6060/180
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от GoshaGrek Посмотреть сообщение
Да,пардон...Забыл пояснить. Два последних слайда - это результат того что получилось экспериментально в железе на макете. В даташите никаких диаграмм нет.
на микрошаге двигатель питают синусами. Степень приближения к синусу определяет число микрошагов. Посмотрите классическую микросхему https://static.chipdip.ru/lib/551/DOC001551708.pdf
для приборных есть специальные типа https://www.terraelectronica.ru/pdf/...2F30624-D1.pdf
там интерфейс не одиночный dir/step, а сразу задаетcя направление, число шагов и ускорение.
Greg вне форума   Ответить с цитированием
Старый 14.06.2020, 16:24   #17
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 317
Вес репутации: 495/40
GoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of light
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Greg Посмотреть сообщение
на микрошаге двигатель питают синусами. Степень приближения к синусу определяет число микрошагов. Посмотрите классическую микросхему https://static.chipdip.ru/lib/551/DOC001551708.pdf
для приборных есть специальные типа https://www.terraelectronica.ru/pdf/...2F30624-D1.pdf
там интерфейс не одиночный dir/step, а сразу задаетcя направление, число шагов и ускорение.
Спасибо!!!! Прочел еще теории. С микрошагом насчет синуса тоже вроде понятно, только это слишком усложняет схему.
Тот режим, что я экспериментально попробовал с диаграммой в первом посте тоже штатно существует. И называется полушаговый режим half_step.
Недостатки- колебания момента, но наверное для приборных двигателей это не играет большого значения. Там на валу нагрузка небольшая как бы. Или нет ?

Код HTML:
https://electroprivod.ru/halfstep.htm
GoshaGrek вне форума   Ответить с цитированием
Старый 14.06.2020, 16:52   #18
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 34
Сообщений: 1,429
Вес репутации: 2632/86
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Всю тему не читал, работал с этим 6405 и другими. Но потом перешли на VID, по качеству не уступают, но дешевле.
Про реализацию микрошага для подобных двигателей советую посмотреть тут. Такие двигатели можно спокойно подключать через напрямую к микроконтроллеру, способному отдать 25мА на пин.
Управлять нужно не синусом, а ШИМом удерживать нужный ток.
От себя добавлю, что из-за наличия миниатюрного редуктора нужно сразу вводить компенсацию люфта (на vid29 люфт порядка 9-11 микрошагов по 0.083град.) и прийдётся повозиться с табличкой токов, из-за даташита стрелка не очень равномерно перемещается при постоянной скорости.
Рак вне форума   Ответить с цитированием
Старый 14.06.2020, 17:01   #19
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,048
Вес репутации: 6060/180
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от GoshaGrek Посмотреть сообщение
Спасибо!!!! Прочел еще теории. С микрошагом насчет синуса тоже вроде понятно, только это слишком усложняет схему.
Тот режим, что я экспериментально попробовал с диаграммой в первом посте тоже штатно существует. И называется полушаговый режим half_step.
Недостатки- колебания момента, но наверное для приборных двигателей это не играет большого значения. Там на валу нагрузка небольшая как бы. Или нет ?

Код HTML:
https://electroprivod.ru/halfstep.htm
а какой драйвер используете?
Greg вне форума   Ответить с цитированием
Старый 14.06.2020, 17:34   #20
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 317
Вес репутации: 495/40
GoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of lightGoshaGrek is a glorious beacon of light
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Greg Посмотреть сообщение
а какой драйвер используете?
Пока никакой, подключаю напрямую к выводам порта контроллера.
У 6405R407 сопротивление обмотки примерно 220-230 ом. Вроде не вылетали порты на макете пока
GoshaGrek вне форума   Ответить с цитированием
Старый 14.06.2020, 20:25   #21
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,048
Вес репутации: 6060/180
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Рак Посмотреть сообщение
Про реализацию микрошага для подобных двигателей советую посмотреть тут.
Управлять нужно не синусом, а ШИМом удерживать нужный ток.
ага, который ("нужный ток") изменяется по закон синуса от угла поворота. по вашей же ссылке параметры sine value coil 1 и coil2.
Greg вне форума   Ответить с цитированием
Старый 14.06.2020, 20:29   #22
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,048
Вес репутации: 6060/180
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от GoshaGrek Посмотреть сообщение
Пока никакой, подключаю напрямую к выводам порта контроллера.
У 6405R407 сопротивление обмотки примерно 220-230 ом. Вроде не вылетали порты на макете пока
Рак хорошую ссылку дал, можно и на портах, но надо шимить немного.
Greg вне форума   Ответить с цитированием
Старый 14.06.2020, 20:37   #23
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 34
Сообщений: 1,429
Вес репутации: 2632/86
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Greg Посмотреть сообщение
ага, который ("нужный ток") изменяется по закон синуса от угла поворота. по вашей же ссылке параметры sine value coil 1 и coil2.
Ну от угла да. Я подумал, что автор хочет синус сдвинутый постоянно прогонять через обмотки типа как в синусно-косинусных трансформаторах.
В реальности там несколько "пожеванный" синус получится, очень плохой момент в тех местах, где ток в обмотке меняется незначительно между микрошагами (в районе минимума и максимума), будет хорошо заметно при стрелках длиной от 30мм.
Рак вне форума   Ответить с цитированием
Старый 14.06.2020, 20:47   #24
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,048
Вес репутации: 6060/180
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Управление приборным шаговым двигателем.

Цитата:
Сообщение от Рак Посмотреть сообщение
Ну от угла да. Я подумал, что автор хочет синус сдвинутый постоянно прогонять через обмотки типа как в синусно-косинусных трансформаторах.
В реальности там несколько "пожеванный" синус получится, очень плохой момент в тех местах, где ток в обмотке меняется незначительно между микрошагами (в районе минимума и максимума), будет хорошо заметно при стрелках длиной от 30мм.
я ссылку давал у моторолы (он-семи) прям для этих стрелочных дел драйверы есть.
цена конечно, да... есть смысл что-то и поколхозть
Greg вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с шаговым двигателем!!! Mix-Style Вопросы начинающих 11 10.02.2011 22:28
Помогите с шаговым двигателем.... Иg@rёk Общетехнические вопросы 26 26.01.2010 17:02
Управление шаговым двигателем, микрошаг Alex_Electron Общетехнические вопросы 41 05.08.2009 22:19
Управление асинхронным 3-х фазным двигателем (поделитесь исходником) Крит Вопросы начинающих 2 26.08.2008 16:54
Управление шаговым двигателем. VDV Источники питания и силовая электроника 5 28.06.2007 11:55


Часовой пояс GMT +3, время: 19:16.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot