Logo Studenta

tesis497

¡Este material tiene más páginas!

Vista previa del material en texto

CONJUNTO DE CIRCUITOS ELECTRÓNICOS PARA 
PLATAFORMA ROBÓTICA 
 
 
 
Trabajo de Grado Número 0958 
 
 
 
Andrés Felipe González Cardona 
 
 
 
 
PROYECTO DE GRADO PRESENTADO PARA OPTAR EL TÍTULO DE 
INGENIERO ELECTRÓNICO 
 
 
 
 
DIRECTOR: 
INGENIERO KAMILO ANDRÉS MELO BECERRA M.Sc. 
PONTIFICIA UNIVERSIDAD JAVERIANA 
 
 
 
FACULTAD DE INGENIERÍA 
CARRERA DE INGENIERÍA ELECTRÓNICA 
BOGOTA D.C 
JUNIO DE 2010 
 
1 
 
PONTIFICIA UNIVERSIDAD JAVERIANA 
 
FACULTAD DE INGENIERÍA 
 
DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA 
 
 
RECTOR MAGNÍFICO: R. P. JOAQUÍN SÁNCHEZ S.J 
DECANO ACADÉMICO: ING. FRANCISCO JAVIER REBOLLEDO MUÑOZ 
DECANO DEL MEDIO UNIVERSITARIO: R.P. SERGIO BERNAL S.J. 
DIRECTOR DE DEPARTAMENTO: ING. JORGE LUIS SÁNCHEZ 
DIRECTOR DE CARRERA: ING. JUAN MANUEL CRUZ 
DIRECTOR DEL PROYECTO: ING. KAMILO ANDRÉS MELO BECERRA M.Sc. 
 
2 
 
ARTÍCULO 23 DE LA RESOLUCIÓN No. 13 DE JUNIO DE 1946 
 
 
“La Universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus 
proyectos de grado. 
Sólo velará porque no se publique nada contrario al dogma y la moral católica y porque los 
trabajos no contengan ataques o polémicas puramente personales. Antes bien, que se vea en 
ellos el anhelo de buscar la verdad y la justicia”. 
 
3 
 
TABLA DE CONTENIDO 
1 Introducción ................................................................................................................................ 7 
2 Marco Teórico ............................................................................................................................. 9 
2.1 Estado del Arte de las plataformas robóticas educacionales...................................................... 9 
2.2 Drivers para motores dc con escobillas .................................................................................... 9 
2.3 Servomotores ........................................................................................................................ 12 
3 Especificaciones ........................................................................................................................ 14 
3.1 Especificaciones Eléctricas del Sistema ................................................................................. 14 
3.2 Diagrama en bloques ............................................................................................................. 14 
4 Desarrollo ................................................................................................................................. 15 
4.1 Módulo Maestro .................................................................................................................... 17 
4.1.1 Descripción General ......................................................................................... 17 
4.1.2 Especificaciones ............................................................................................... 19 
4.1.3 Hardware ......................................................................................................... 19 
4.1.4 Software ........................................................................................................... 21 
4.1.4.1 Timer ......................................................................................................... 21 
4.1.4.2 UART ........................................................................................................ 24 
4.1.4.3 I2C ............................................................................................................. 25 
4.1.4.4 Maquina ..................................................................................................... 28 
4.2 Módulo Comunicación .......................................................................................................... 31 
4.2.1 Descripción general .......................................................................................... 31 
4.2.2 Especificaciones ............................................................................................... 32 
4.2.3 Hardware ......................................................................................................... 33 
4.2.4 Software ........................................................................................................... 34 
4.3 Módulo Puente H .................................................................................................................. 37 
4.3.1 Descripción general .......................................................................................... 37 
4.3.2 Especificaciones ............................................................................................... 37 
4.3.3 Hardware ......................................................................................................... 38 
4.4 Módulo Puente H Microcontrolado ........................................................................................ 40 
4.4.1 Descripcion general .......................................................................................... 40 
4.4.2 Especificaciones ............................................................................................... 41 
4 
 
4.4.3 Hardware ......................................................................................................... 41 
4.4.4 Software ........................................................................................................... 43 
4.5 Módulo display ..................................................................................................................... 43 
4.5.1 Descripción general .......................................................................................... 44 
4.5.2 Especificaciones ............................................................................................... 44 
4.5.3 Hardware ......................................................................................................... 45 
4.5.4 Software ........................................................................................................... 45 
4.6 Módulo Sensor ...................................................................................................................... 46 
4.6.1 Descripción general .......................................................................................... 47 
4.6.2 Especificaciones ............................................................................................... 47 
4.6.3 hardware .......................................................................................................... 48 
4.6.4 software ........................................................................................................... 48 
4.7 Variables de entrada .............................................................................................................. 48 
4.7.1 Datos a través de Rs-232 .................................................................................. 48 
4.7.2 Sensor de contacto............................................................................................ 49 
4.7.3 Botones módulo Maestro .................................................................................. 49 
4.7.4 Programación Puente H .................................................................................... 49 
4.8 Variables de salida ................................................................................................................ 49 
4.8.1 Visualización gráfica ........................................................................................ 49 
4.8.2 Señales pwm .................................................................................................... 50 
4.8.3 Salida puente h y puente h microcontrolado...................................................... 50 
4.8.4 Entrada análoga en el puente H micro............................................................... 50 
5 Pruebas,resultadosy análisis de los mismos ............................................................................... 50 
5.1 Prueba de almacenamiento .................................................................................................... 51 
5.2 Prueba PWM’s ................................................................................................................... 53 
5.3 Prueba interconexión ............................................................................................................. 56 
6 Conclusiones ............................................................................................................................. 56 
7 Costos y fuentes de financiación ................................................................................................ 59 
8 Bibliografía y fuentes de información ........................................................................................ 60 
 
 
5 
 
TABLA DE FIGURAS 
Figura1: Driver tipoHigh Side. .................................................................................................. 10 
Figura2: Driver tipoLow Side. ................................................................................................... 10 
Figura 3: Señal del driver de velocidad de un motor de corriente continua................................. 11 
Figura 4: Driver tipo Puente H. ................................................................................................. 12 
Figura 5: Diagrama en bloques general. .................................................................................... 14 
Figura 6: Diagrama en bloques específico. ................................................................................ 15 
Figura 7: Módulo maestro. ........................................................................................................ 17 
Figura 8: Máquina de estados módulo Maestro.......................................................................... 18 
Figura 9: Control unidireccional para los motores DC. .............................................................. 20 
Figura 10: Esquemático módulo maestro. .................................................................................. 21 
Figura 11: Diagrama de flujo módulo de software timer. ........................................................... 23 
Figura 12: Diagrama de flujo módulo de software UART. ......................................................... 25 
Figura 13: Diagrama de flujo módulo de software I2C. ............................................................. 27 
Figura 14: Módulo comunicación. ............................................................................................. 31 
Figura 15: Máquina de estados del módulo comunicación. ........................................................ 32 
Figura 16: Funcionamiento teclado. .......................................................................................... 33 
Figura 17: Esquemático módulo comunicaciones. ..................................................................... 34 
Figura 18: Estructura de un comando codificado por el módulo comunicaciones. ...................... 35 
Figura 19: Diagrama de flujo módulo comunicaciones. ............................................................. 36 
Figura 20: Módulo puente h. ..................................................................................................... 37 
Figura 21: Diagrama de bloques funcional del LMD18200. ...................................................... 38 
Figura 22: Señal de control aplicada al pin de direccción del puente h. ...................................... 39 
Figura 23: Esquemático módulo puente H. ................................................................................ 39 
Figura 24: Módulo puente h microcontrolado. ........................................................................... 40 
Figura 25: Máquina de estados módulo puente H microncontrolado. ......................................... 40 
Figura 26: Diagrama de bloques funcional del L6203. ............................................................... 41 
Figura 27: Esquemático módulo puente H microcontrolado....................................................... 42 
Figura 28: Diagrama de flujo módulo puente h microcontrolado. .............................................. 43 
Figura 29: Módulo display. ....................................................................................................... 43 
Figura 30: Máquina de estados módulo display. ........................................................................ 44 
Figura 31: Esquemático módulo display. ................................................................................... 45 
6 
 
Figura 32: Diagrama de flujo del módulo display. ..................................................................... 46 
Figura 33: Módulo sensor.......................................................................................................... 46 
Figura 34: Máquina de estados módulo sensores. ...................................................................... 47 
Figura 35: Esquemático módulo sensores. ................................................................................. 48 
Figura 36: Comunicación bajo el protocolo I2C entre 2 microcontroladores............................... 51 
 
LISTA DE TABLAS 
Tabla 1: Características eléctricas del sistema. .......................................................................... 14 
Tabla 2: Especificaciones módulo maestro. ............................................................................... 19 
Tabla 3: Especificaciones módulo comunicaciones. .................................................................. 32 
Tabla 4: Especificaciones módulo puente h. .............................................................................. 37 
Tabla 5: Especificaciones módulo puente h microcontrolado. .................................................... 41 
Tabla 6: Especificaciones módulo display. ................................................................................ 44 
Tabla 7: Especificaciones módulo sensores. .............................................................................. 47 
Tabla 8: Valores de equivalencia del tiempo en valores numéricos ............................................ 52 
Tabla 9: Resultado prueba almacenamiento. .............................................................................. 53 
Tabla 10: Resultado configuración CCP. ................................................................................... 54 
Tabla 11: Resultado prueba verificación ciclos útiles. ............................................................... 55 
Tabla 12: Conjunto de pruebas PWM. ....................................................................................... 55 
Tabla 13: Costos y fuentes de financiación del proyecto. ........................................................... 59 
 
7 
 
