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:
stefan1691
Date:
Sun May 31 07:20:38 2015 +0000
Revision:
2:c9df6ce2f77d
Parent:
1:cd92955f8d4b
float statt double - schneller

Who changed what in which revision?

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