Motor Beispiel

Dependencies:   Motor mbed

https://developer.mbed.org/media/cache/components/components/DC_Motor.jpg.200x200_q85.jpg

Elektromotor bezeichnet einen elektromechanischen Wandler (elektrische Maschine), der elektrische Energie in mechanische Energie umwandelt. In herkömmlichen Elektromotoren wird die Kraft, die von einem Magnetfeld auf die stromdurchflossenen Leiter einer Spule ausgeübt wird, in Bewegung umgesetzt.

Der Motor wird mittels eines float Wertes von full Speed rueckwärts (-1.0) nach full Speed vorwärts (1.0) angesprochen.

Ein ruhiger und schonender Motorlauf wird durch die Anpassung der PWM Periode (in Motor.cpp) erreicht. Diese PWM Periode bezieht sich auf die Motor Frequenz (siehe Datenblatt Motor) und wird wie folgt berechnet:

Periode (s) = 1 / Frequenz (Hz = 1/s)

Ein Motor benötigt die Motor Library und eine Verstärkerschaltung, wie z.B. eine H-Brücke. Eine H-Brücke braucht einen PWM Pin und zwei beliebige Digital Pins pro Motor.

Es können zwei Motoren an den DCMOT (D2-D7) Header angeschlossen werden.

Anwendungen

  • Antrieb von Bahnen, Elektrokarren, Gabelstabel, Funkgesteuerte Modellautos (RC-Car), Robotern etc.
Committer:
marcel1691
Date:
Mon Mar 23 17:13:17 2015 +0000
Revision:
0:6d98ef70e4b9
Child:
1:cd92955f8d4b
Motor Beispiel

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcel1691 0:6d98ef70e4b9 1 /** Motor Beispiel
marcel1691 0:6d98ef70e4b9 2 */
marcel1691 0:6d98ef70e4b9 3 #include "mbed.h"
marcel1691 0:6d98ef70e4b9 4 #include "Motor.h"
marcel1691 0:6d98ef70e4b9 5
marcel1691 0:6d98ef70e4b9 6 Motor m1(D3, D2, D4); // PWM, Vorwaerts, Rueckwarts
marcel1691 0:6d98ef70e4b9 7
marcel1691 0:6d98ef70e4b9 8 int main()
marcel1691 0:6d98ef70e4b9 9 {
marcel1691 0:6d98ef70e4b9 10 printf( "Motor Test\n" );
marcel1691 0:6d98ef70e4b9 11 while ( 1 )
marcel1691 0:6d98ef70e4b9 12 {
marcel1691 0:6d98ef70e4b9 13 // rueckwaerts
marcel1691 0:6d98ef70e4b9 14 printf( "rueckwaerts\n" );
marcel1691 0:6d98ef70e4b9 15 for (double s= 0.5; s < 1.0 ; s += 0.01)
marcel1691 0:6d98ef70e4b9 16 {
marcel1691 0:6d98ef70e4b9 17 m1.speed(s * -1);
marcel1691 0:6d98ef70e4b9 18 wait(0.4);
marcel1691 0:6d98ef70e4b9 19 }
marcel1691 0:6d98ef70e4b9 20 m1.speed( 0 );
marcel1691 0:6d98ef70e4b9 21 wait( 1.0 );
marcel1691 0:6d98ef70e4b9 22
marcel1691 0:6d98ef70e4b9 23 printf( "vorwaerts\n" );
marcel1691 0:6d98ef70e4b9 24 for (double s= 0.5; s < 1.0 ; s += 0.01)
marcel1691 0:6d98ef70e4b9 25 {
marcel1691 0:6d98ef70e4b9 26 m1.speed(s);
marcel1691 0:6d98ef70e4b9 27 wait(0.4);
marcel1691 0:6d98ef70e4b9 28 }
marcel1691 0:6d98ef70e4b9 29 m1.speed( 0 );
marcel1691 0:6d98ef70e4b9 30 wait( 1.0 );
marcel1691 0:6d98ef70e4b9 31 }
marcel1691 0:6d98ef70e4b9 32 }