1 INTRODUCCIÓN 
Con el pasar de los años, la robótica se ha introducido en diversas áreas y disciplinas para aportar 
sus beneficios. Hoy en día, este tipo de tecnología se ha vuelto indispensable para el desarrollo de 
áreas como la industria y la medicina. Por ejemplo, en el campo de la medicina se puede pensar 
en prótesis que están provistas de actuadores y controladores, así como en brazos mecánicos para 
realizar alguna operación delicada [1]. Debido a las grandes ventajas que la robótica presenta 
para los seres humanos, el campo de aplicación de este tipo de tecnología se ha extendido 
considerablemente, englobando una gran gama de disciplinas. De hecho, la robótica ha 
desbordado el cuadro tradicional de la fabricación automatizada, para dirigirse al campo de la 
educación, en donde se aprovechan las bondades que ésta ofrece como medio de enseñanza [2]. 
 
En este orden de ideas, la creación de plataformas robóticas surge como una alternativaque 
permite penetrar de una manera sencilla el aula de clase, haciendo que los alumnos puedan 
usarlas para la construcción de un robot con alguna tarea específica. Así, este tipo de tecnología 
se ha convertido en una herramienta pedagógica a través de la cual se estimula a los alumnos a 
aprender distintas áreas del conocimiento, llevando un proceso interactivo entre la teoría y la 
práctica.De esta manera, durante las últimas dos décadas, investigadores e industrias han 
diseñado y puesto en práctica cierto número de kits para la construcción de robots para estimular 
el aprendizaje de estudiantes en áreas como las matemáticas, la física, la informática y la 
mecánica. Estos kits incluyen motores, poleas, censores y otro tipo de objetos para su 
construcción; es decir, todo tipo de elementos que permiten al estudiante construir un robot [3]. 
 
El aumento de la demanda de este tipo de plataformas robóticas hace que exista la necesidad de 
crear prototipos de bajo costo, sin perder las capacidades y robustez de otra plataforma más 
compleja. Por lo tanto, se considera importante la implementación de la electrónica en módulos 
de herramientas de control de robots simples y más económicos, para usar la robótica como 
medio para la adquisición de nociones científicas y motivar a los estudiantes sobre la ciencia y la 
tecnología. 
 
Con este propósito en mente, en este proyecto se diseñó un módulo maestro capaz de realizar las 
siguientes operaciones: 1) manejar tres motores de corriente continua o servomotores a través de 
señales de un PWM, 2) realizar ciertas rutinas preestablecidas, 3) guardar un conjunto limitado de 
8 
 
estas instrucciones para luego ser ejecutadas de manera secuencial y 4) manejar los motores en 
tiempo real, según las necesidades del usuario. Asimismo, el modelo incluye el diseño de 
módulos adicionales que, aunque no son indispensables para el correcto funcionamiento del 
sistema, agregan capacidades al módulo maestro. Entre estos módulos adicionales se encuentra 
el módulo de comunicaciones, que permite la comunicación entre el módulo maestro y el 
computador, el módulo display, que le informa al usuario el estado en el cual el sistema está 
operando, el módulo censores, el módulo puente H y el modulo puente H microcontrolado. 
 
Para poder realizar una exposición adecuada del proyecto, se empezará haciendo un marco 
teórico en el cual se expondrán las bases tóricas mínimas para la adecuada comprensión de los 
circuitos. Posteriormente, se expondrán las especificaciones de cada uno de los módulos de la 
plataforma, así como sus diagramas en bloques. Partiendo de lo anterior, se procederá a explicar 
el desarrollo del trabajo de grado, en el cual se incluirá una descripción de cada uno de los 
módulos que componen el proyecto, así como la tecnología utilizada y los diseños realizados. Por 
último, se expondrán los resultados de las pruebas realizadas para comprobar el correcto 
funcionamiento del proyecto y se relacionaran los puntos concluyentes del trabajo realizado. 
 
9 
 
2 MARCO TEÓRICO 
2.1 ESTADO DEL ARTE DE LAS PLATAFORMAS ROBÓTICAS 
EDUCACIONALES 
En este momento en la industria se pueden conseguir distintos kits de robótica con los que se 
pueden diseñar, construir y operar robots. Unas de estas plataformas son LEGO Mindstorms, 
VEX y Parallax, las cuales pueden ser programadas para realizar tareas específicas con 
servomotores para que los robots se muevan con presición y sensores de distancia, color, visión, 
etc. para que los robots interactuen con el medio. Estas plataformas vienen con ejemplos de como 
crear y programar un robot que realice una tarea simple para que el usuario después construya y 
programe sus propios robots según sus necesidades. Aunque se programen de maneras distintas y 
no contengan las mismas piezas, el objetivo es el mismo, crear robots y estimular a los usuarios a 
desarrollar robots llevando un proceso interactivo entre la teoría y la práctica. 
2.2 DRIVERS PARA MOTORES DC CON ESCOBILLAS1 
Cada circuito para el control de motores puede dividirse en el manejo de la electrónica y del 
software de control. Estas dos piezas pueden ser simples o extremadamente complicadas 
dependiendo del motor que se vaya a utilizar y los requerimientos del sistema. Generalmente, 
sistemas con un mejor desempeño requiere hardware más complicado. A continuación se 
explicarán algunos circuitos básicos involucrados en el manejo de motores de corriente continua 
con escobillas, que son el tipo de motor usado en el proyecto debido al costo, al manejo y a la 
disponibilidad de los mismos. 
 
Todos los motores requieren circuitos que controlan el flujo de la corriente a través de sus 
enbobinados,esto incluye la dirección y la magnitud del flujo de la corriente. Los motores de 
corriente continua con escobillas son fáciles de controlar porque la velocidad y el torque son 
proporcionales al voltage o corriente aplicada. 
 
1 Toda la información de esta sección hace referencia a 60[6] 
10 
 
 
Figura1: Driver tipoHigh Side. 
En la Figura1 se puede ver un driver con la capacidad de manejar un motor dc con escobillas en 
una dirección. Este tipo de driver es usado principalmente en aplicaciones en donde la seguridad 
es crítica por el hecho de que un corto no puede poner en rotación al motor. 
 
El driver tipo LowSide, como el de la Figura2, es el más económico por la simplicidad con la que 
se maneja el MOSFET. En la mayoría de las apliacaciones se puede usar un pin de salida de un 
microcontrolador que produzca un señal PWM para encender y apagar el MOSFET, en donde el 
ciclo útil de la señal es el encargado de la velocidad de rotación del motor ya que ésta es 
proporcional al ciclo útil de la señal generada. 
 
Figura2: Driver tipoLow Side. 
La velocidad de un motor de corriente continua es el promedio de la señal aplicada al mismo. 
Una de las técnicas más utilizadas es el PWM, en donde se mantiene el periodo de una señal 
cuadrada en un valor constante, pero se varía el ciclo útil de ésta; cambiando el valor promedio 
de la señal de salida del PWM afectando la velocidad de rotación del eje del motor. 
M1
D1
0
0
Q1
VCC
U1
Driver Mosf et
1 2Senal PWM
U2
Driver Mosf et
1 2Senal PWM
Q2
D2
M2
VCC
0
11 
 
 
Si el ciclo útil es del 70% del periodo, el motor es abastecido con 70% del voltaje máximo, y 
luego el ciclo útil es modificado al 40% del periodo, en donde el motor es abastecido con 40% 
del voltaje máximo, el motor disminuye la velocidad de rotación del eje. En la Figura 3 hay un 
dibujo que explica el principio de un driver de velocidad de un motor de corriente continua a 
partir de la señal de un PWM. 
 
 
Figura 3: Señal del driver de velocidad de un motor de corriente continua. 
Para lograr el control del sentido de la rotación del eje de los motores de corriente continua 
depende de la polaridad aplicada a las terminales del mismo. El puente H, ver Figura 4, es un 
circuito con 4 transistores que logra cambiar la polaridad de los terminales del motor a través de 
la conmutación de estos. Cuando hay un valor bajo en la señal PWM1 yseñal PWM2 y un valor 
alto en señal PWM3 y señal PWM4, los transistores Q3 y Q2 permiten el flujo de corriente a 
través de ellos, mientras que Q1 y Q4 van a estar en corte, causando que el eje del motor gira en 
un sentido. Si ahora existe un valor alto en la señal PWM1 y señal PWM2 y un valor bajo en 
señal PWM3 y señal PWM4, los transitores Q1 y Q4 permitirán el flujo de corriente a través de 
ellos y el motor girará en sentido contrario a la condición previamente explicada. 
12 
 
 
Figura 4: Driver tipo Puente H. 
 
Como se mencionó anteriormente, las señales PWM son una solución para manejar la velocidad 
de los motores. Algunos microcontroladores de Microchip, es el fabricante de los 
microcontroladores escogidos para el proyecto por su costoy sus diversas formas de 
programación, tienen periféricos PWM incorporados; estos periféricos son el CCP 
(Capture/Compare/PWM) y el ECCP (Enhanced CCP). El CCP tiene la intención de generar una 
señal PWM mientras que el ECCP está diseñado para producir las señales necesarias para 
controlar un puente h. Si los costos son un punto crítico para el diseño, puede que un 
microcontrolador con estos módulos no esté disponible, por lo que la generación de de señales 
PWM a través de software es una buena alternativa. 
2.3 SERVOMOTORES2 
Los motores vienen en diferentes variedades para distintas aplicaciones. El término “servomotor” 
no aplica realmente al motor como tal sino a la forma en que el motor es utilizado y controlado. 
En aplicaciones en donde se requiera el uso de servomotores, la idea es mantener la carga, que 
está unida al eje del motor a través de una serie de engranajes para un ajuste del torque y la 
velocidad, en una posición específica. 
 
Para lograr esto, es necesario obtener información de la posición de la salida del motor para 
proveer de retroalimentación al sistema de control. La información de la posición se adquiere a 
través de un potenciometro unido a los engranajes, un sensor de efecto hall que monitorea el paso 
 
2 Toda la información de esta sección hace referencia a [8]. 
U2
Driv er Mosf et
1 2Senal PWM 2
Q1
0
Q2
VCC
U1
Driv er Mosf et
1 2Senal PWM 1
M1
U3
Driver Mosf et
12 Senal PWM 4
Q3
0
Q4
VCC
U4
Driver Mosf et
12 Senal PWM 3
13 
 
