Paso 4: Poner juntos
En uno de los cuadros se muestra el circuito final con la batería. No desconecte la serie todavía hay un par de cosas que hacer en primer lugar. Copia y pega esta url y utilice enviar como antes. Este es el programa final.
http://www.byvac.com/mBlib/FLB/tutorial/PIC32MX1_Family/46_IRServo/IRServo_c.Bas
La función main()
Esto se ve complicado pero no lo es. Tipo principales y ver cómo funciona, puede que no funcione en todos dependiendo de lo que es descifrar su IR que permite echa un vistazo a la función main(). Para salir de la función necesita reiniciar.
Líneas de 67 a 74: Estos inicializar el IR y el servo como antes. Tengo dos constantes en la parte superior del archivo que he encontrado que los valores máximos y mínimos del servo. La línea = ((SERVOMAX-SERVOMIN)/2) + SERVOMIN desocupar el servo a la posición media al comienzo para arriba.
Línea 75: ¿Esta vez que será lazo siempre con no obtener, esto es una buena idea en un soporte de solo aplicaciones como usar el comkey? (2) el método puede dejar el bucle si se recibe un valor espúreo en el búfer de clave por cualquier motivo. Sin embargo durante la prueba es probablemente una buena idea dejar el get - en.
Línea 78: Tengo un LED conectado al pin 4 y por lo tanto esto es solo por un poco de información adicional.
Línea 79: La palabra IR recibida es en dos partes, los últimos 8 bits es el código asociado con la clave y pedacitos de 11 a 8 mantener el valor de cambiar, así que esta línea sólo es obtener el valor de clave (en irkey) sin la palanca.
Línea 81: Como dijeron antes la palanca forma parte del byte alto de la palabra de 16 bits, realmente esta línea también conseguirá el inicio y cualquier bit de la dirección así pero que realmente no importa en esta aplicación que sólo tenemos que ver si el botón es diferente de la última vez. La palanca va a ser el mismo si el usuario ha dejado un dedo en la llave alejada pero será diferente si el usuario le permite ir de la clave y presiona otra vez. Usamos esta característica para aumentar la velocidad del servo añadiendo 1 a la variable de velocidad si no hay ningún cambio en la palanca. Si ha habido un cambio en el botón de velocidad consigue restablecer a 0 (línea 82).
Líneas de 85 a 90: Esta es la parte que detecta que las teclas están siendo presionadas, en este caso estamos buscando 2 llaves según esta tabla:
Valor de la clave
+ 10 V (+ volumen)
+ P 20 (+ canal)
V - 11 (-volumen)
P - 21 (-canal)
Estos valores fueron encontrados durante la etapa de desarrollo, otras claves por supuesto podían ser elegidos. Las teclas más añadir 1 para acelerar y las - teclas uno llevar.
Líneas de 92 a 96: Frente a la tecla de volumen y añadir velocidad al valor PWM servo, un cheque se hace en el 95 y 96 que el servo no se han rebasado los valores, esto solo da buen control estricto.
Cuando usted está satisfecho con el software tipo flsave("") y se van a ahorrar las funciones actuales en la memoria ram a flash. Porque se llama a la función main(), también funcionará en reset.
A desarrollo de
¿Puede o no puede haber cruzado su mente que uno se guarda la función main() para flash y este comienza a reset - cómo hacer otros proyectos con este IC - o peor aún si tienes un proyecto de no-trabajo que se ha guardado a main() es atrapado ahí para siempre? Bien no, obviamente tiene que haber un salir.
Resumen
Esta ha sido una demostración de control de servomotores mediante ir Es realmente una demostración de IR y servo. El IR no tiene que estar conectado a un servo, pero podría ser por ejemplo un relé y el servo no tiene que ser controlado por el IR, esto podría tener un conjunto fijo de movimientos aplicado. O podría ser controlado mediante la PC o un teclado tal vez para abrir una puerta con cerradura.