This is an old revision of the document!
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.
Ühe alalisvoolu mootorikontrolleri juhtviikude seadistamine väljundiks. Parameetrid:
Alalisvoolu mootorikontrolleri juhtkäsk. Parameetrid:
Unipolaarse mootorikontrolleri juhtviikude seadistamine väljundiks. Parameetrid:
Unipolaarse samm-mootori mootorikontrolleri poolsammumise juhtkäsk. Funktsioon on blokeeruv ehk seda täidetakse seni, kuni soovitud arv samme on tehtud. Parameetrid:
Bipolaarse mootorikontrolleri juhtviikude seadistamine väljundiks.
Bipolaarse samm-mootori mootorikontrolleri poolsammumise juhtkäsk. Funktsioon on blokeeruv ehk seda täidetakse seni, kuni soovitud arv samme on tehtud. Parameetrid:
Ühe servomootori juhtviikude väljundiks seadistamine ja taimer 1 seadistamine PWM režiimi. Parameetrid:
Servomootori juhtkäsk. Kui juhitakse positsioneerivat servomootorit, siis muutub rootori asend, kui lõputult pöörlevat, siis muutub pöörlemise kiirus. Parameetrid:
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); }