de unos “dientes” sobre un engranaje metálico, un “encoder” montado directamente en el motor, 
o cualquier otro sensor que pueda proveer información de la posición del eje del motor. 
 
Debido a que los tiempos de respuesta en aplicaciones que involucran el uso de servomotores son 
medidos en segundos, se puede decir que el lazo de control no es muy exigente. Por lo tanto, se 
usa un algorítmo sencillo y si es necesario, se le agrega complejidad. En el caso de un servomotor 
de posición, a medida que el eje del motor rota, se obtiene el valor de la posición del eje y el 
motor es apagado cuando llega a la posición deseada; se asume que la velocidad de la adquisición 
de la posición es lo suficientemente rápida para evitar el sobrepaso del valor de posición deseado 
 
El cable de control de los servomotores es usado para indicar la posición o el ángulo deseado, el 
cual está determinado una señal cuadrada que es sometida a variaciones en su ciclo útil. A pesar 
que tanto el periodo de la señal como las variaciones del ciclo útil dependen del modelo y de cada 
fabricante, el principio de operación siempre es el mismo. 
 
14 
 
3 ESPECIFICACIONES 
3.1 ESPECIFICACIONES ELÉCTRICAS DEL SISTEMA 
CARACTERÍSITCA VALOR 
Fuente de alimentación 12 V 
Tasa de transmisión entre los módulos conectados 
a través del protocolo de comunicación RS-232 
9600 bps 
Tasa de transmisión entre los módulos conectados 
a través del protocolo de comunicación I2C 
100k bps 
Número máximo de módulos conectados 7 
Número máximo de motores conectados 3 
Número máximo de instrucciones 
almacenadas por motor 
15 
Tabla 1: Características eléctricas del sistema. 
3.2 DIAGRAMA EN BLOQUES 
 
Figura 5: Diagrama en bloques general. 
 
15 
 
 
Figura 6: Diagrama en bloques específico. 
4 DESARROLLO 
Dado que se pretende crear un conjunto de circuitos para una posible plataforma robótica, se 
decidió realizar un módulo maestro, independiente de los demás módulos, capaz de ejecutar un 
listado de 15 instrucciones de 3 señales pwm y otros 5 módulos que necesitan de éste para poder 
ser manejados. Esto se hizo con el fin de que estos 5 módulos sean kits independientes que 
aumenten las características del módulo maestro y el usuario escoja cuáles desea comprar y/o 
instalar para realizar la tarea. Cada módulo fue diseñado con el criterio de las necesidades típicas 
de los usuarios y de las características de las plataformas existentes. 
 
Para conectar los módulos al maestro sólo es necesario conectarlos al bus I2C y el maestro detecta 
automáticamente qué módulo tiene conectado y cambia su manera de controlar las señales PWM 
si se requiere. Este bus no fue diseñado para ser multi-maestro, y es por esto que el módulo 
maestro es el único de iniciar y parar una comunicación en este bus. Para comunicarse con el 
módulo comunicaciones se utiliza el bus RS-232 y esta comunicación se puede iniciar desde 
cualquiera de los dos módulos; ademas, como en el bus de comunicaciones anterior, es una 
comunicación half-duplex. 
 
Se decidió utilizar motores de corriente continua con escobillas por su alta disponibilidad y 
mayor economía por si se ve la necesidad de reemplazar alguno de estos, específicamente se usan 
motores dc con escobillas OT-FF-M10SA/ PA de la compañía Once Top. De la hoja de 
16 
 
especificaciones del motor se observa que sus aplicaciones típicas son para juguetes y aero 
modelos y que maneja una corriente máxima de 0.58 A y un voltaje nominal de 4.8 V. Es por 
esto que los transistores de salida se escogieron con la corriente máxima para un un torque de 
stall máximo, en donde se presenta el mayor consumo de corriente. 
 
Se escogió el puente H LMD18200 para manejar motores con corrientes de 2 A con voltajes de 
24 V ya que este dispositivo electrónico tiene la capacidad de manejar corrientes de 3 A y 
voltajes hasta de 55 V y está diseñado idealmente para manejar motores de corriente continua. 
Además de esto, este puente H tiene la característica de poder ser controlado a partir de una sola 
señal de control, ver sección Módulo Puente H para mayor información acerca de la señal de 
control. El puente H L6203 tambíen fue escogido para manejar corrientes de 2 A con voltajes de 
24 V ya que este dispositivo tiene la capacidad de manejar corrientes de 4 Ay voltajes hasta 48 V. 
Hay que tener en cuenta que este proyecto es un kit educacional para ser manipulado por niños, 
razón por la cual no debería ser usado en aplicaciones que demanden corrientes mayores a las ya 
mencionadas. De esta forma, el uso de estos circuitos en aplicaciones diferentes a las educativas, 
están bajo la responsabilidad del usuario. El uso de los puentes H se limita al uso de un motor 
extra, el cual no se provee, pero hay que tener en cuenta las limitaciones dadas por los puentes en 
voltaje y corriente. 
 
Debido a que el prototipo consiste en módulos removibles conforme a las necesidades del 
usuario, a continuación se explicarán todos los módulos del sistema así estos no estén conectados 
con el módulo maestro. 
17 
 
4.1 MÓDULO MAESTRO 
 
Figura 7: Módulo maestro. 
4.1.1 DESCRIPCIÓN GENERAL 
Este bloque microcontrolado tiene la habilidad de identificar qué módulos tiene conectados, crear 
un listado limitado de instrucciones y ejecutarlas de manera secuencial o en tiempo real. Además 
tiene la capacidad de manejar 3 motores a partir de PWM's y de comunicarse con otros módulos 
adicionales mediante I2C o USART. Se usó el microcontrolador PIC18F6410 como el control de 
este módulo y se implementó una máquina de estados por software para garantizar el correcto 
funcionamiento del sistema, ver Figura 8. 
 
18 
 
 
Figura 8: Máquina de estados módulo Maestro. 
En la Figura 8 se muestra la máquina de estados del módulo maestro. En el lugar “Inicialización” 
se programan los pines de entrada y de salida del microcontrolador, se habilitan los periféricos 
que se van a utilizar y se espera un tiempo para que los demás módulos se inicialicen. Una vez se 
ha realizado lo anterior, la variable estado toma el valor de identificar para poder llegar al lugar 
“Identificar”, en donde se verifica los módulos que están activos. Si el módulo comunicación está 
activo hay una transición hacia el lugar “Tiempo Real”, en donde las instrucciones a realizar 
llegan a través de la UART, de lo contrario hay una transiciónhacia el lugar “Reposo” y se 
espera a que el usuario presione algún botón del tipo programacióndel módulo (ver sección 
Botones módulo Maestro). Si estando en “Reposo” el usuario presiona alguno de estos botones, 
19 
 
se llega al lugar “Programación” en donde se almacenan las instrucciones ingresadas por el 
usuario a través de los botones del módulo maestro. Cuando se presione el botón Play hay una 
transición hacia “Ejecución”, en donde se espera un tiempo para darle tiempo al usuario para 
alejarse del prototipo y éste pueda realizar las acciones almacenadas de manera secuencial hasta 
que se realice la última instrucción y pase nuevamente al lugar “Reposo” para esperar nuevas 
instrucciones del usuario. 
4.1.2 ESPECIFICACIONES 
CARACTERÍSITCA VALOR 
Fuente de alimentación 5 V 
Tasa de transmisión entre los módulos conectados 
a través del protocolo de comunicación RS-232 
9600 bps 
Tasa de transmisión entre los módulos conectados 
a través del protocolo de comunicación I2C 
100k bps 
Número máximo de motores conectados 3 
Número máximo de instrucciones 
almacenadas por señal PWM 
15 
Periodo de la señal PWM de los motores 50 us 
Periodo de la señal PWM de los servomotores 20 ms 
Valor mínimo del ciclo útil para controlar un 
Servomotor 
370 us 
Valor máximo del ciclo útil para controlar un 
Servomotor 
2200 µs 
Memoria de programación usada 13978 bytes 
Tabla 2: Especificaciones módulo maestro. 
Este módulo es capaz de controlar motores 
4.1.3 HARDWARE 
El control del módulo maestro fue implementado en elmicrocontrolador de Microchip 
PIC18F6410, el cual posee un oscilador interno con frecuencia hasta 8 Mhz, cuatro contadores 
internos (timer0 hasta timer3), tres módulos CCP, memoria flash de 16k byte y soporta los 
protocolos de comunicación I2C y RS-232. 
 
20 
 
 
Figura 9: Control unidireccional para los motores DC. 
También se usa un control de velocidad unidireccional para controlar la velocidad de los tres 
motores como el que se ve en laFigura 9, en donde la velocidad del motor es proporcional al ciclo 
útil de la señal PWM generada por el microcontrolador. Como se usa el mismo módulo CCP para 
controlar tanto los motores DC como los servomotores, se adicionó una resistencia de pull up en 
paralelo al diodo para que la señal de control del servomotor pueda ser el drain del mosfet con la 
particularidad que la señal en este punto sería la versión negada de la salida del módulo CCP del 
microcontrolador. 
 
A continuación se muestra el esquemático del módulo maestro. 
21 
 
 
Figura 10: Esquemático módulo maestro. 
4.1.4 SOFTWARE 
Dada la complejidad del software del módulo maestro, éste se desarrolló de manera modular para 
realizar pruebas independientes a cada uno de estos, lo cual permitió que la detección de fallas 
fuera más fácil porque éstas son rastreables con este tipo de programación. De acuerdo con lo 
anterior, el software contiene 4 módulos que se comunican entre ellos a través de banderas. A 
continuación se exponen las características de cada uno de estos módulos, así como las funciones 
que estos implementan. 
4.1.4.1 Timer 
Este módulo se encarga del manejo del timer0del microcontrolador a través de la estructura tipo 
Timer_control, ver anexo código módulo maestro, la cual consta de los siguientes elementos: 
 estado:Variable de ocho bits encargada de indicar en qué estado está el módulo timer 
