Amatőr vezérlő NC gép (lépést

Már eddig végrehajtott egyetlen tengely, mint gép mechanika a projektben. Ezek a szabályozók nevezzük lépést / DIR. És a legolcsóbb módja annak, hogy ellenőrizzék a gépet. mert hasonló gép, de saját mondják, hogy „agya” drága. Ez az eszköz egy szinkronizációs kapcsolat a számítógép és a járművezető, hogy ellenőrizzék a léptetőmotor. Tehát lépéssel - egy lépés, dir - irányba. Természetesen a PC-re kell állítani előre spetsializirovannnoe szoftver. Az áldás a tenger.






Az alábbi fotó az én változata a megvalósítása ez a készülék, amit adtam, de az alapok ugyanazok. Természetesen, egy ilyen eszköz úgy tesz, mintha egy bázis szubsztrát, például A normál működés a gép többé-kevésbé őszinte visszajelzést van szükség.

Tehát a vezérlő egy közvetítő eszköz között a mester és a végrehajtó mechanizmus. Ha a beállítás a készülék és egy számítógépes program végrehajtásához használt - a motort. A vezérlő jelet kap a számítógép. folyamatok és kontrollok a vezetőt.
A számok az ábrán:
1. A kimenő Controller - driver.
2. Bejelentkezés számítógép - vezérlő.
3. A kimeneti vezető - a végrehajtó eszköz.
4. Az in-circuit programozási felület.
5. Bejelentkezés vezető - vezérlő.

A szabályozó tervezése szükséges, hogy először meghatározza a paramétereket a jövőben a gép, azaz válassza ki a megfelelő léptetőmotorok vagy hasonlók. Device Features végrehajtó.
Amit meg kell megvalósítani:
1. Meg kell olvasni a irányát és ütemét. Lehívásos lépés, hogy testre a bemeneti jel erősségét. Ahhoz, hogy valamilyen irányban pin olvasására elasztáz származik. Megszakítjuk beállítás láttuk a cikkben Connect gombra a AVR. Step №12.
2. Állítsa PWM, az utolsó bejegyzés (lépés №14).
3. Állítsa be a lehető legkisebb késleltetési lépések között, a tengely is provarachivatsya.
4. Írja elő lépésben algoritmus. Íme néhány elméleteket. Ez az algoritmus függ a motor által kiválasztott minket. Azt hibrid unipoláris. Mit jelent a hibrid, ami azt jelenti, hogy ötvözi a változó és fix mágnesek. Egy lépés a motor alkotja bármelyik 3,6 (4 pólus) fok. vagy 1,8-0,9 fok (8 pólus). Ie lépés attól függ, hogy a pólusok száma a motorban. Van egy 6-Th vezetékek, azaz 4-pólusú, a forgatás szöge 3.6. Hogyan működik ez? Az alábbiakban az animáció munka egy léptetőmotor. (Taken wikipedia).

Az állórész és a motor forgórész fogak bizonyos pozíciókat a rotor kapák közvetlenül szemben helyezkedik el a állórészfogak, közöttük néhány állórészfogak. forgórész fogainak biztosít minimális ellenállást a mágneses kör bizonyos helyzetekben a rotor, amely javítja a statikus és dinamikus nyomatékot. Amikor áram alá a forgórész tekercselés feszültség javítások fogak ellentétes pólus, és ez biztosítja a lépést.
Hogy csökkentse a lépéseket, és uvelechenie diszkrét természetét a forradalom, tudunk biztosítani egy fél lépés program.
Az alábbiakban az igazság táblázat a léptető és polushagovogo módban.







Teljes léptetés

Floor lépésben módban

Mi polushagovy mód - amikor minden második lépésben csak egy fázis feszültség alá kerül, és más esetekben két feszültség. Ennek eredményeként, a forgórész szögeltérésének fél állásszöge. Amellett, hogy csökkenti a lépés méretét vezérlési eljárás részben lehetővé teszi, hogy megszabaduljon a rezonancia jelenség.

Az ő programja, rájöttem, hogy a teljes lépés üzemmódban. Nos segítségével a programok részét a korábbi cikkekben írni a programot.
/ * Mint mindig, kezdje sapkák, SDEs, hogy kapcsolatba három fő könyvtár: input-output késleltetés és megszakítja * /
#define F_CPU 10000000UL // 10 MHz
#include
#include
#include
illékony int pwm_x, x_sleep; // támogatja a változó
#define N 15; // minimális megengedett késés
/ * Megszakítás bemeneti jel * /
SIGNAL (SIG_INTERRUPT0) // az interrupt feldolgozás
<
x_sleep = 0;
pwm_x = 0;
OCR1A = 255; // 5c vett egy korábbi poszt №14.
/ * Olvassa el a PIN-állam és határozza meg az irányt * /
ha (bit_is_clear (nukleáris tájékoztató program, 4)) // ha Bit 4 0
<
/ * Ezt követően meg kell felírni egy algoritmus motoros ingerlés. * /
PORTA | = _BV (PA0);
PORTA =

_BV (PA1);
PORTA =

_BV (PA2);
PORTA =

_BV (PO3);
_delay_ms (n); / * Delay jellemzi a forgási sebesség a tengely, feleslegesen. Túl gyorsan nyitó kulcs motor csak „rángatózik” nem kell tartani provarachivatsya * /
PORTA =

_BV (PA0);
PORTA | = _BV (PA1);
PORTA =

_BV (PA2);
PORTA =

_BV (PO3);
_delay_ms (n);

_BV (PA0);
PORTA =

_BV (PA1);
PORTA | = _BV (PA2);
PORTA =

_BV (PO3);
_delay_ms (n);

_BV (PA0);
PORTA =

_BV (PA1);
PORTA =

_BV (PA2);
PORTA | = _BV (PO3);
_delay_ms (n);

pwm_x = 1;
x_sleep = 0;
>
else if (bit_is_set (nukleáris tájékoztató program, 4)) // Ha a Bit 4 jelentése 1
PORTA =

_BV (PA0);
PORTA =

_BV (PA1);
PORTA =

_BV (PA2);
PORTA | = _BV (PO3);
_delay_ms (n);

_BV (PA0);
PORTA =

_BV (PA1);
PORTA | = _BV (PA2);
PORTA =

_BV (PO3);
_delay_ms (n);

_BV (PA0);
PORTA | = _BV (PA1);
PORTA =

_BV (PA2);
PORTA =

_BV (PO3);
_delay_ms (n);

PORTA | = _BV (PA0);
PORTA =

_BV (PA1);
PORTA =

_BV (PA2);
PORTA =

_delay_ms (n);
pwm_x = 1; // változó, hogy meghatározzuk az aktiválási tengely
x_sleep = 0;
>
>

int main (void) // az elején az alapítvány a program
DDRB = 0xfb; // LOG PB2
DDRD = 0xf3; // port csapok Pd 2 és PD3 - bemenetek
DDRC = 0x8f; // következtetések PC4,5,6 port - bemenetek
DDRA = 0xff; // az összes kimenetet kimenet 1, 0 log
PORTA = 0x00;
// hogy a kezdeti beállítások külső megszakítás, míg INT0
GICR = 0 × 40;
MCUCR = 0 × 02; // a lefutó él
sei (); // Interrupt Enable globálisan az egész programot
// a beállításokat a PWM számláló regiszter
TCCR1A = (1< TCCR1B = (1<

/ * OCR1A e nyilvántartás összehasonlítjuk számláló regiszter igényel folyamatos PWM. azaz Kérünk OSR1A bit a 255 számlálási modul 255 lo * /
míg a (1)
<
// Végtelen hurok
ha (pwm_x == 1)
// globális regiszter, amely meghatározza beépítése tengely
<
/ * Hurok lép alvó üzemmódba * /
míg a ((PIND2! = 0) (x_sleep <= 750 )) /*если на пине по шагам ноль, больше 750 мс, то переводим двигатель в удержание с 20% ШИМом*/
_delay_ms (1);
x_sleep ++; // globális regiszter, amely meghatározza az alvó üzemmódba
pwm_x = 0;
OCR1A = 50;
>
>
más
<
OCR1A = 50;
pwm_x = 0; / * Ez a változó használata, ha szükséges több tengely * /
>
>
> // záró zárójel, a főprogram




Kapcsolódó cikkek