This is an old revision of the document!


Table of Contents

Motors

Related to: [HW] Motor Module

Mootorite teek võimaldab juhtida Kodulabori mootorite moodulit ja mootoreid, mis sinna ühenduvad. Olemas on alalisvoolu-, samm- ja servomootorite juhtimise funktsioonid.

Funktsioonid

  • void dcmotor_init(unsigned char index)

Ühe alalisvoolu mootorikontrolleri juhtviikude seadistamine väljundiks. Parameetrid:

  • index - Mootorikontrolleri number. Väärtus 0 kuni 3.
  • void dcmotor_drive(unsigned char index, signed char direction)

Alalisvoolu mootorikontrolleri juhtkäsk. Parameetrid:

  • index - Mootorikontrolleri number. Väärtus 0 kuni 3.
  • direction - Mootori polaarsus. Väärtus -1, 0 või +1. 0 puhul mootor seisab, muul juhul pöörleb vastavas suunas.
  • void unipolar_init(unsigned char index)

Unipolaarse mootorikontrolleri juhtviikude seadistamine väljundiks. Parameetrid:

  • index - Mootorikontrolleri number. Väärtus 0 või 1.
  • void unipolar_halfstep(unsigned char index, signed char direction, unsigned short num_steps, unsigned char speed)

Unipolaarse samm-mootori mootorikontrolleri poolsammumise juhtkäsk. Funktsioon on blokeeruv ehk seda täidetakse seni, kuni soovitud arv samme on tehtud. Parameetrid:

  • index - Mootorikontrolleri number. Väärtus 0 või 1.
  • direction - Pöörlemissuund. Väärtus -1 või +1.
  • num_steps - Poolsammude arv.
  • speed - Ühe sammu tegemise aeg millisekundites.
  • void bipolar_init(void)

Bipolaarse mootorikontrolleri juhtviikude seadistamine väljundiks.

  • void bipolar_halfstep(signed char direction, unsigned short num_steps, unsigned char speed)

Bipolaarse samm-mootori mootorikontrolleri poolsammumise juhtkäsk. Funktsioon on blokeeruv ehk seda täidetakse seni, kuni soovitud arv samme on tehtud. Parameetrid:

  • direction - Pöörlemissuund. Väärtus -1 või +1.
  • num_steps - Poolsammude arv.
  • speed - Ühe sammu tegemise aeg millisekundites.
  • void servomotor_init(unsigned char index)

Ühe servomootori juhtviikude väljundiks seadistamine ja taimer 1 seadistamine PWM režiimi. Parameetrid:

  • index - Servomootori number. Väärtus 0 või 1.
  • void servomotor_position(unsigned char index, signed short position)

Servomootori juhtkäsk. Kui juhitakse positsioneerivat servomootorit, siis muutub rootori asend, kui lõputult pöörlevat, siis muutub pöörlemise kiirus. Parameetrid:

  • index - Servomootori number. Väärtus 0 või 1.
  • position - Rootori asend või pöörlemiskiirus (olenevalt mootorist). Väärtus -100 kuni +100. 0 on keskasend või peatumine.

 

Näide

Järgnev näide demonstreerib kõiki teegi funktsioone. Järjest seadistatakse mootorikontrollerid ja liigutatakse mootoreid.

#include <homelab/module/motors.h>
 
int main(void)
{
	// Alalisvoolu mootorikontrollerite 0 ja 1 seadistamine
	dcmotor_init(0);
	dcmotor_init(1);
 
	// Bipolaarse samm-mootori kontrolleri seadistamine
	bipolar_init();
 
	// Servomootorite 0 ja 1 juhtsignaalide seadistamine
	servomotor_init(0);
	servomotor_init(1);
 
	// Üks alalisvoolu mootor pöörlema ühtpidi, teine teistpidi
	dcmotor_drive(0, -1);
	dcmotor_drive(1, +1);
 
	// Samm-mootori pööramine 100 kraadi ühele poole ja seejärel
	// 2 korda kiiremini teisele poole
	bipolar_halfstep(1, 100, 50);
	bipolar_halfstep(-1, 100, 25);
 
	// Servomootorite vastassuunda keeramine
	servomotor_position(0, -100);
	servomotor_position(1, +100);
}
en/software/homelab/library/module/motor.1269535316.txt.gz · Last modified: (external edit)
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