0
VCC
led_potencia3
VCC
C1
100n
C2
100n
C3
100n
0
SERVO 2
HEADER 3
1
2
3
SERVO 1
SERVO 2
SERVO 3
HEADER 3
1
2
3
carro
0
MODULO COMUNICACIONES1
HEADER 4
1234
SERVO 1
HEADER 3
1
2
3
MCLR
SERVO 3
0%
VCC
0
BUS I2C1
HEADER 4
1
2
3
4
25%
50%
75%
R21
10kVCC
R24
10k
100%
U2
PIC18F6410
RA024
RA123
RA2
22
RA321
RA428
RA527
RA6
40
RA739
RB048
RB147
RB246
RB345
RB444
RB543
RB6 PGC42
RB7 PGD37
R
C
0
30
R
C
1 
 
C
C
P2
29
R
C
2 
 
C
C
P1
33
R
C
3 
 
SC
L
34
R
C
4 
 
SD
A
35
R
C
5
36
R
C
6 
 
TX
1
31
R
C
7 
 
R
X1
32
R
D
0 
 
ca
rro
58
R
D
1 
 
 1
0%
55
R
D
2 
 
25
%
54
R
D
3 
 
50
%
53
R
D
4 
 
75
%
52
R
D
5 
 
10
0%
51
R
D
6 
 
at
ra
s
50
R
D
7 
 
pl
ay
49
RE0 2
motor1 RE1 1
motor2 RE2 64
motor3 RE3 63
LED ama RE4 62
LED v er RE5 61
LED rojo RE6 60
RE7 59
serv o1 RF0 18
serv o2 RF1 17
serv o3 RF2
16
RF3 15
RF4 14
RF5 13
RF6
12
RF7 11
C
C
P3
 
 R
G
0
3
R
G
1
4
R
G
2
5
R
G
3
6
R
G
4
8
M
C
LR
 
 R
G
5
7
VS
S
9
VS
S
25
VS
S
41
VS
S
56
AV
SS
20
V
D
D
10
V
D
D
26
V
D
D
38
V
D
D
57
AV
D
D
19
R14
10k
R26
10k
R35
4.7k
R19
10k
R29
10k
R33
4.7k
VCC
atras
potencia1
R15
10kpotencia2
R16
10k
R18
10k
VCC
R28
10k
potencia3
0
R20
10k
0
R32
10k
VCC play
R34
10k
Q1
2N7000
0
SERVO 3
R7
10k
R36
10k
D1
1N4004
SERVO 1
SERVO 3
SERVO 2
R3
10k
R2
100
MOTOR 2
HEADER 4
1
2
3
4
VCC
VCC
VCC
R6
10k
VCC
VCC
0
R4
1k
motor 1
C5
22p
VCC
C4
22p
0
0
motor 2
SCL
led_amarillo
0
CCP3
motor 3
led_v erde
VCC
VCC
VCC
VCC
VCC
VCC
VCC
VCC
R13
330
R17
330
MOTOR 3
HEADER 4
1
2
3
4VCC
0
play
VCC
VCC
J1
ICD2
1
2
3
4
5
6
R5
1k
atras
0
J4
HEADER 20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
PGC
MOTOR 1
HEADER 4
1
2
3
4 VCC
0
100%
PGD
75%
VCC
Q3
2N7000
D3
1N4004
R31
10k
R30
100
0
C9
22p
C8
22p
VCC
SDA
led_potencia2
led_potencia1 R10
330R11
330
50%
Q2
2N7000
0
D2
1N4004
R25
10k
R23
100
0
C7
22p
C6
22p
VCC
FUENTE1
HEADER 4
1
2
3
4
25% led_amarillo
potencia3
motor 1
led_v erde
motor 3
motor 2
potencia1
potencia2
led_potencia10%
VCC
carro
CCP1
U1
LM317/SO
VIN
1
ADJ4
VOUT
2
VOUT 3
VOUT 6
VOUT 7
SERVO 1
CCP2
R8
10k
R22
1k
R9
10k
PGC
PWM2
J6
HEADER 10
1
2
3
4
5
6
7
8
9
10
SERVO 2
R27
1k
PGD
led_potencia3
PWM3
R12
330
Fuente
R1
1k
PWM1
BUS I2C2
HEADER 4
1
2
3
4
led_potencia2
22 
 
 hasta_cuando_cuento: Valor hasta el cual la variable tiempo_transcurrido tiene que 
aumentar para activar la bandera tiempo_superado. 
 tiempo_transcurrido: Variable de 8 bits que indica el tiempo transcurrido desde que se 
ha activado el contador. 
 tiempo_superado:Bandera que indica que la variable tiempo_transcurrido es igual o 
mayor a la variable hasta_cuando_cuento. 
El contador es configurado como un contador de 16 bits que utiliza el reloj interno, 8Mhz, y un 
prescaler de 8, por lo que cada vez que se desborde el módulo habrán pasado alrededor de 0.262 
segundos, ver Ecuación 1, y por lo tanto ese tiempo sería la resolución del contador. 
ó݊݅ܿݑ݈݋ݏܴ݁ = ݕܿݐ × 2#ௗ௘ ௕௜௧௦ ௗ௘௟ ௖௢௡௧௔ௗ௢௥ × ݎ݈݁ܽܿݏ݁ݎ݌
Ecuación 1: Resolución del Timer0. 
Cada vez que éste se desborde aumenta en uno una variable de un byte llamada 
tiempo_transcurrido, por lo tanto el tiempo máximo que se puede medir sería de 67.108 
segundos. 
 
Por medio de la implementación de una máquina de estados se garantizó el control del contador y 
poder satisfacer las necesidades del proyecto. Esta máquina de estados posee los siguientes 
estados: 
 OFF:Se deshabilita el contador y se bajan las banderas de tiempo_superado y 
hasta_cuando_cuento para que no estén activas cuando se desee reinicar el contador. 
 ON: Se habilita el contador y se borra el valor de la variable de ocho 
bitstiempo_transcurrido. Se borra en este estado y no en el estado OFFpor si se necesita 
este valor durante la ejecución del programa. 
 overflow: Se baja la bandera de desbordamiento del contador y se aumenta en 1 
tiempo_transcurrido, cuando esta variable es igual a la variablehasta_cuando_cuento se 
apaga el contador y se le avisa a los demás módulos de este evento por medio de la 
bandera tiempo_superado. 
En la Figura 11 se puede observar la representación de la máquina de estados a través del 
diagrama de flujo del módulo de software. 
23 
 
 
Figura 11: Diagrama de flujo módulo de software timer.24 
 
4.1.4.2 UART 
Este módulo se encarga del manejo de la USART del microcontrolador a través de la estructura 
tipo Uart_control, ver anexo código modulo maestro, la cual consta de los siguientes elementos: 
 estado: Variable que indica el estado en el que está el módulo UART 
 acuse_de_recibo: Indica que se ha recibo un byte a los demás módulos para que estos 
puedan usarla. 
 registro: Variable de 8 bits usada para almacenar el byte recibido en la recepción y el 
dato enviado en la transmisión de datos a través del protocolo de comunicación RS-232. 
Solamente en los lugares “Identificar” y “Tiempo Real” de la Máquina de estados módulo 
Maestro.se usa este módulo. En el lugar “Identificar” se usa para verificar si el módulo 
comunicaciones está conectado con el módulo maestro y en el lugar “Tiempo Real” es usado para 
recibir la instrucción que el usuario ha ingresado a través del teclado de un computador del 
módulo comunicaciones. 
 
La implementación de la máquina de estados usada para controlar el módulo de software se 
puede ver en la Figura 12, y se logró por medio de los siguientes tres estados: 
 uart_recepcion: En este estado se espera a que la bandera de recepción de la UART del 
microcontrolador esté activa para luego guardar el byte en la variable registro, y avisarle 
a los demás módulos por medio de la bandera acuse_de_recibo que ya se ha recibido el 
dato. 
 uart_enviar: Se espera a que la bandera de transmisión este activa para cargar la USART 
con el dato almacenado en la variable registro. 
 uart_reposo: En este estado se deshabilita el módulo. 
El objetivo de la función “Identificación” es lograr que el Módulo Maestro identifique cuáles 
módulos están conectados a él, por lo que se creó una variable de 8 bits en donde los 7 bits más 
significativos fueron asignados a cada módulo y el valor de cada uno indicaría si el módulo está 
conectado o no. 
 
25 
 
 
Figura 12: Diagrama de flujo módulo de software UART. 
4.1.4.3 I2C 
Se va a implementar una comunicación a través del protocolo I2C con un maestro y varios 
esclavos, y el módulo maestro será el maestro, como su nombre lo indica, dentro de la 
comunicación, por lo tanto es el encargado de manejar la comunicación con los demás módulos. 
Para esto se utiliza el periférico interno MSSP (Master Synchronous Serial Port) del 
microcontrolador y una estructura del tipo I2c_control, la cual consta de los siguientes elementos: 
 dato: Es un apuntador a la variable en donde se almacena el dato del bus. 
 direccion: Es la dirección del esclavo con el cual se desea comunicar. 
 numero_bytes: Número de bytes involucrados en la comunicación. 
 estado: Es una variable de 8 bits en donde cada uno de ellos representa alguno de los 
estados en los que puede estar el módulo. 
 exito: Es una variable de 8 bits la cual almacena en cada uno de sus bits el éxito de la 
comunicación con los esclavos en cada uno de los estados del módulo. 
26 
 
En la Figura 13 se muestra la representación de la implementación del módulo y su máquina de 
estados que contiene los siguientes estados: 
 i2c_start: En este estado se espera a que se detecte la secuencia start iniciada por le 
microcontrolador y luego se inicia la comunicación con el esclavo con la dirección 
correspondiente a la variable de 8 bits de la estructura tipo I2c_control y se espera el 9 
pulso de reloj para verificar si hubo un ACK. Este estado solamente es usado en el lugar 
“Identificar” para verificar qué módulos están conectados. 
 i2c_rx:En este estado se desea recibir un dato del módulo sensores para luego ser usado 
