This is an old revision of the document!
Relacionado com: [HW] Módulo de Motores
Esta biblioteca contém funções para controlar diferentes motores no HomeLab. Existem funções para motores DC, stepper e servomotores.
Inicializa um dos controladores de motor DC. Parâmetros:
Alimenta um dos controladores de motor DC. Parâmetros:
Alimenta um dos controladores de motor DC. O motor roda numa dada direcção e velocidade Parâmetros:
Inicializa o controlador de um dos motores stepper. Parâmetros:
Comando de meio passo para um motor stepper unipolar. Esta função bloqueia o processador até os passos estarem concluídos. Parâmetros:
Inicializa o controlador de um motor stepper bipolar.
Comando de meio passo para um motor stepper bipolar. Esta função bloqueia o processador até os passos estarem concluídos. Parâmetros:
Initializes one of a servo motor PWM signal generations units in ATmega128 timer 1. PWM signal is 50 hz with high period of 1.5 ms ± 0.5 ms. Parameters:
Servo motor pulse width control command. If positioning servo motor is driven, its position is altered, if rotating one, its rotation speed is altered. Parameters:
The following program demonstrates the usage of DC, stepper and servo motors.
#include <homelab/module/motors.h> int main(void) { // DC motors initialization. dcmotor_init(0); dcmotor_init(1); // Bipolar stepper initialization. bipolar_init(); // Servo motors initialization. servomotor_init(0); servomotor_init(1); // One DC motors drives forward, another in backward direction. dcmotor_drive(0, -1); dcmotor_drive(1, +1); // Rotating the stepper motor 100 steps in one direction // and then back with twice the speed. bipolar_halfstep(1, 100, 50); bipolar_halfstep(-1, 100, 25); // Rotating servo motors in opposite directions. servomotor_position(0, -100); servomotor_position(1, +100); }
This example demonstrates the speed adjustments of a DC motor.
#include <homelab/module/motors.h> int main(void) { unsigned char speed = 0; // DC motors initialization dcmotor_drive_pwm_init(0, TIMER2_NO_PRESCALE); while(1) { speed = 100; // DC motors drives predefined speed and direction. dcmotor_drive_pwm(0, 1, speed); } }