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:
Inicializa as unidades de geração de sinal PWM de um servomotor no timer 1 do ATmega128. O sinal PWM é de 50 hz com período elevado a 1.5 ms ± 0.5 ms. Parâmetros::
Comando de controlo da largura do pulso do servomotor. Se o posicionamento do servomotor é executado, a sua posição é alterada, se é rodado, a sua velocidade de rotação é alterada. Parâmetros:
O programa seguinte demonstra o uso de motores DC, stepper e servomotores.
#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); }
Este exemplo demonstra o ajustamento da velocidade para um motor DC.
#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); } }