por el programa. 
 i2c_lcd:En este estado se envía un mensaje al módulo display para que éste se actualice. 
 i2c_uh1:En este estado se envía un mensaje al módulo uh1 para que éste ejecute la 
instrucción ingresada por el usuario, ya sea por medio del teclado del computador o por 
medio del teclado del mismo módulo maestro. 
 i2c_uh2:En este estado se envía un mensaje al módulo uh2 para que éste ejecute la 
instrucción ingresada por el usuario, ya sea por medio del teclado del computador o por 
medio del teclado del mismo módulo maestro. 
 i2c_uh3:En este estado se envía un mensaje al módulo uh3 para que éste ejecute la 
instrucción ingresada por el usuario, ya sea por medio del teclado del computador o por 
medio del teclado del mismo módulo maestro. 
27 
 
 
Figura 13: Diagrama de flujo módulo de software I2C. 
28 
 
4.1.4.4 Maquina 
Este módulo de software es el encargado de seguir el diagrama de flujo, ver anexo código 
modulo maestro, a través de una máquina de estados y, debido a que es un diseño modular, se 
comunica con los demás módulos por medio de banderas y por esta misma razón se crearon 
algunas variables estáticas. 
 
El módulo posee 5 estados principales como los de la Figura 8: 
 identificacion: Se verifican los módulos que están conectados al módulo maestro a través 
comunicación serial por medio de los protocolos I2C y RS-232. El resultadoes 
almacenado en la variable modulo, en donde cada bit representa un móduloy su estado. 
Dependiendo del resultado del MSB cambia de estado a reposo o a tiempo_real ya que 
este bit representa el módulo “tiempo real”, ver. 
 reposo: En este estado, el control espera a que el usuario presione uno de losbotones del 
tipo programación del módulo maestro. Una vez lo haga, cambia deestado a 
programacion. 
 programacion:En este estado se almacenan tanto las instrucciones ingresadas por 
elusuario como la duración de las mismas en bytes independientes en una estructura tipo 
Instruccion. Para lograr esto se dividió en tres estados adicionales: 
o programacion_inicio: En este estado, el usuario ha presionado un botón del tipo 
programación del módulo maestro y se estáa la espera que el usuario presione un 
botón deltipo axn. 
o programacion_tiempo: En este estado, el usuario está presionando un botóndel 
tipo axn y se está a la espera que el usuariodeje de presionar el botón. Este tiempo 
está siendomedido por un contador con una resolución de 0.262 segundos, ver 
sección correspondiente al módulo Timer. 
o programacion_guardar: Durante este estado se almacena la instrucción y 
laduración de la misma en la estructura respectiva. 
 ejecucion: En este estado se ejecuta la lista de instrucciones que el usuario ha 
almacenadoy se ha dividido en dos estados. 
o ejecución_inicio: Se carga la variable de la estructura tipo 
Timer_control,hasta_cuando_cuento, con la mayor duración de las tres señales 
pwm y se ejecutan las primeras instrucciones almacenadas. 
29 
 
o ejecución_nueva: En este estado se actualiza la instrucción de acuerdo a la lista 
de instrucciones almacenada y al valor de la variable de la estructura tipo 
Timer_control, tiempo_transcurrido. 
 tiempo_real:Durante este estado se revisa la UART por instrucciones enviadas por el 
módulo comunicaciones para que éste las ejecute, u ordene a los demás módulo a 
ejecutarlas de ser necesario. 
Para lograr la identificación de los módulos conectado al Módulo Maestro, éste está conectado 
con los demás módulos y se comunica a través de los protocolos de comunicación I2C y RS-232. 
Todos aquellos que estuvieran conectados al Maestro a través de I2C, se les fue asignada una 
dirección y durante este estado, el Maestro iniciaba la comunicación con cada una de estas 
direcciones, si recibía un ACK en el noveno pulso de reloj, quiere decir que el módulo con 
respectiva dirección estaba conectado y el bit de de la variable se pondría en 1, de lo contrario se 
pondría un 0 indicando que no ha sido conectado el módulo con dicha dirección. 
 
Para lograr la identificación del módulo conectado a través de RS-232, el Maestro envía un 
mensaje a éste y esperaba una respuesta. Si el Maestro no ha recibido alguna respuesta en un 
determinado tiempo, quiere decir que el módulo no está conectado y el bit de la variable que lo 
representa sepondría en 0, de lo contrario, estaría conectado y el bit se pondría en 1. 
 
Para manejar los motores DC de baja potencia se usaron los módulos CCP 
(Compare/Capture/PWM) que vienen integrados en el microcontrolador y se configuraron para 
tener una señal PWM con un periodo de 20k Hz para que estuviera fuera del espectro auditivo. 
Como el módulo maestro también tiene la capacidad de controlar un servomotor, si el usuario 
deseaba manejar un servo motor y se utilizan las fórmulas del fabricante para configurar el 
módulo CCP, sería necesario guardar en el registro PR2 el número 1000 si se usa una frecuencia 
de oscilación interna de 8 Mhz, lo cual es inviable porque es un registro de 8 bits. 
݋݀݋݅ݎ݁ܲ = [ܴܲ2 + 1] × 4 × ܿݏ݋ܶ × 2ܴܯܶ ݈݁ܽܿݏ݁ݎܲ
Ecuación 2: Ecuación usada para calcular el periodo de la señal de salida del CCP. 
Debido a las limitaciones del módulo, no fue posible generar una señal PWM con ciclos útiles 
entre 370us y 2ms con un periodo de 20 ms. Teniendo en cuenta que la precisión y la exactitud 
eran indispensables para el correcto funcionamiento del circuito, se utilizaron los módulos 
30 
 
Timerrestantes del microcontrolador y, a partir de las interrupciones de estos, se pudieronobtener 
las señales PWM deseadas. 
 
Como solamente estaban disponibles 2 timers (los módulos Timer3 y Timer1) y no 4, 1 para el 
periodo de la señal PWM y los otros 3 para la generación del ciclo útil de cada motor, uno de los 
timerses el responsable del periodo de la señal PWM, es decir 20ms, y el otro es el encargado de 
los ciclos útiles. 
 
Se realizó una tabla con los valores desde los cuales el timer encargado del ciclo útil debía 
empezar a contar para obtener el ciclo útil deseado una vez se haya desbordado el timer. Cuando 
el usuario deseaba manejar más de un servo motor, se usa la misma tabla pero de una manera 
diferente. Como un módulo era el responsable de los ciclos útiles de tres señales PWM 
diferentes, y cualquiera de ellas podría tener el ciclo útil menor, era necesario organizar de menor 
a mayor los ciclos útiles. Una vez hecho esto, se carga el timer responsable de los ciclos útiles 
con el valor de la tabla correspondiente al menor ciclo útil. Cuando se desborde, se apaga el ciclo 
útil de la señal que debería apagarse y el timer se carga con la diferencia entre el siguiente ciclo 
útil y el anterior, para que de esta forma sea posible manejar tres señales PWM con 2 timers. 
 
Para crear el listado de instrucciones, se utiliza un vector de estructuras de 15 posiciones en 
donde cada posición almacena la acción que el usuario desea realizar, la duración de ésta y si es 
la última instrucción ingresada por el usuario. Para la medición de la duración de la acción se 
utiliza el modulo interno del microcontroladorTimer0 que es configurado como un contador de 
16 bits que utiliza el reloj interno, 8Mhz, y un prescaler de 8, por lo que cada vez que se desborde 
el módulo habrán pasado 0.262 segundos, ver Ecuación 3, y por lo tanto ese tiempo sería la 
resolución del contador. 
 
ó݊݅ܿݑ݈݋ݏܴ݁ = ݕܿݐ × 2#ௗ௘ ௕௜௧௦ ௗ௘௟ ௖௢௡௧௔ௗ௢௥ × ݎ݈݁ܽܿݏ݁ݎ݌
Ecuación 3: Resolución del Timer0. 
Cada vez que éste se desborde aumenta en uno una variable de un byte llamada 
tiempo_transcurrido, por lo tanto el tiempo máximo que se puede almacenar sin perder la 
información correcta sería de 66 segundos aproximadamente. 
 
31 
 
Se tiene un contador para cada señal pwm de salida llamado contador_motorX, donde X es un 
valor entero entre 1 y 3, el cual es el encargado de llevar la cuenta del número de instrucciones 
que el usuario ha ingresado pero cuando llega a un valor de 15 instrucciones almacenadas, deja 
de incrementar. Cuando se presiona el botón Play para cambiar al estado Transición, el programa 
revisa esta variable y dependiendo del valor de ésta, la última instrucción almacenada se actualiza 
y carga en uno el valor correspondiente de la estructura. Si el usuario ingresa más de quince 
instrucciones, el programa está diseñado para protegerse sobrescribiendo la última instrucción. 
4.2 MÓDULO COMUNICACIÓN 
 
