Table of Contents

 

Samm-mootor

Vajalikud teadmised: [HW] Kombomoodul, [AVR] Digitaalsed sisendid-väljundid, [LIB] Mootorid,
[LIB] Viide

Teooria

Samm-mootor

Samm-mootoreid kasutatakse laialdaselt täpsust nõudvates rakendustes. Erinevalt alalisvoolumootorist puuduvad samm-mootoris harjad ja kommutaator - selleks on seal mitu eraldiseisvat mähist, mida kommuteeritakse välise elektroonikaga (ajuriga). Rootori pööramine toimub mähiseid sammhaaval kommuteerides, ilma tagasisideta. Siit avaldub ka üks samm-mootorite puudus - mehhaanilise ülekoormuse korral, kui rootor ei pöörle, lähevad sammud sassi ja liikumine muutub ebatäpseks. Mähiste järgi eristatakse kahte liiki samm-mootoreid: unipolaarsed- ja bipolaarsed samm-mootorid. Ehituse järgi jaotatakse neid veel kolmeks:

  • muutuva magnetilise takistusega (suur täpsus, madal pöördemoment, madal hind)
  • püsimagnetiga (madal täpsus, kõrge pöördemoment, madal hind)
  • hübriidne (suur täpsus, kõrge pöördemoment, kõrge hind)

Muutuva magnetilise takistusega samm-mootorites on hambulised mähised ja hambuline rauast rootor. Suurim tõmbejõud tekib mõlema poole hammaste kattumisel. Püsimagnetiga samm-mootorites on, nagu nimigi ütleb, püsimagnet, mis orienteerub vastavalt mähise polaarsusele. Hübriidides on kasutusel mõlemad tehnoloogiad.

Sõltuvalt samm-mootori mudelist läheb mootori võlli ühe täispöörde (360 kraadi) tegemiseks vaja sadu kommuteerimissamme. Stabiilse ja sujuva liikumise tagamiseks kasutatakse sobivat juhtelektroonikat, mis juhib mootorit vastavalt selle parameetritele (rootori inerts, pöördemoment, resonants jne). Lisaks võib juhtelektroonikas rakendada erinevaid kommuteerimise meetodeid. Järjest ühe mähise kaupa kommuteerimist nimetatakse täissammuks, kuid vaheldumisi ühe ja kahe mähise kommuteerimist nimetatakse poolsammuks. Kasutatakse ka sinusoidaalset mikrosammu, mis annab eriti täpse ja sujuva juhtimise.

Unipolaarne samm-mootor

Unipolaarne samm-mootor on viie või kuue juhtmega. Vastavalt ajami skeemile käivitatakse korraga ainult üks neljandik mähistest. Vcc liinid on tavaliselt ühendatud mootori positiivse toitepingega. Mähiste otsad 1a, 1b, 2a, ja 2b ühendatakse kommuteerimisel läbi transistoride ainult maaga, mistõttu nende juhtelektroonika on suhteliselt lihtne.

Bipolaarne samm-mootor

Bipolaarne samm-mootor erineb unipolaarsest samm-mootorist selle poolest, et mähiste polaarsust muudetakse kommutatsiooni ajal. Korraga aktiveeritakse pooled mähised, mis tagab võrreldes unipolaarse samm-mootoritega suurema efektiivsuse. Bipolaarsetel samm-mootoritel on neli juhet, mis ühendatakse kõik eraldi poolsillaga. Kommuteerimisel rakendavad poolsillad mähiste otstele kas positiivset või negatiivset pinget. Unipolaarseid samm-mootoreid saab käivitada ka bipolaarse ajuri abil: selleks tuleb ühendada vaid mähiste liinid 1a, 1b, 2a ja 2b (Vcc jääb ühendamata).

Unipolaarse samm-mootori mähised
Bipolaarse samm-mootori mähised

