This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| de:examples:motors:servo [2009/04/23 16:49] – angelegt nierhoff | de:examples:motors:servo [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== RC Servomotor ====== | ||
| + | Servomotoren werden oft in ferngesteuerten (radio-controlled/ | ||
| + | RC Servomotoren werden mit einem externen Pulsweitenmodulierten Steuersignal (PWM) angesteuert. Das Steuersignal gibt eine (Ziel)Position für die Servo-Elektronik an, welche die angegebene Position der Motorwelle mit der geforderten vergleicht und bestmöglich anpasst. Das Steuersignal ist ein stetiges Rechtecksignal (siehe Bild) | ||
| + | Servomotoren haben drei Kabel: | ||
| + | * Rot = Stromversorgung VCC (4.8–6V) | ||
| + | * Schwarz = Masse | ||
| + | * Weiß/Gelb = PWM-Signal (variiert je nach Typ) | ||
| + | |||
| + | Das PWM Signal hat folgende Form: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | 1.0ms = weiteste linke Position | ||
| + | |||
| + | 1.5 ms = Center Position | ||
| + | |||
| + | 2.0 ms = weiteste rechte Position | ||
| + | |||
| + | ===== Elektrische Verbindung ===== | ||
| + | {{: | ||
| + | |||
| + | Tabelle Steuersignale vom ATmega128 zu dem Actuator-Board. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | - Schalte den Strom ab. | ||
| + | - Verbinde Actuator-Board und Main-Board mit einem 26-pin Kabel. | ||
| + | - Verbinde den RC Servomotor mit dem Actuator-Board (siehe Bild 2). Anmerkung: Das Signal-Kabel (normalerweise Geld oder Weiß) befindet sich am äußeren Rand des Boards. | ||
| + | - Verbinde den JTAG Converter mit dem ATmega128 Main-Board und dem PC. | ||
| + | - Schließe Actuator- und Main-Board an den Strom an. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== Beispiel Code ===== | ||
| + | |||
| + | <code c> | ||
| + | / | ||
| + | Title: RC Servo motor with Actuator Board | ||
| + | Date: | ||
| + | Ver.: 1.1 | ||
| + | Compiler: | ||
| + | Target: | ||
| + | Hardware: | ||
| + | Author: Raivo Sell 2008 | ||
| + | |||
| + | Notes: | ||
| + | ---------------------------------------------------------------*/ | ||
| + | #define F_CPU 14745600UL //CPU Frequency (influences delay function) | ||
| + | |||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | ///////////////// | ||
| + | int main (void){ | ||
| + | |||
| + | // Set timer control registers | ||
| + | TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(WGM11); | ||
| + | TCCR1B = _BV(CS11) | _BV(WGM13) | _BV(WGM12); | ||
| + | | ||
| + | DDRB = 0x30; // PB5 & PB6 output | ||
| + | ICR1 = 36000; // Sets the upper limit to Timer1 | ||
| + | // | ||
| + | OCR1A | ||
| + | |||
| + | while(1){ | ||
| + | for(OCR1A=500; | ||
| + | for(OCR1A=5000; | ||
| + | } | ||
| + | } | ||
| + | </ | ||