Figura 14: Módulo comunicación. 
4.2.1 DESCRIPCIÓN GENERAL 
Este bloque posee un control hecho por unmicrocontrolador y está encargado de la comunicación 
entre el computador y el módulo maestro por medio de la USART interna, agregándole la 
capacidad al modulo maestro de ejecutar ordenes en tiempo real. La señal com_in es serial y tiene 
las instrucciones que el usuario ha ingresado para su ejecución. Datos es una señal serial que le 
indica a los motores las acciones que deben realizar. 
32 
 
 
Figura 15: Máquina de estados del módulo comunicación. 
En la Figura 15 está la máquina de estados del módulo comunicación. En el lugar “Inicialización” 
se programan los pines de entrada y de salida del microcontrolador, se habilitan los periféricos 
que se van a utilizar y la variable estado toma el valor de identificar para poder llegar al lugar 
“Identificar”. En ese lugar se espera a que el módulo maestro envíe un comando a través de la 
USART para responderle y de esta manera se le está avisando al módulo maestro que el módulo 
comunicación está activo. En el lugar “Recepción” el programa espera a que el usuario ingrese 
una instrucción a través del teclado del computador para que ésta sea enviada al módulo maestro 
y pueda ser ejecutada. 
4.2.2 ESPECIFICACIONES 
CARACTERÍSITCA VALOR 
Fuente de alimentación 5 V 
Tasa de transmisión entre PC-módulo comunicaciones 
Módulo comunicaciones – módulo maestro. 
9600 bps 
Fuente alimentación microcontrolador 3.2 V 
Memoria de programación usada 934 bytes 
Tabla 3: Especificaciones módulo comunicaciones. 
Teniendo en cuenta que existen 10 posiciones o velocidades por cada motor, el usuario deberá 
utilizar el teclado con el fin de ingresar la velocidad deseada. La primera fila con letras del 
teclado, desde la letra “q” hasta la “t”, sirve para seleccionar 5 de las 10 velocidades o posiciones 
del motor controlado por la señal pwm1_out. La segunda fila, desde la letra “a” hasta la “g”,sirve 
para seleccionar 5 de las 10 velocidades o posiciones del motor controlado por la señal 
33 
 
pwm2_out. Por último, la tercera fila, desde la letra “z” hasta la “b”,sirve para seleccionar 5 de 
las 10 velocidades o posiciones del motor controlado por la señal pwm3_out. Dado que los 
teclados pueden ser distintos y para facilitar el uso del prototipo, las otras 5 posiciones o 
velocidades de cada uno de los motores se dan por medio de las mayúsculas de las teclas ya 
mencionadas. 
 
Figura 16: Funcionamiento teclado. 
4.2.3 HARDWARE 
Se uso el microcontrolador PIC18F24J11 como el control de este módulo por el hecho de tener 
dos periféricos USART. Uno de ellos se usa para recibir la información ingresada por el usuario a 
través del teclado del computador, y el otro es usado para comunicarse con el módulo maestro 
para que este ejecute éstas instrucciones. 
 
Dado que el microcontrolador requiere una fuente de alimentación de entre 2 y 3.6 V, se utilizó 
un regulador para garantizar un voltaje en este rango a partir de una fuente de 5 V. 
 
También se utilizó el integrado MAX232 para adecuar los niveles de voltaje y poder comunicarse 
con el computador a partir de una fuente de alimentación de 5 V. 
 
A continuación se muestra el esquemático del módulo comunicaciones. 
 
34 
 
 
Figura 17: Esquemático módulo comunicaciones. 
4.2.4 SOFTWARE 
Dado que la duración de la ejecución de la instrucción depende del tiempo que el usuario 
mantenga presionado el teclado, y durante este tiempo el computador estará enviando varias 
veces el mismo comando, el módulo comunicaciones se encarga de detectar este evento y 
solamente le envía al módulo maestro el primero de la repetición. El módulo también tiene la 
capacidad de detectar cuando el usuario ha dejado de presionar el teclado y le informa al módulo 
maestro que tiene que dejar de realizar la instrucción queestaba ejecutando. Esto se hace con el 
fin de liberar al módulo maestro de realizar operaciones y para disminuir el tamaño de la 
programación en el módulo maestro. En la Figura 19 se puede observar el diagrama de flujo del 
programa del módulo comunicaciones 
 
Como se mencionó anteriormente una de las UART es utilizada para recibir el comando que el 
usuario ha ingresado a través del teclado y esta instrucción es codificada en un byte en donde los 
4 bits menos significativos (LSB) son la acción que se desea realizar y los 4 bits más 
significativos (MSB) corresponden al motor encargado de realizar la acción. Una vez se haya 
U1
PIC18F24J11
11
22
33
44
55
66
77
88
99
1010
1111
1212
1313
1414
28 28
27 27
26 26
25 25
24 24
23 23
22 22
21 21
20 20
19 19
18 18
17 17
16 16
15 15
R1
10k
0
PGD
PGC
R6
1k R7
1k
VCC 5V
PIN 12 max
VCC 5V
PIN 11 max
U4
MAX232
11
22
33
44
55
66
77
88
16 16
15 15
14 14
13 13
12 12
11 11
10 10
9 9
0
C1
10u
J1
HEADER 6
1
2
3
4
5
6
MCLR
VCC 3V
R10
1kR11
1k
PGD
PGC
Rx
0 Tx
J2
db9
1
2
3
4
5
6
7
8
9
0
PIN 11 max
PIN 12 max
VCC 5V
0
Rx PC
Tx PC
Rx PC
Tx PC
C3
1u
1 20
C4
1u
12
C5
1u
1
2
C6
1u1
2
0
VCC 3V
J3
RJ11
1
2
3
4
0
VCC 5V
TX
RX
VCC 5V
VCC 5V
U3
LM317/SO
VIN1
ADJ4
VOUT 2
VOUT 3
VOUT 6
VOUT 7
VCC 5V
R8
470
0
R9
1k
VCC 3V
35 
 
codificado, se utiliza el otro módulo USART se para transmitirle al módulo maestro esta 
información mientras se permite la recepción y la codificación de otro comando ingresado por el 
usuario. 
 
Figura 18: Estructura de un comando codificado por el módulo comunicaciones. 
Hay que resaltar que una vez este módulo sea identificado por el módulo maestro, el sistema 
trabajará en “Tiempo Real” y a diferencia del estado “Ejecución” del módulo maestro, las 
acciones solamente se realizan cuando el usuario oprime el teclado. La plataforma está diseñada 
para que al trabajar en tiempo real con un servomotor, éste mantenga su posición hasta que una 
nueva instrucción sea ingresada a través del teclado. Al contrario del servomotor, con los motores 
de corriente continua ellos dejan de girar una vez el usuario ha dejado de presionar el teclado. 
36 
 
 
Figura 19: Diagrama de flujo módulo comunicaciones. 
37 
 
4.3 MÓDULO PUENTE H 
 
Figura 20: Módulo puente h. 
4.3.1 DESCRIPCIÓN GENERAL 
El módulo puente H es el encargado de la interfaz eléctrica para el control de motores de 
corriente continua a través de la señal p_out. Cualquiera de las señales PWM del módulo maestro 
pueden ser las entradas a éste y a partir de ellas se logra el control de los motores. Este módulo 
utiliza un puente H (LMD18200) diseñado para aplicaciones en donde se desee controlar el 
movimiento a partir de una señal PWM, permitiendo así manejar el motor de corriente continua 
del usuario. A diferencia de los demás módulos, el módulo puente H no contiene un 
microcontrolador y es alimentado a partir de una fuente de 12V externa debido a los 
requerimientos de los componentes. 
4.3.2 ESPECIFICACIONES 
CARACTERÍSITCA VALOR 
Fuente de alimentación 12 V 
Tasa de transmisión entre PC-módulo comunicaciones 
Módulo comunicaciones – módulo maestro. 
9600 bps 
Consumo de corriente de fuente de alimentación 13 mA 
Tabla 4: Especificaciones módulo puente h. 
38 
 
Si el usuario desea utilizar este módulo, debe conectar los jumpers de potencia ubicados en el 
teclado del módulo maestro correspondiente a la señal pwm a la cual se le vaya a conectar el 
módulo.De haberlo hecho correctamente, el LED de potencia de la señal respectiva se encenderá. 
 
Si se conecta un servomotor cuando se conecta el jumper indicando que se desea utilizar el 
módulo puente H,el motor no va a responder como lo desee el usuario debido a la programación 
4.3.3 HARDWARE 
En la Figura 21 se observa el Pin3, Pin4 y Pin5, que son las entradas de control del componente y 
corresponden a la dirección, freno y señal PWM, respectivamente. Para lograr manejar 
bidireccionalmente el motor de corriente continua, el Pin 5, que corresponde a la señal PWM, va 
atado a un uno lógico. Por su parte, el Pin3, señal de dirección del bloque de control del 
componente, va conectado a una señal con ciclo útil variable en la que está codificada tanto la 
información de la dirección como la de la amplitud. 
 
 
Figura 21: Diagrama de bloques funcional del LMD18200.3 
Como se puede ver en laFigura 22, una señal PWM con ciclo útil del 50% no representa control 
alguno sobre el movimiento, debido a que el valor promedio entregado a la carga es 0. Por el 
 
3 Imagen tomada de [17]. 
39 
 
contrario, unas señales PWM con un ciclo útil del 75% y del 25% representan movimiento hacia 
direcciones opuestas pero con la misma magnitud. 
 
 
Figura 22: Señal de control aplicada al pin de direccción del puente h. 
 
En la figura a continuación se muestra el esquemático del módulo puente H. 
 
Figura 23: Esquemático módulo puente H. 
U1
LMD18200
B
O
O
T
1
1
O
U
T1
2
D
IR
3
B
R
A
K
E
4
P
W
M
5
V
C
C
6
G
N
D
7
C
U
R
R
E
N
T
8
T
H
E
R
M
A
L
9
O
U
T2
10
B
O
O
T
2
11
J1
FUENTE
1
2
J2
MOTOR
1
2
VCC
0
OUT1
OUT2
C1
103
C2
103
PWM
R1
1k VCC
VCC
VCC0 0 0
J3
conector
1
2
3
4
VCC 5V
PWM
0
0
OUT1
OUT2
C3
1n
40 
 
4.4 MÓDULO PUENTE H MICROCONTROLADO 
 
Figura 24: Módulo puente h microcontrolado. 
4.4.1 DESCRIPCION GENERAL 
El módulo puente H microcontrolado es el encargado de la interfaz eléctrica para el control de 
motores de corriente continua a través de la señal h_out. A diferencia del módulo descrito 
anteriormente, éste se comunica con el módulo maestro por medio del protocolo I2C y a partir de 
esta comunicación se generan las señales necesarias para lograr el control de los motores. Este 
módulo también posee al menos una entrada análoga para la futura implementación de un control 
de posición o de velocidad. 
 
 
Figura 25: Máquina de estados módulo puente H microncontrolado. 
41 
 
