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

  • void dcmotor_init(unsigned char index)

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

  • index - Index des Motorencontrollers. 0 bis 3.
  • void dcmotor_drive(unsigned char index, signed char direction)

Betriebt einen der Controller der DC Motoren. Parameter:

  • index - Index des Motorencontrollers. 0 bis 3.
  • direction - Polarität des Motors. -1, 0 oder +1. Bei 0 wird der Motor angehalten, ansonsten bewegt er sich in die vorgegebene Richtung.
  • void unipolar_init(unsigned char index)

Initialisiert den Controller eines der unipolaren Schrittmotoren. Parameter:

  • index - Index des Motorencontrollers. 0 oder 1.
  • void unipolar_halfstep(unsigned char index, signed char direction, unsigned short num_steps, unsigned char speed)

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

  • index - Index des Motorencontrollers. 0 oder 1.
  • direction - Rotationsrichtung. -1 oder +1.
  • num_steps - Zählen der Halbschritte.
  • speed - Zeit eines einzelnen Schritts in Millisekunden.
  • void bipolar_init(void)

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.
  • void servomotor_init(unsigned char index)

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:

  • index - Index des Servomotors. 0 oder 1.
  • void servomotor_position(unsigned char index, signed short position)

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:

  • index - Index des Servomotors. 0 oder 1.
  • position - Position oder Drehzahl. -100 bis +100. Bei 0 stoppt der Motor.

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);
}
de/software/homelab/library/module/motor.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
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