Table of Contents

Motoren

Bezug nehmend auf: [HW] Motor Module

Diese Bibliothek enthält Funktionen zur Steuerung der verschiedenen HomeLab Motoren. Sie enthält Funktionen für Gleichstrom- (DC-), Schritt- und Servomotoren,

Funktionen

Initialisiert einen der Controller für die DC Motoren. Parameter:

Betriebt einen der Controller der DC Motoren. Parameter:

Initialisiert den Controller eines der unipolaren Schrittmotoren. Parameter:

Befehl zum Halbschrittbetrieb für unipolaren Schrittmotor. Die Funktion ist blockierend bis sie erfüllt ist, bis alle Schritte durchgeführt wurden. Parameter.

Initialisiert den Controller des bipolaren Schrittmotors.

  
* **//void bipolar_halfstep(signed char direction, unsigned short num_steps, unsigned char speed)//** \\
  Befehl zum Halbschrittbetrieb für bipolaren Schrittmotor. Die Funktion ist blockierend bis sie erfüllt ist, bis alle Schritte durchgeführt wurden. Parameter:
  * //direction// - Rotationsrichtung . -1 oder +1.
  * //num_steps// - Zählen der Halbschritte.
  * //speed// - Zeit eines einzelnen Schritts in Millisekunden.

Initialisiert eine der PWM Signal-generierenden Einheiten eines Servomotors des ATmega128 Timers 1. Das PWM Signal beträgt 50 hz bei einer high period of 1.5 ms ± 0.5 ms. Parameter:

Takt des Servomotors mit Kontrollbefehl. Die Position eines Servomotors verändert sich wenn dieser betrieben wird. Wird er gedreht, verändert sich seine Drehzahl. Parameter:

Beispiel

Nutzung von Gleichstrom- (DC-), Schritt- und Servomotoren.

#include <homelab/module/motors.h>
 
int main(void)
{
	// Initialisierung der DC Motoren.
	dcmotor_init(0);
	dcmotor_init(1);
 
	// Initialisierung des bipolaren Schrittmotors.
	bipolar_init();
 
	// Initialisierung der Servomotoren.
	servomotor_init(0);
	servomotor_init(1);
 
	// Ein DC Motor fährt vorwärts, ein anderer rückwärts.
	dcmotor_drive(0, -1);
	dcmotor_drive(1, +1);
 
	// Bewegt den Schrittmotor 100 Schritte in eine Richtung
	// und daraufhin zurück mit doppelter Geschwindigkeit.
	bipolar_halfstep(1, 100, 50);
	bipolar_halfstep(-1, 100, 25);
 
	// Bewegt Servomotoren in entgegengesetzte Richtungen.
	servomotor_position(0, -100);
	servomotor_position(1, +100);
}