En la Figura 25se muestra la máquina de estados del módulo puente H microcontrolado. En el 
lugar “Inicialización” se programan los pines de entrada y de salida del microcontrolador, se 
habilitan los periféricos que se van a utilizar y la variable empezar toma el valor de 0 para poder 
avanzar al lugar “Reposo”. En ese lugar, se espera hasta que el valor de la variable empezar 
cambie a ON o a OFF, y dependiendo del valor, habilita o deshabilita el periférico encargado de 
generar las señales necesarias para que el puente H maneje el motor según lo haya requerido el 
usuario. 
 
4.4.2 ESPECIFICACIONES 
CARACTERÍSITCA VALOR 
Fuente de alimentación puente H 12 V 
Fuente alimentación microcontrolador 5 V 
Tasa de transmisión con el módulo maestro 100 kbps 
Consumo de corriente del microcontrolador 5 mA 
Consumo de corriente del puente H 45 mA 
Memoria de programación usada 717 bytes 
Tabla 5: Especificaciones módulo puente h microcontrolado. 
4.4.3 HARDWARE 
 
Figura 26: Diagrama de bloques funcional del L6203.4 
 
4 Imagen tomada de [16]. 
42 
 
Se utilizó el puente H L6203 en este módulo para manejar los motores del usuario y, como se 
puede ver en la Figura 26, este puente H posee tres señales de control (Enable, IN1 e IN2). Este 
componente fue controlado a través del microcontrolador PIC18F4221 ya que éste tiene un 
periférico, “Enhanced Capture/Compare/PWM”, con la habilidad de generar estas tres señales y 
lograr el manejo del puente H. 
 
En la figura a continuación se muestra el esquemático del módulo puente H microcontrolado. 
 
Figura 27: Esquemático módulo puente H microcontrolado. 
SCLSDA
U2
L6203
O
U
T2
1
V
S
2
O
U
T1
3
B
O
O
T
1
4
IN
1
5
G
N
D
6
IN
2
7
B
O
O
T
2
8
V
R
E
F
9
S
EN
SE
10
E
N
A
BL
E
11
RD1
0
C1
104
VCC 12V
C2
104
0
C3
104
0
J1
I2C1
2
3
4
SCL
SDA
VCC 5V
0
U3
PIC18F4221
1
1
2
2
33
44
55
66
77
88
9
9
10
10
11
11
12
12
13
13
14
14
15
15
16
16
17
17
18
18
19
19
20
20
21
21
22
22
33
33
32
32
31 31
30 30
29 29
28 28
27 27
26 26
25
25
24
24
23
23
44
44
43
43
42
42
41
41
40
40
39
39
38
38
37
37
36
36
35
35
34
34
VCC 5V
0
0
VCC 5V
PGCPGD
MCLR
J2
ICD2
1
2
3
4
5
MCLR
VCC 5V
PGD
PGC
0
P1B
P1A
P1A P1B
out2
out1
J3
I2C
1
2
3
4
SDA
SCL
0
VCC 5V
RD1
J4
Motor
1
2
J5
Fuente
1
2
VCC 12V
0
out1
out2
J6
Analoga
1
43 
 
4.4.4 SOFTWARE 
Se utilizó el MSSP del microcontrolador para comunicarse con el módulo maestro y se configuró 
para que a través de interrupciones se logre la comunicación entre ellos. Como se puede ver en la 
Figura 28, cuando el microcontrolador tenga que atender la interrupción, el valor de la variable 
empezar cambia, y dependiendo del valor se habilita o deshabilita el ECCP. 
 
 
Figura 28: Diagrama de flujo módulo puente h microcontrolado. 
4.5 MÓDULO DISPLAY 
 
Figura 29: Módulo display. 
44 
 
4.5.1 DESCRIPCIÓN GENERAL 
Es el módulo microcontrolado que por medio de la conexión con el módulo maestro, a través de 
I2C, permite la visualización del estado en el cual el sistema está operando. 
 
En la Figura 30se muestra la máquina de estados del módulo display. En el lugar “Inicialización” 
se programan los pines de entrada y de salida del microcontrolador, se habilitan los periféricos 
que se van a utilizar y la variable estado toma el valor de actualizar para poder avanzar al lugar 
“Actualizar”. Como su nombre lo indica, en este lugar se actualiza el display dependiendo el 
estado en el que se está operando. En el lugar “Tiempo” se espera el tiempo para luego volver a 
actualizar el display. 
 
Figura 30: Máquina de estados módulo display. 
4.5.2 ESPECIFICACIONES 
CARACTERÍSITCA VALOR 
Fuente alimentación 5 V 
Tasa de transmisión con el módulo maestro 100 kbps 
Consumo de corriente 7 mA 
Memoria de programación usada 2128 bytes 
Tabla 6: Especificaciones módulo display. 
45 
 
4.5.3 HARDWARE 
Se utilizó un LCD que contiene un controlador Hitachi HDD44780 para mostrarle al usuario el 
estado en el cual ésta el módulo maestro. A este controlador se le enviaron las instrucciones a 
través del microcontrolador PIC18F2221 que fue escogido para controlar el módulo display. 
 
En la figura a continuación se muestra el esquemático del módulo display. 
 
Figura 31: Esquemático módulo display. 
 
4.5.4 SOFTWARE 
Para controlar el LCD se utiliza la libreria XLCD de Microchip y se crearon funciones para 
actualizar el display y simular una animación en el LCD. En la se muestra la implementación de 
la máquina de estados del módulo display. 
 
U2
PIC18F2221
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
14
28
28
27
27
26
26
25
25
24
24
23
23
22
22
21
21
20
20
19
19
18
18
17
17
16
16
15
15
U1
LCD
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
16
16
R4
10k 0 SCL
SDA0VCC
0
R2
1k
VCC
0
R1
330
VCC
R3
10k
VCC
VCC
J1
I2C
1
2
3
4 SCL
SDA
VCC
0
46 
 
 
Figura 32: Diagrama de flujo del módulo display. 
4.6 MÓDULO SENSOR 
 
Figura 33: Módulo sensor. 
47 
 
4.6.1 DESCRIPCIÓN GENERAL 
Este módulo microcontrolado está conformado por un sensor de contactoon/off que por medio de 
I2C tiene la capacidad de entregar los datos obtenidos al módulo maestro cuando éste los necesite 
para detener la ejecución de las instrucciones. Hay que recalcar que el sensor de contacto no está 
soldado en el circuito impreso debido a la futura implementación de otro sensor. 
 
En la Figura 34 se muestra la máquina de estados del módulo sensores. En el lugar 
“Inicialización” se programan los pines de entrada y de salida del microcontrolador, se habilitan 
los periféricos que se van a utilizar y la variable estado toma el valor de identificar para poder 
avanzar al lugar “Sensado”. En ese lugar, se espera hasta que la dirección enviada a través del bus 
I2C coincida con la dirección del módulo para enviar enviar a través del bus I2C el estado del 
sensor, y dependiendo de este valor, el módulo maestro decide si es necesario detener o seguir 
ejecutando la lista de instruciones ingresada por el usuario. 
 
Figura 34: Máquina de estados módulo sensores. 
4.6.2 ESPECIFICACIONES 
CARACTERÍSITCA VALOR 
Fuente alimentación 5 V 
Tasa de transmisión con el módulo maestro 100 kbps 
Consumo de corriente 7 mA 
Memoria de programación usada 529 bytes 
Tabla 7: Especificaciones módulo sensores. 
48 
 
4.6.3 HARDWARE 
Se utilizó un microswitch como un sensor de contacto tipo on/off. Sin embargo el usuario tiene la 
capacidad de cambiar el sensor y utilizar otro que utilice niveles de voltaje CMOS. 
 
En la figura a continuación se muestra el esquemático del módulo sensores. 
 
Figura 35: Esquemático módulo sensores. 
4.6.4 SOFTWARE 
Por medio de interrupciones de periférico MSSP el módulo sensor se comunica con el módulo 
maestro. Éste es el único módulo que durante la comunicación a través del bus I2C actua como un 
esclavo transmisor. 
4.7 VARIABLES DE ENTRADA 
4.7.1 DATOS A TRAVÉS DE RS-232 
Cuando el usuario desea manejar el módulo en tiempo real, lo hará desde un computador a través 
de un programa que permita la transmisión de datos del puerto serial del computador a una 
velocidad de 9600 bits por segundo. Debido a que la finalidad del proyecto es la realización de un 
prototipo y no incluye el diseño de una aplicación con las características ya mencionadas, se 
U1
PIC18F2221
1
1
2
2
3
3
44
5
5
66
7
7
88
9
9
1010
11
11
1212
13
13
14
14
28
28
27
27
26
26
25 25
24
24
23 23
22
22
21 21
20
20
19 19
18
18
17 17
16
16
15
15
J1
sensor
1
2
3
comun
VCC
R1
10k
R2
10k
VCC
0
0
VCC
comun
SCL SDA
0
J2
I2C
1
2
3
4 SCL
SDA
VCC
0
49 
 
utilizará Terminal para llevar a cabo esta tarea. Dependiendo de la información introducida desde 
el teclado, el módulo maestro se encarga de realizar las acciones pertinentes. 
4.7.2 SENSOR DE CONTACTO 
El módulo de sensores es un sensor de contacto que indica si ha habido contacto o no con algún 
objeto. Si se está trabajando en tiempo real, el módulo maestro ignora esta señal y realiza las 
instrucciones que el usuario le esté enviando a través del computador. Sin embargo si el sistema 
está en modo ejecución, el módulo maestro va a revisar está variable y cuando ésta indique que 
ha habido contacto con algún objeto, el módulo maestro deja de ejecutar instrucciones y pasa 
inmediatamente a modo reposo. 
4.7.3 BOTONES MÓDULO MAESTRO 
Estos botones están ubicados en el módulo maestro y están clasificados en dos grupos: 
 Programación 
 Rutinas preestablecidas 
