Paso 4: El controlador
Un servo estándar funciona a 50Hz que significa que necesita para obtener un pulso en su línea de control (Hitec - uno amarillo) cada 20ms.
La anchura del pulso en su estado activo (ciclo de trabajo) determina el ángulo del servo.
Esta modulación de la anchura de pulso conocida como PWM - modulación por ancho de pulso.
ms de 1,25-0 grados.
1,50 ms - 90 grados.
1,75 ms - 180 grados.
El código de
El mejor método - corríjanme si me equivoco - crear PWM con ATmega para dos servos es conectando el servo 1 OC1A y un 2 º a OC1B y programar cada uno de estos temporizadores a la salida PWM.
Ahora, la Junta de desarrollo tengo y uso es labio AVR (ECAVR) y OC1A y OC1B se toman ya por el LCD y el zumbador piezoeléctrico.
-Con la ayuda de [frakk2136] www.avrfreaks.net/index.php - utilicé otro método.
Me programado OC1A producir PWM rápida y utilizan interrupciones mientras los servos se conectan a PA4 & PA5.
Tendrás que modificar el código según su sistema.
Algunos de los comentarios
Tres versiones aquí:
Labyrinth_Auto
El juego automáticamente según un conjunto de instrucciones.
El código funciona muy bien, pero el mecanismo del laberinto sólo no puede calibrarse bien.
Ahora, añadir algunos factores físicos como la gravedad, fricción, tensión (especialmente este factor X) etc. y bueno, a veces la bola caen en este agujero y, a veces que uno.
Labyrinth_Manual_RS-232
El microcontrolador recibe instrucciones desde el teclado de la PC (flechas) a través del puerto serial.
El AVR-labio trabaja a 4Mhz por lo que la velocidad máxima que puede manejar sin errores es 19200 que es demasiado lento y no tan cómodo.
Labyrinth_Manual_Switches
Cuatro interruptores están conectados al AVR.
Funciona muy bien.
TODO
Joystick analógico [ X ]
Joystick Digital [ X ]
Acelerómetro [ X ]
[ V ] interruptores
Visión por computador [ X ]
* ([ X ] | [V] = Estado)