Mõlemat liiki mähisega samm-mootori juhtimiseks vajalikku kommutatsiooni täissammu ja poolsammu režiimis kujutab järgnev tabel. Kuna unipolaarsete samm-mootorite ajurite puhul toimub vaid transistoride avamine, siis nende samme on kujutatud loogiliste arvudega 0 ja 1. Bipolaarse samm-mootori juhtimine võib vajada rohkem signaale, ja selle samme on kujutatud ajuri väljundite polaarsusega.

Unipolaarne Bipolaarne
Samm 1A 2A 1B 2B 1A 2A 1B 2B
Täissamm
1 1 0 0 0 + - - -
2 0 1 0 0 - + - -
3 0 0 1 0 - - + -
4 0 0 0 1 - - - +
Poolsamm
1 1 0 0 0 + - - -
2 1 1 0 0 + + - -
3 0 1 0 0 - + - -
4 0 1 1 0 - + + -
5 0 0 1 0 - - + -
6 0 0 1 1 - - + +
7 0 0 0 1 - - - +
8 1 0 0 1 + - - +

Praktika

Kombomoodulil on olemas H-sillad bipolaarsete samm-mootorite juhtimiseks ning transistormaatriks unipolaarse samm-mootori juhtimiseks.

Samm-mootorite juhtimiseks on Kodulabori teegis olemas funktsioonid bipolar_init ja unipolar_init, mis seadistab viigud väljundiks ja funktsioonid bipolar_halfstep ja unipolar_halfstep, mis teostab pöörlemist määratud arvu poolsammude võrra. Kommuteerimine toimub poolsammude tabeli järgi, mille tekitamiseks kasutatakse keerukamaid bitioperatsioone. Unipolaarne samm-mootori ühendatakse eraldi samm-mootori pistikusse Unipolar Stepper, bipolaarne samm-mootor ühendatakse alalisvoolumootorite pistikutesse, kus ühele bipolaarsele mootorile kulub kahe alalisvoolumootori juhtviigud. Järgnev koodilõik on Kodulabor II (ATmega2561) bipolaarse samm-mootori teegifunktsioonid.

// Viikude seadistamine väljundiks
void bipolar_init(void)
{
	DDRB |= 0x0F;
	PORTB &= 0xF0;
}
 
// Bipolaarse samm-mootori liigutamine poolsammudega
void bipolar_halfstep(signed char dir,
	unsigned short num_steps, unsigned char speed)
{
	unsigned short i;
	unsigned char pattern, state1 = 0, state2 = 1;
 
	// Suuna kindlustamine +- 1
	dir = ((dir < 0) ? -1 : +1);
 
	// Poolsammude teostamine
	for (i = 0; i < num_steps; i++)
	{		
		state1 += dir;
		state2 += dir;
 
		// Mustri loomine
		pattern = (1 << ((state1 % 8) >> 1)) |
		          (1 << ((state2 % 8) >> 1));
 
		// Väljundi määramine
		PORTB = (PORTB & 0xF0) | (pattern & 0x0F);
 
		// Pausi tegemine sammu teostamise ootamiseks
		sw_delay_ms(speed);
	}
 
	// Mootori peatamine
	PORTB &= 0xF0;
}

Funktsioonide kasutamist demonstreerib näiteprogramm, mis pöörab mootorit vaheldumisi ühele ja teisele poole 200 poolsammu. Mootori pöörlemise kiiruse määrab sammude vahel tehtava pausi pikkus. Kui paus liiga väikeseks seada, ei jõua mootor rootori inertsi tõttu pööret teostada ja võll ei liigu.

// Kodulabori samm-mootorite näidisprogramm
#include <homelab/module/motors.h>
 
// Põhiprogramm
int main(void)
{
	// Mootori seadistamine
	unipolar_init(0);
 
	// Lõputu tsükkel
	while (1)
	{
		// Pööramine ühele poole 2000 poolsammu kiirusega 30 ms/samm
		unipolar_halfstep(0,+1, 2000, 30);
 
		// Pööramine teisele poole 2000 poolsammu kiirusega 30 ms/samm
		unipolar_halfstep(0,-1, 2000, 30);
	}
}
et/examples/motor/stepper.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0