En el grupo de rutinas preestablecidas hay botones en donde cada uno corresponde a una rutina 
para los motoresysólo se usan una vez el botón de programación ha sido pulsado.En el grupo de 
programación hay un botón para cada motor para indicarle al módulo maestro a cúal de estos se 
le va a crear una lista de instrucciones para ser ejecutada cuando el usuario lo determine.Hay que 
aclarar que estos son ignorados si el sistema está trabajando en modo tiempo real. 
4.7.4 PROGRAMACIÓN PUENTE H 
A través de la señal Potencia [1:3] y de un‘jumper’ para cada motor el usuario tiene la capacidad 
de indicarle al módulo Maestro que se va a conectar un módulo Puente H para que este pueda 
manejar correctamente este módulo. 
4.8 VARIABLES DE SALIDA 
4.8.1 VISUALIZACIÓN GRÁFICA 
A través de un diplay LCD manejado por un microcontrolador, se le indicará a un usuario el 
modo de operación, o estado, en el cual está el sistema. Independientemente si se tiene conectado 
el display LCD, el módulo maestro tendrá 2 tipos deLED’s. El primer tipo consiste en 3 
50 
 
LED’srojos, uno para cada motor, que sirven como una advertencia para indicarle al usuarioque 
ha decidido conectar un módulo Puente H. El segundo tipo consiste en 2 LED’s que le indican al 
usuario el estado del sistema a través de un LED verde, que le indicaal usuario que sistema está 
operando en el modo Tiempo Real o si está ejecutando las instrucciones almacenadas por el 
usuario, y un LED amarillo,el cual es el encargado de avisarle al usuario que el prototipo está en 
modo programación. 
4.8.2 SEÑALES PWM 
El módulo maestro tiene la capacidad manejar tres motores a partir de 3 PWMs que hacen parte 
de los periféricos internos del microcontrolador que controla este módulo. Cada una de éstas es 
una señal cuadrada que es sometida a cambios en el ciclo útil dependiendo de las instrucciones 
del usuario. Como se desea controlar tanto motores DC como servomotores, estas señales van a ir 
conectadas a una etapa de salida que le proporcione la corriente que requieran los motores de 
corriente continua. 
4.8.3 SALIDA PUENTE H Y PUENTE H MICROCONTROLADO 
La salida del puente H y del puente H microcontroladoes una señal que le indica al motor la 
velocidad y la dirección a la cual debe girar, avance o retroceso. La diferencia entre estas dos 
señales es que el puente H está conectado directamente al módulo maestro mientras que el puente 
H microcontrolado se comunica con el módulo maestro a través del bus I2C. 
4.8.4 ENTRADA ANÁLOGA EN EL PUENTE H MICRO 
Es una entrada análoga para la futura implementación de un control de posición o de velocidad. 
 
5 PRUEBAS,RESULTADOS Y ANÁLISIS DE LOS MISMOS 
El proyecto se pensó para que la programación estuviera libre de interrupciones para no tener 
problema con las “zonas críticas” del programa y tener completo control sobre el flujo de 
programación, sin embargo, como los microcontroladores usados en el prototipo tienen 
incorporadola interfaz MSSP, Master Synchronous Serial Port, (la cual implementa todas las 
funciones del Maestro y del Esclavo en un bus I2C por hardware y permite detectar las 
condiciones y los estados de la comunicación a través de interrupciones o de registros 
51 
 
internos).Una vez lograda la configuración del módulo, se procedió a realizar una prueba de 
comunicación con un esclavo con dirección 0x02. 
 
Figura 36: Comunicación bajo el protocolo I2C entre 2 microcontroladores. 
LaFigura 36fue tomada del analizador de estados lógicos LA-5000 a una rata de muestreo de 
500k por segundo, y en ésta se pueden ver los distintos estados de una comunicación de un byte 
bajo el protocolo I2C entre dos microcontroladores. 
5.1 PRUEBA DE ALMACENAMIENTO 
Como el módulo maestro tiene la capacidad de almacenar 15 estructuras de instrucciones, en 
donde cada una de éstas está compuesta por un byte que representa la acción que debe realizar el 
motor y otro byte que representa la duración de la misma, es fundamental que el programa 
almacene los datos correctos. Para la verificación de esto, se utiliza el programador de Microchip 
en modo debugger para confirmar que éste esté almacenando los datos correctos. La prueba 
consistía en ir aumentado en 5 segundos hasta llegar a un minuto la duración de la instrucción 
que iba ir rotando a medida que iba aumentando el tiempo. 
 
Como se explicó en la sección Módulo Maestro, con 8 Mhz como frecuencia de oscilación 
interna, se genera una resolución de de 0,262 segundos por cada desbordamiento del timer0 
aproximadamente. En la Tabla 8 se pueden observar el número de veces que el contador debe 
desbordarse para poder reproducir la instrucción durante el mismo transcurso de tiempo. 
 
 
 
 
 
52 
 
Segundos Valor decimal Valor hexadecimal 
5 19.0729043 13 
10 38.1458085 26 
15 57.2187128 39 
20 76.2916171 4C 
25 95.3645213 5F 
30 114.437426 72 
35 133.51033 85 
40 152.583234 98 
45 171.656138 AB 
50 190.729043 BE 
55 209.801947 D1 
60 228.874851 E4 
Tabla 8: Valores de equivalencia del tiempo en valores numéricos 
La Tabla 9muestra a la izquierda las instrucciones ingresadas y su duración y a la derecha de la 
tabla se encuentran los valores que el microcontrolador almacenó. De las casillas del tiempo 
almacenado se puede observar que aquellas que contienen 0, es debido al rebote del teclado, por 
lo que se implemento un anti-rebotes por medio de software el cual consiste en realizar una un 
delay una vez se haya detectado que el usuario ha dejado de presionar el botón. El resto de las 
casillas confirman que el módulo maestro está almacenando correctamente la duración con un 
error de ± 0.262 segundos. De las acciones almacenadas se puede concluir que el 
microcontrolador está funcionando correctamente porque guarda el valor en hexadecimal de la 
acción ingresada por el usuario. Una vez se implemento el anti rebotes, el control del módulo 
maestro fue capaz de almacenar correctamente tanto las instrucciones como el tiempo de 
duración de éstas. 
 
 
 
 
 
 
 
53 
 
Instrucción Ingresada Almacenada 
Posición Tiempo Acción Tiempo Acción 
0 5 0% 0 8 
1 10 25% 13 8 
2 15 50% 26 9 
3 20 75% 3A A 
4 25 100% 0 A 
5 30 0% 4C B 
6 35 25% 5F C 
7 40 50% 73 8 
8 45 75% 85 9 
9 50 100% 98 A 
10 55 0% 0 A 
11 60 25% AC B 
12 BE C 
13 D1 8 
14 0 8 
Tabla 9: Resultado prueba almacenamiento. 
5.2 PRUEBA PWM’S 
Se diseñó una serie de pruebascuyo fin consistía en la detección de alguna señal PWM con ciclo 
útil erróneo. La primera parte de la prueba consistía en la verificación de la configuración del 
módulo CCP del microcontrolador. Para obtener una señal de 20kHz con una frecuencia de 
oscilación interna de 8Mhz, se cargó el registro PR2 con 99 y que el valor del prescaler sea la 
unidad. Luego, con la ayuda de un osciloscopio se midieron los tiempos de duración de los 
distintos ciclos útiles para verificar la correcta configuración del módulo. 
 
La Tabla 10 muestra los resultados y confirma que el módulo CCP está bien configurado y listo 
para ser usado por los motores de corriente continua. 
 
 
 
 
54 
 
Velocidad CCPRxL % de PR2 Tiempo [s] Medido [µs] 
1 0 0 0 0 
2 40 0.4040404 2.0202E-05 20 
3 45 0.45454545 2.2727E-05 22 
4 52 0.52525253 2.6263E-05 26 
5 60 0.60606061 3.0303E-05 30 
6 68 0.68686869 3.4343E-05 34 
7 75 0.75757576 3.7879E-05 37 
8 83 0.83838384 4.1919E-05 41 
9 91 0.91919192 4.596E-05 45 
10 99 1 0.00005 
 
Tabla 10: Resultado configuración CCP. 
 
Las siguiente parte constaba en la medición de los ciclos útiles de las señales PWM creadas a 
partir de las interrupciones de los periféricos del microcontrolador del módulo maestro. La 
prueba consistió en la medición de los ciclos útiles de las señales cuando éstas eran la menor, la 
intermedia y la de mayor duración. 
 
En la Tabla 11 se puede ver el valor de estas señales en cualquiera de los tres casos mencionados, 
el valor promedio de los tres casos y la diferencia entre el valor esperado y el valor medido con el 
analizador de estados lógicos. De esta tabla se puede concluir que los resultados obtenidos 
concuerdan con los esperados. 
 
Como ya se confirmó que tanto las señales pwm generadas por el CCP como las generadas a 
partir de interrupciones responden como debería, la última parte de la prueba trataba en probar las 
tres señales pwm generadas por el módulo maestro al tiempo con valores aleatorios. La Tabla 12 
resume las cuatro pruebas que se realizaron 
 
 
 
 
55 
 
Prueba 
Acción 
# 1 # 2 # 3 # 4 # 5 # 6 # 7 # 8 PROMEDIO 
[us] 
DATO 
ESPERADO 
[us] 
DELTA 
[us] 
0 372 372 370 2 
1 574 572 573 570 3 
2 772 774 772 772.667 770 2.667 
3 972 974 972 972.667 970 2.667 
4 1172 1176 1172 1173.333 1170 3.333 
8 1374 1374 1372 1373.333 1370 3.333 
9 1572 1576 1572 1573.333 1570 3.333 
10 1774 1776 1772 1774 1770 4 
11 1972 1976 1974 1970 4 
12 2174 2174 2170 4 
Tabla 11: Resultado prueba verificación ciclos útiles. 
 
Prueba 1 
Motor DC de baja potencia 
Motor DC de baja potencia 
Motor

Continuar navegando

Materiales relacionados