ТУ – София, Филиал Пловдив
К У Р С О В А
Р А Б О Т А
По Електронни Регулатори
Изготвил:
факN, гр.:
Светлана Георгиева Райкова
342867,32а
Пловдив 2008г.
Проверил:......................... /гл.ас. Василева/
ТУ – София, Филиал Пловдив
З А Д А Н И Е :
Електронна система за позициониране на четири фазен стъпков двигател
Изходни данни: +12V – захранващо напрежение Да се управлява на цяла стъпка Да има възможност за реверсиране на посоката
2 | Page
I.
Теоретична част.
Предимства на електромеханични системи ЕМС със стъпкови двигатели: •
Голяма точност при позициониране;
•
Лесно регулиране на скоростта в широк диапазон;
•
Възможност за изграждане на качествени скъпоструващи датчици за обратна връзка ОВ;
•
Пособност за “запомняне” на информацията;
•
Скоросста остава постоянна при изменение на натоварването в широки граници;
•
Добра съвместимост с цифрови управляващи устройства;
отворени
системи,
без
По-съществени недостатъци на тези ЕМС: •
Сравнително малък въртящ момент;
•
Относително нисък коефициент на полезно действие;
Принцип на действие на стъпковите електродвигатели. Осъщесвява се на дискретно изменение на електромагнитното поле в работна въздушна междина за сметка на импулсно възбуждане или превключване на намотките им, т.е. стъпковите двигатели са електромеханични устройства, който преобразуват електрическите импулси на управляващото напрежение в дискретни ъглови или нелинейни премествания(“стъпки”) на ротора с възможност за фиксирането му в желани положения. Срещат се различни конструкции на стъпкови двигатели, но принципът им е един и същ- многофазен и многополюсен синхронен двигател, който се захранва с постояннотокови електрически импулса. Статорът има листов строеж и може да бъде явнополюсен или неявнополюсен. На полюсите или в каналите му са поставени m-фазни намотки(m=1,2,3,4,... и т.н., но най-често 2 и 4). Роторите се срещат в два конструктивни вида: а) активен(с постоянни магнити или рядко електромагнити, възбудени от източник за постоянене ток); б) пасивен(без възбуждане, но задължително с явни полюси). При захранване на отделни фази роторът ще заема такова равновесно положение, при което съпротивлението на магнитното поле да е минимално. 3 | Page
Управление на стъпковия двигател: а) симетрично- при което управляващите сигнали се подават последователно на групи от еднакъв брой фази; б) несиметрично- при което управляващите сигнали се подават последователно на групи от нееднакъв брой фази; Друго деление според управлението е: а) потенциално- напрежението на намотките се изменя само в момента на подаване на управляващия сигнал. При липса на следващ управляващ сигнал, една или повече фази остават под напрежение, подадено от предшестващия сигнал, така че роторът заема напълно определено фиксирано напрежение; б) импулсно- една или повече фази получават управляващия сигнал с определена продължителност, след което остават без захранване. В паузата между сигнални импулси, роторът се фиксира от вътрешен активен момент(при активен ротор) или от специално фиксиращо устойство. Управление на цяла стъпка и на полустъпка: Управлението на стъпков двигател се усъществява чрез прилагането на серия от стъпки. Скороста на въртене се управлява от времето за прилагане на стъпките. Има три основни видове стъпки : цяла, полустъпка и микростъпка.
При управлението на четири фазен СД с цяла стъпка през статорните намотки последоветлно през определен интервал от време се пропуска ток и те създават полярност,която насочва роторния постоянен магнит къл активната намотка, т.е.
4 | Page
ротора ще се върти през 900 , като се стреми да се изравнява с активните намотки. Освен по цяла стъпка може да се управлява и на полустъпка като към пълната стъпка се прибавят и междустъпките с напрежението създадено между две намотки. Това се осъществява като едновременно се включат два съседни магнита.
При управление на полустъпка се увеличават броят стъпките на преместване. Като пример нека разгледаме един стандартен хибриден стъпков двигател, който има 200 зъба или това са 200 стъпки за оборот. Като разделим 200 стъпки на 360 0 ще получим ъгъл на завъртане 1.80. При полустъпката ще се получи, че 400 стъпки ще доведът до 0.90 ъгъл на завъртане. Таблиците представят движението на двигателя на цяла стъпка и на полустъпка:
PH1
1
1
1
0
PH1
1
1
1
0
PH2
1
1
0
1
PH12
1
1
0
0
PH3
1
0
1
1
PH2
1
1
0
1
PH4
0
1
1
1
PH23
1
0
0
1
PH3
1
0
1
1
PH34
0
0
1
1
PH4
0
1
1
1
PH41
0
1
1
0
Цяла стъпка – по фази
PH12
1
1
0
0
PH23
1
0
0
1
PH34
0
0
1
1
PH41
0
1
1
0
5 | Page
Полустъпка
Цяла стъпка - междуфази
За да се осигури нормалната работа на PIC16F628(1)той трябва да бъде захранен с
от 3 до 5 волата и да му се осигури желаната честота на работа. Това става чрез външен кристал/резонатор (XT) за този микроконтролер избирам най-високата 4MHz. Кондензаторите за кристала се избират от таблицата по-долу(2):
Високия капацитет на кондензаторите повишава стабилноста на кристала но също така повишава и времето за стартиране на микроконтролера. Данните в таблицата са само препоръчителни от производителя и кондензаторите също така трябва да се съобразят и с конкретния избран резонатор. За да осигуря стабилната работа на кристала избирам за C1 и C2 по 30pF.
6 | Page
Използвам PORTA
за цифров изход, с който управлявам стъпков двигател, a PORTB за цифрови входове, по които да получавам управляващи сигнали за двигателя. Външния бутон В1 е за установяване на начално състояние чрез reset сигнал, което може да стане по всяко време без да затрудни процесора или да доведе до неизпълнение на алгоритъма на програмата. PIC16F628A - тази серия е с порт по-малко, т.е. има два 8 битови порта А и В. Крачетата на този микроконтролер могат да се програмират както за входове така и за изходи. Посоката на данните се програмира посредством TRISA и TRISB регистри. За TRISA записването на нули за всеки пин ще доведе до всичко изходи на PORTA това лесно може да се види от диаграмата по-долу:
Същото се отнася и за TRISB. Особеност при PORTB е неговата функция interrupt-on-change, което значи че при промяна на входните величини от до момента установените, се генерира прекъсване. Предварително трябва да се разрешат прекъсванията в 7 | Page
инициализационната част на програмата като за целата ползвам регистри като INTCON, а за interrupt-on-change това се осъществява чрез регистър IOCB. В случея използвам краче 11 и 12, което съответства на RB5 и RB4 и поставям там сигнали STOP и Forword за управление на стъпковия двигател. Това ми дава възможност както да спирам двигателя така и да задвижвам. Реверсивен ход e осигурeн програмно и не е необходим допълнителен входен сигнал.
8 | Page
На PORTA , който изпозвам за изход към двигателя имам изходен ток до 20mA, а за двигателя, който съм избрала трябва да се осигури номинален ток Iном=259mA. За целта използвам буфер ULN2004A (3) със захранване от (6-15)V, TTL/CMOS съвместим, с входен ток 25mA и изходен ток 500mA.
9 | Page
Заданието изисква да се управлява стъпков двигател в права и реверсивна посока с напрежение 12 V на цяла стъпка. Избирам 27964 (4) с технически параметри и начин на свързване предложени от производителя:
10 | P a g e
III.
Принципни Схеми
a. Блокова схема
a. Принципна схема
11 | P a g e
12 | P a g e
IV.
Програма за задвижване на стъпков двигател, управляван с PIC16F628A
list p=16f628A #include #define #define #define #define #define #define
STATUS_TEMP_W STATUS STATUS_TEMP W_TEMP STOP Forword
ST1 ST2 ST3 ST4
EQU EQU EQU EQU
0x00 0x01 0x02 0x03
PH1 PH2 PH3 PH4
EQU EQU EQU EQU
0x0E 0x0D 0x0B 0x07
0x21 0x22 0x23 0x24 0x25 0x26
ORG 0x0000 goto INT ORG 0x0004 goto INTERRUPT INT: banksel movlw movwf
CMCON 0x07 CMCON
;изключване на компараторите
banksel movlw movwf
TRISA 0x00 TRISA
;цивров изход
banksel movlw movwf
TRISB 0xFF TRISB
;цивров вход interrupt-on-change
13 | P a g e
bancksel movlw movwf bsf bsf
main_loop: INTERRUPT:
IOCB 0xFF IOCB
;позволи interrupt-on-change
INTCON,T0IE INTCON,GIE
goto
;позволи прекъсвания ;позволи глобални прекъсвания
main_loop
;save context movwf swapf clr movwf
W_TEMP STATUS,w STATUS STATUS_TEMP
btfsc goto goto
INTCON,T0IF FSM EXIT_INTERRUPT
FSM: banksel movf btfsc goto decf btfsc goto decf btfsc goto goto
STATE_REG STATE_REG,f STATUS,z state1 STATE_REG,f STATUS,z state2 STATE_REG,f STATUS,z state3 state4
state1: btfsc goto btfsc goto goto
STOP MOV_1 Forword MOV_4 MOV_2
14 | P a g e
state2: btfsc goto btfsc goto goto
STOP MOV_2 Forword MOV_1 MOV_3
state3: btfsc goto btfsc goto goto
STOP MOV_3 Forword MOV_2 MOV_4
state4: btfsc goto btfsc goto goto
STOP MOV_4 Forword MOV_3 MOV_1
MOV_1:
movlw movwf movlw movwf goto
ST1 STATE_REG PH1 PORTA EXIT_INTERRUPT
MOV_2:
movlw movwf movlw movwf goto
ST2 STATE_REG PH2 PORTA EXIT_INTERRUPT
MOV_3:
movlw movwf movlw movwf goto
ST3 STATE_REG PH3 PORTA EXIT_INTERRUPT
MOV_4:
movlw movwf movlw movwf goto
ST4 STATE_REG PH4 PORTA EXIT_INTERRUPT
15 | P a g e
EXIT_INTERRUPT: ;restore context swapf STATUS_TEMP_W movwf STATUS swapf W_TEMP,f swapf W_TEMP,w banksel movlw movwf RETFIE END
16 | P a g e
TMR0 0x06 TMR0
V.
Спецификация на използваните елементи
Елемент Микроконтролер Буфер Стъпков Двигател Съпротивления Кондензатори Кристал Бутон
17 | P a g e
Схемно означение IC1 IC2 L1,L2,L3,L4 R1 С1,С2 Q1 B1
Наименование
Брой
PIC16F628A ULN 2004A 27964 R-EU_0204/5 C025-024X044 86SMX
1 1 1 1 2 1 1
Стойност
Особености 18pins
4.7k 30pF 4MHz
VI.
Използвана литература
27964.pdf (4) http://dscl.lcsr.jhu.edu/wiki/images/9/98/Stepper_Motor_27964.pdf
Microchip Data Sheet - PIC16F62X.pdf (2) http://ww1.microchip.com/downloads/en/devicedoc/40044D.pdf
Microchip Data Sheet - PIC16F631/677/685/687/689/690.pdf (1) http://www.inf.ed.ac.uk/teaching/courses/sdp/stepper/PIC16F62X.pdf
ULN2004A.pdf (3) http://www.classiccmp.org/rtellason/chipdata/uln2001-4a.pdf
Допълнителни източници: http:// ams2000.com/stepping101.html#types http:// atarimagazines.com/v5n8/StepperMotorRobotControl.html http:// clickautomation.com/PDF/categories/Step%20Motor%20Engineer%20(2002%20Catl og).pdf http:// c-stamp.com/Documents/Documentation/CS610002m1.pdf http:// ece.osu.edu/ems/ee647/Lab_Manuals/Lab5.pdf http:// educypedia.be/electronics/motorstepdriver.htm http:// eetkorea.com/ARTICLES/2004MAY/2004MAY25_MPR_AN12.PDF http:// electricmotors.machinedesign.com/guiEdits/Content/bdeee4/bdeee4_1.aspx http://8051projects.info/blogs.asp?view=plink&id=199 http://dscl.lcsr.jhu.edu/wiki/images/9/98/Stepper_Motor_27964.pdf http://egweb.mines.edu/eggn482/labs/lab3.pdf http://electojects.com/motors/stepper-motors-1.htm http://electronics-lab.com/projects/pc/017/stepper.pdf http://en.wikipedia.org/wiki/Stepper_motor http://freescale.com/files/microcontrollers/doc/train_ref_material/MOTORPRINTUT.ht ml http://geocities.com/nozomsite/pic6.htm http://hibp.ecse.rpi.edu/~connor/education/IEE/lectures/Lecture_8_Stepper_motors.p df http://hsi-inc.com/stepper_motor_theory.php http://imagesco.com/articles/picstepper/02.html http://imagesco.com/catalog/motors/stepper.html http://mastincrosbie.com/mark/electronics/pic/stepper.html http://northcountryradio.com/PDFs/column006.pdf http://openbookproject.net//electricCircuits/AC/AC_13.html#xtocid2132913 http://opencircuits.com/PIC_based_Stepper_Motor_Dancing_Analog_Clock 18 | P a g e
http://orgler.it/sw-step.htm#STEPPER http://parallax.com/Portals/0/Downloads/docs/prod/datast/MitsumiStepMotor.pdf http://piclist.com/techref/io/steppers.htm http://rs-components.hu/ds/232_4487.PDF http://sapiensman.com/step_motor/ http://shinano.com/xampp/docs/Stepper%20Motor%20Operation%20&%20Theory.p df http://solarbotics.net/library/pdflib/pdf/motorbas.pdf http://voti.nl/stepbots/index_1.html
19 | P a g e