Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Asignatura MICROCONTROLADORES
Unidades de
Cuatrimestre HORAS
aprendizaje
2020 2023
MANUAL DE PRÁCTICAS
CONTENIDO
Página
1. Objetivo de la Asignatura 3
2. Competencia 3
3. Objetivo de la Unidad 3
4. Marco teórico 4
5. Equipo, componentes y software. 9
6. Software. 9
7. CCS C 10
8. PROTEUS 12
9. Componentes Físicos. 13
10. Explicación del Proyecto 30
11. Conclusiones
1. Objetivo de la Asignatura
2. Competencia
Implementar sistemas de medición y control bajo los estándares establecidos, para el correcto
funcionamiento de los procesos industriales.
3. Objetivo de la Unidad
4. Marco teórico
Microchip en particular es una empresa fabricante de dispositivos electrónicos, entre los cuales se
encuentran los microcontroladores PICMicro, estos se pueden adquirir en diferentes familias, algunas
de ellas son: 12F, 16F, 18F, 24F, 30F, y 33F.
La empresa Microchip cuenta con el portal WEB www.microchip.com en donde se puede descargar
información y aplicaciones de software que facilitan los desarrollos con sus microcontroladores.
MANUAL DE PRÁCTICAS
Es posible adquirir compiladores como el PICC, CCS, PIC Basic, entre otros. Este manual de
prácticas se centra en el compilador MikroC PRO, que es un compilador en lenguaje C para
microcontroladores PICMicro para las familias 12F, 16F, y 18F. La paquetería del software de
MikroC PRO tiene una amplia variedad de ayudas y herramientas que facilita la creación de
proyectos y aplicaciones para los microcontroladores PICMicro.
Antes de dar inicio a las prácticas con microcontroladores es necesario que el alumnado (estudiante)
cuente con conocimientos básicos que den sustento y explicación al porqué del desarrollo de las
presentes prácticas.
También es necesario que el alumnado (estudiante) cuente con los conocimientos básicos de las
materias de:
Estructura IF-ELSE
MANUAL DE PRÁCTICAS
La "condición" es una expresión que se evalúa a verdadero o falso, y el código dentro del bloque "if"
se ejecuta solo si la condición es verdadera. Si la condición es falsa, el código dentro del bloque
"else" se ejecutará.
También es posible anidar múltiples estructuras "if-else" dentro de sí mismas para tomar decisiones
más complejas. Por ejemplo:
if (condición1) {
// código que se ejecuta si la condición1 es verdadera
} else if (condición2) {
// código que se ejecuta si la condición1 es falsa y la condición2 es verdadera
} else {
// código que se ejecuta si ambas condiciones son falsas
}
Estructura FOR
La estructura de programación for es una de las estructuras de bucle más comunes en la
programación. Se utiliza para repetir un bloque de código un número específico de veces,
MANUAL DE PRÁCTICAS
en función de una condición de inicio, una condición de fin y un incremento. La sintaxis básica
de la estructura for es la siguiente:
*La inicialización define una variable que se utiliza para controlar el bucle y su valor inicial.
*La condición define una expresión booleana que se evalúa antes de cada iteración del bucle. Si la
condición es verdadera, se ejecuta el bloque de código dentro del bucle; si es falsa, el bucle termina.
*El incremento define cómo cambia la variable de control en cada iteración del bucle.
También podemos anidar bucles for para realizar operaciones más complejas, como recorrer una
matriz bidimensional. En este caso, tendríamos un bucle for para recorrer las filas de la matriz y otro
bucle for anidado para recorrer las columnas.
Estructura WHILE
La estructura de programación while se utiliza para repetir un bloque de código mientras se cumpla
una condición, y su sintaxis básica es la siguiente:
while (condición) {
// código a repetir
}
En esta estructura, la condición se evalúa al comienzo de cada iteración del bucle y, si es verdadera,
se ejecuta el bloque de código. Después de cada iteración, la condición se evalúa nuevamente y, si
sigue siendo verdadera, se ejecuta el bloque de código de nuevo. El bucle se detiene cuando la
condición se evalúa como falsa.
MANUAL DE PRÁCTICAS
También podemos utilizar bucles while para leer datos de entrada del usuario o para procesar una
lista o matriz, entre otras cosas. En general, el bucle while se utiliza cuando no se sabe de
antemano cuántas veces se debe repetir el bucle, ya que la repetición depende de la evaluación de una
condición.
Estructura DO-WHILE
La estructura de programación do-while es similar al bucle while, pero con una diferencia clave: el
bloque de código dentro del bucle se ejecuta al menos una vez, independientemente de si la
condición es verdadera o falsa. Su sintaxis básica es la siguiente:
do {
// código a repetir
} while (condición);
En esta estructura, el bloque de código dentro del bucle se ejecuta primero, y luego se evalúa la
condición. Si la condición es verdadera, el bloque de código se ejecutará nuevamente, y este proceso
se repetirá hasta que la condición sea falsa.
En esta sección se describen los equipos, materiales y softwares que se utilizaran para el desarrollo de
las practicas descritas en la sección 5.
5.1. Software.
Los dos softwares que se utilizarán para la programación, desarrollo y simulación de las prácticas
antes de la implementación físicas de las misma, se describen a continuación:
MANUAL DE PRÁCTICAS
5.1.1 CCS C
CCS C es una herramienta que permite programar un microcontrolador por medio de lenguaje C, a
diferencia del lenguaje máquina o ensamblador (ASM) que se maneja por defecto, este hace los
programas más fáciles de escribir, analizar y comprender. CCS C ha sido desarrollado por PIC CMU,
y cuenta con una gran cantidad de librerías o drivers que permiten optimizar los programas en el
momento de manejar dispositivos externos, tales como pantallas LCD, memorias, conversores, etc.
Los compiladores IDE del CCS C (PCW, PCWH y PCWHD) tienen el exclusivo entorno de
desarrollo integrado C para compilar, analizar y depurar en tiempo real. Otras funciones y
herramientas integradas se pueden ver en el archivo de ayuda. En comparación con un compilador de
C más tradicional, PCB, PCM y PCH tienen algunas limitaciones.
PCB, PCM y PCH son compiladores independientes. PCB es para códigos de operación de 12 bits,
PCM es para códigos de operación de 14 bits y PCH es para microcontroladores PIC® de código de
operación de 16 bits. Estos compiladores están diseñados específicamente para satisfacer las
necesidades únicas del microcontrolador PIC®. Esto permite a los desarrolladores diseñar
rápidamente aplicaciones de software en un lenguaje de alto nivel más legible.
La figura 4.1 muestra el icono del programa CCS C, que es el mismo para los diferentes IDE de
este programa, simplemente cambia el compilador interno para ejecutar la instrucción programada.
La estructura del programa en CCS C se muestra en la figura 4.2, está conformada por:
1. Directivas de Procesado. Estas controlan la conversión del programa a código máquina por parte
del compilador.
MANUAL DE PRÁCTICAS
Para mayor información sobre la directivas, librerías e instrucciones del compilador CCS C consultar
su manual en: https://www.ccsinfo.com/downloads/ccs_c_manual.pdf
5.1.2 PROTEUS
PROTEUS es considerado uno de los mejores y más completos programas para el diseño de circuitos
electrónicos en la actualidad, no solo por su capacidad de simulación y análisis, sino también por el
hecho de poder utilizar una gran cantidad de microcontroladores de diferentes familias.
como software y realizar la simulación en un mismo y único entorno. Para ello se suministra tres
potentes entornos como son el ISIS para el diseño gráfico, VSM (Virtual System Modelling) para la
simulación y el ARES para el diseño de circuitos impresos en tarjetas.
Las siglas VSM significan Virtual System Modelling, que en español podemos traducir como sistema
de modelado virtual, ya que Proteus VSM permite modelar de forma virtual en la computadora
prácticamente cualquier circuito. La figura 4.3 muestra el icono del programa PROTEUS, que en este
manual es la versión 8.9 y en la cual se estará trabajando en la sección 5.
Para mayor información referente al uso de este software se recomienda consultar el libro:
PROTEUS VMS SIMULACIÓN DE CIRCUITOS ELECTRONICOS de Víctor Rossano.
Esta sección se describe los elementos electrónicos que se ocuparan en el desarrollo de las
prácticas, los cuales se describen a continuación:
Jumper.
La figura 4.4 muestra los cables jumper tipo hembra - macho, necesarios para la conexión temporal
de los circuitos digitales, así como los diferentes componentes físicos como: push Boton, leds,
compuertas, display 7 segmentos, etc.
MANUAL DE PRÁCTICAS
LED.
Un led (light-emitting diode, por sus siglas en inglés) es un diodo semiconductor que, cuando recibe
tensión, genera luz. Un diodo, a su vez, es una válvula de dos electrodos que permite el paso de la
corriente eléctrica en un único sentido. Cuando se le aplica tensión a alguna de sus dos terminales, la
recombinación de sus electrones provoca la liberación de energía en forma de fotones, cuyo color
está determinado por la banda de energía que haya sido estimulada. La figura 4.5 muestra los diodos
LED más comúnmente ocupados.
La tensión de los LEDs se puede dividir en dos grupos: con tensión entre 3V y 3.8V como por
ejemplo los azules, los blancos y algunos tipos de leds verdes azulados y entre 1.8V y 2.1V de los
cuales encontramos los leds rojos, los amarillos, los naranjas y muchos tipos de verde. Los LED por
lo general consumen entre 10 a 20 mA independientemente del color del led. Para conocer la
polaridad de los LED basta con observar la patillas, las más corta es la polaridad negativa, mientras
que es la polaridad positiva.
MANUAL DE PRÁCTICAS
Push Boton.
Un Push Boton es un interruptor o dispositivo simple con dos posiciones, encendido y apagado. En el
mercado existen una gran variedad de ello, la figura 4.6 muestra algunos de estos.
En electrónica digital, nos encontramos con dos tipos de configuración, me refiero a la polarización
de una E/S, polarización alta la resistencia (término inglés Pull-up) va conectada a + (5V) o
polarización baja la resistencia (término inglés Pull-down) va conectada a masa – (0V). La figura 4.7
muestra los esquemas antes mencionados.
MANUAL DE PRÁCTICAS
Los pulsadores son dispositivos que tienen un defecto, el cual se llama rebote. Cuando se presiona o
se suelta el pulsador, se produce una fluctuación entre sus contactos internos, esas fluctuaciones son
también leídas y se produce un comportamiento inesperado en el funcionamiento de nuestros
proyectos. El antirrebote viene a solucionar este problema. Es necesario poner un condensador de
10uF en el pulsador, véase figura 4.8.
Resistores.
La figura 4.9 muestra los resistores de 5 bandas, mayor precisión, que se emplearan para la
elaboración de los circuitos físicos. En todos los resistores nos podemos encontrar tres características,
el valor nominal expresado en óhmios (Ω), la tolerancia en % y la potencia
MANUAL DE PRÁCTICAS
en Watts (W). Además, se muestra todos los colores, las bandas y los valores correspondientes para
la codificación a 5 bandas. Como en el otro caso, en la parte alta del diseño podemos ver un ejemplo
concreto.
Figura 4.9 Código de colores para resistores de alta precisión con 5 bandas.
Cabe mencionar que existen resistores variables, o también conocidos como potenciómetros, que
pueden ser útiles para aquellos resistores no son comerciales. Los más comerciales son de 10 kΩ y
100 k Ω.
Display 7 segmentos.
El display de siete segmentos es un dispositivo electrónico que se utiliza para representar visualmente
números y algunos caracteres. Este display es muy popular debido a su gran efectividad y
simplicidad al momento de utilizarlo.
MANUAL DE PRÁCTICAS
Se le conoce como siete segmentos por que cuenta con siete diodos led principales y uno extra para
representar un punto. También cuenta con una carcasa para cubrirlos y diez terminales: dos son de
alimentación (dos de Vcd o dos de Gnd), uno es para visualizar un punto y siete son para representar
cada uno de los números según la combinación que se le ponga, véase la figura 4.10, estos están
representados por una letra del abecedario desde la “A” hasta la letra “G”.
Ánodo común
Se llama así porque todos los leds están unidos en su terminal positiva (ánodo), para
encenderlos tenemos que poner tierra en la terminal de la letra que se desee.
Cátodo común
Este display es el opuesto del ánodo común ya que los leds están unidos en la terminal
negativa (cátodo). Para encender los leds tenemos que poner voltaje en las terminales de las
letras.
LCD 16x2.
Las siglas LCD significan “Liquid Cristal Display” ó pantalla de cristal líquido. Es una
pantalla plana basada en el uso de una sustancia liquida atrapada entre dos placas de
MANUAL DE PRÁCTICAS
vidrio, haciendo pasar por este una corriente eléctrica a una zona específica, para que así esta se
vuelva opaca, y además cuenta (generalmente) con iluminación trasera.
Las pantallas LCD de color, cada pixel individual se divide en tres cédulas o sub pixeles con los
colores RGB (Rojo, Verde y Azul) respectivamente. Y así cada pixel puede controlarse para producir
una gran variedad de colores distintos.
Existen una gran variedad de proyectos en los que se incluye una LCD para interfaz con el usuario, lo
que modifica las necesidades, las cuales es importante atender más que nada por los precios. Y la
importancia de esta en el proyecto. Algunos factores básicos a considerar en una LCD son:
b) Resolución: Esta se expresa con las dimensiones horizontal y vertical. las pantallas HD tienen una
resolución de 1920×1080 por ejemplo. Y esta puede alcanzar con esta resolución una gran
variedad de tamaño, pero si no se ocupa gran a gran detalle esta, estarías desperdiciando calidad
(por no utilizar algo que tienes disponible). En 5hz se maneja, por ejemplo, la LCD gráfica
128×64 (negro sobre fondo verde). Que a pesar de su tamaño la consideramos suficiente para las
aplicaciones estudiantiles, y algunas industriales donde se requiera tener algo claro y legible en
un tamaño práctico.
Iluminación CCFL Esta iluminación básicamente consta poner detrás de la pantalla una matriz de
CCFL, o bien en las orillas o bordes de la pantalla. Sin embargo, es más consumo que el led y
tiene un menor tiempo de vida, por lo que poco a poco se ha ido poniendo en segundo plano.
Iluminación LED Esta iluminación puede presentarse en dos maneras, en un solo color,
(generalmente blanco) o bien en RGB, los blancos suelen ser los más utilizados. Estos al igual
que la iluminación CCFL, pueden estar formando una matriz en la parte de atrás, o bien
pueden colocarse a los extremos del display.
e) Angulo de visión: es el ángulo máximo en el que el usuario puede visualizar lo que está en la
LCD sin que se pierda mucha calidad.
f) Número de caracteres. Hay diversos tamaños de LCD y con ello nos limitamos o nos expandamos
la posibilidad de mostrar en el display cierto número de caracteres, los tamaños estándar que
manejamos son: 16×2, 20×4, 8×2.
La figura 4.11 muestra las diversas panatlla LCD existentes en el mercado para aplicaciones en
electrónica digital.
KEYPAD 4x4.
El Teclado matricial de botones plásticos formado por 4 filas y 4 columnas para un total de 16 teclas
permite agregar una entrada de usuario a tus proyectos. El teclado es de tipo membrana, por lo que
entre sus ventajas se encuentra el poco espacio que requiere para ser instalado. Posee una cubierta
adhesiva y un cable flexible de conexión. Puede ser conectado a cualquier microcontrolador o tarjetas
de desarrollo como Arduino.
El teclado matricial 4x4 está formado por una matriz de pulsadores dispuestos en filas (L1, L2, L3,
L4) y columnas (C1, C2, C3, C4), véase figura 4.12, con la intención de reducir el número de pines
necesarios para su conexión. Las 16 teclas necesitan sólo 8 pines del microcontrolador en lugar de los
16 pines que se requerirían para la conexión de 16 teclas independientes. Para poder leer que tecla
ha sido pulsada se debe de utilizar una técnica de barrido y no solo leer un pin de microcontrolador.
La conexión del teclado matricial 4x4 con Arduino u otra plataforma de microcontroladores es
simple: se necesitan 8 pines digitales en total. Puede trabajar con microcontroladores de 3.3V o 5V
sin problema. Es necesario colocar resistencias pull-up entre los pines de las columnas y VCC o
activar por software las resistencias Pull-up internas. En cuanto a la programación, la lectura de las
teclas se debe realizar mediante un "barrido" de las filas. Si bien es posible realizar este
procedimiento dentro del loop principal del programa, es una
MANUAL DE PRÁCTICAS
mejor práctica realizar el barrido utilizando interrupciones por TIMER y así asegurar la lectura de las
teclas en un intervalo conocido y exacto, además de dejar al loop libre para realizar otras operaciones
Microcontrolador PIC18F4550.
La figura 4.13, muestra al PIC18F4550, el cual tiene 5 puertos en total que son:
Puerto A: Tiene 6 pines en total comenzando desde el Pin # 2 al Pin # 7. Los pines del puerto A
están etiquetados de RA0 a RA5 donde RA0 es la etiqueta del primer pin del puerto A.
Puerto B: Tiene 8 pines en total comenzando desde el pin # 33 al pin # 40. Los pines del puerto B
están etiquetados de RB0 a RB7 donde RB0 es la etiqueta del primer pin del puerto B.
MANUAL DE PRÁCTICAS
Puerto C: Tiene 8 pines en total. Sus pines no están alineados. Los primeros cuatro pines del
puerto C se encuentran en el pin n. ° 15 - pin n. ° 18, mientras que los últimos cuatro se
encuentran en el pin n. ° 23 - pin n. ° 26.
Puerto D: Tiene 8 pines en total. Sus pines tampoco están alineados. Los primeros cuatro pines
del puerto D se encuentran en el pin # 19 - pin # 22, mientras que los últimos cuatro se
encuentran en el pin # 27 - pin # 30.
Puerto E: Tiene 3 pines en total comenzando desde el pin # 8 al pin # 10. Los pines del puerto E
están etiquetados de RE0 a RE2 donde RE0 es la etiqueta del primer pin del puerto E.
Pin # 1: Este Pin se llama MCLR (Master Clear) y necesitamos proporcionar 5V a este pin a
través de una resistencia de 10k-ohmios.
Pin # 11 y # 32: estos pines están etiquetados como Vdd, por lo que también debemos
proporcionarle + 5V.
MANUAL DE PRÁCTICAS
Pin # 12 y # 31: estos pines son Vss, por lo que hemos proporcionado GND (tierra).
Pin # 13 y 14: Estos pines se denominan OSC1 (oscilador 1) y OSC2 (oscilador 2).
Pin # 25, RC6 del Puerto C puede ser usado como entrada/salida digital o como un
Transmisor (TX) para la comunicación serial.
Pin # 26, RC7 del Puerto C puede ser usado como entrada/salida digital o como un
Receptor (RX) para la comunicación serial.
Las entradas analógicas están en los pines #2 al #5 y de #7 al #10.
Protoboard.
La Protoboard, llamada en inglés breadboard, es una placa de pruebas en los que se pueden insertar
elementos electrónicos y cables con los que se arman circuitos sin la necesidad de soldar ninguno de
los componentes. Las Protoboards tienen orificios conectados entre sí por medio de pequeñas laminas
metálicas. Usualmente, estas placas siguen un arreglo en el que los orificios de una misma fila están
conectados entre sí y los orificios en filas diferentes no. Los orificios de las placas normalmente están
tienen una separación de 2.54 milímetros (0.1 pulgadas).
Una Protoboard es un instrumento que permite probar el diseño de un circuito sin la necesidad de
soldar o desoldar componentes. Las conexiones en una Protoboard se hacen con solo insertar los
componentes lo que permite armar y modificar circuitos con mayor velocidad.
Normalmente estas placas son usadas para realizar pruebas experimentales. Si la prueba resulta
satisfactoria el circuito se construye de una forma más permanente para evitar el riesgo de que algún
componente pueda desconectarse. En caso de que la prueba no sea satisfactoria, puede modificarse el
circuito fácilmente.
MANUAL DE PRÁCTICAS
Las Protoboards tienen tres partes: el canal central, las pistas, y los buses. En el canal central, ubicado
en la parte media, se conectan los circuitos integrados para mantener aislados los pines de ambos
lados del circuito integrado. Los buses se encuentran en los lados de la Protoboard, y generalmente se
emplean para conectar la tierra del circuito y sus voltajes de alimentación. La mayoría de las veces
los buses están indicados con franjas color negro o azul para indicar el bus de tierra, y con franjas
color rojo para indicar el bus de voltaje positivo. El resto de los orificios de la Protoboard pertenecen
a las pistas. Como se mencionó anteriormente, las pistas están separadas por filas. Las filas están
indicadas con números y las columnas están indicadas con letras, véase la figura 4.14.
Figura 4.14 Placa Protoboard, existen distintos tamaños y diversos modelos según el fabricante.
La corriente con la que puede operar una Protoboard varía entre 3 y 5 A, y esto depende del
fabricante. Suelen operar a bajas frecuencias, entre 10 – 20 MHz.
Oscilador de cristal.
La frecuencia que el cristal es capaz de crear, se utiliza comúnmente para controlar o tener una
noción del tiempo, con el fin de para proporcionar una señal de reloj estable para circuitos integrados
digitales y para estabilizar las frecuencias de los transmisores y receptores de radio.
Capacitores.
Existe diferentes formas y materiales de tener capacitores en los sistemas eléctricos, por lo tanto,
existen diversas formas o métodos para codificarlos, caso contario con los resistores.
A excepción de los capacitores electrólitos que generalmente superan ampliamente el valor de 1 µF,
el universo de los capacitores usados en electrónica está compuesto por capacitores con valores que
van desde pocos picofarad, capacitores cerámicos o disco que parecen lentejas, hasta los cercanos a
1µF, capacitores de poliester multiestrato.
La figura 4.16 muestra el sistema de codificación para capacitores entre 1pF y 1 µF, donde el valor se
encuentra indicado con un número de tres dígitos seguido por una letra.
MANUAL DE PRÁCTICAS
Figura 4.16 Codificación para los capacitores entre 1 pF y 1 µF, a excepción de los electrolíticos.
Los dos primeros dígitos indican el número inicial mientras que el tercer dígito representa la cantidad
de ceros que es necesario agregar al número inicial para obtener el valor final. El resultado obtenido
es necesario considerarlo en picofarad.
Ahora hablemos de la letra que se encuentra al final del número de tres dígitos. Es
simplemente la tolerancia del componente, es decir, cuanto puede ser diverso el valor real respecto al
valor indicado.
La figura 4.17 podemos observar que cada letra la tolerancia correspondiente, por ejemplo, la "P", es
decir, el componente puede tener una mayor capacidad respecto a la indicada pero no una menor.
Este tipo de tolerancia es usada con los capacitores de "filtro" donde un posible valor mayor de lo
indicado no perjudica mínimamente el funcionamiento del circuito.
Por último, nos falta una información que en cierto caso podría ser útil, que es la tensión máxima que
el capacitor puede soportar sin que se rompa. La codificación numérica que usan algunos fabricantes
consiste en un número seguido por una letra.
MANUAL DE PRÁCTICAS
La tabla completa de los códigos EIA que indican la tensión máxima de trabajo de los
capacitores en tensión continua (VDC) se muestra en la figura 4.18.
Master Prog, véase la figura 4.19, es un programador de microcontroladores USB para todas las
familias de microcontroladores PIC, dsPIC, PIC32 y memorias EEPROM. Es una
MANUAL DE PRÁCTICAS
poderosa herramientas para programar estos dispotitivos, compatible para cualquier computadora y
con soporte para Windows.
Fuentes de Alimentación.
Aquí, no hay mucho que comentar solo es necesario tener una fuente simétrica de voltaje para
alimentación de los amplificadores operacionales, por ejemplo, de ± 12 Vcc @ 1 A.
MANUAL DE PRÁCTICAS
Arduino Uno.
La placa Arduino se conecta a un ordenador a través de un USB, donde se conecta con el entorno de
desarrollo Arduino (IDE). El usuario escribe el código de Arduino en el IDE, y luego lo sube al
microcontrolador que ejecuta el código, interactuando con las entradas y salidas como sensores, motores
y luces.
Sensor Ultrasónico.
Como su nombre lo indica, los sensores ultrasónicos miden la distancia mediante el uso de ondas
ultrasónicas. El cabezal emite una onda ultrasónica y recibe la onda reflejada que retorna desde el objeto.
Los sensores ultrasónicos miden la distancia al objeto contando el tiempo entre la emisión y la recepción .
3
MANUAL DE PRÁCTICAS
Motorreductor.
Puente H.
Un puente en H es un circuito integrado que se utiliza en robótica y en muchas otras aplicaciones para
aplicar una cantidad ajustable de potencia a una carga, normalmente un motor de corriente continua.
3
MANUAL DE PRÁCTICAS
Para este proyecto vamos a utilizar un control PID para poder regular la distancia que hay entre nuestro
carrito y un obstáculo.
Utilizaremos el Chasis del coche, colocaremos dos motorreductores en la parte de debajo de lado de
donde van las llantas para que impulse el carrito y como soporte en la parte de enfrente se le coloco una
rueda, en la parte superior de la estructura están ubicados los demás componentes electrónicos, como el
Sensor Ultrasónico, Un Circuito Integrado, además se utilizó un Arduino Nano como un microcontrolador y
para su alimentación se utilizó una pila de 9 Volts.
En la programación primero se ingresó como valor entero el punto deseado o distancia que quería que mi
carrito mantuviera del obstáculo, después como valor flotante o decimal ingresamos las demás variables
que vamos a utilizar como la constante proporcional derivativa y la integral después debemos calcular el
valor de PID.
Primero tenemos el error después vamos a derivar e integramos el error para finalmente multiplicar estos
valores con sus respectivas constantes se suman y se obtiene el valor del PID el cual utilizaremos para el
P doble M del motor reductor.
Después de cargar el programa en el Arduino y conectar los motores reductores el carrito avanzará y
mantendrá la distancia prevista la cual es de 30 centímetros y ante perturbaciones en este caso
utilizaremos otros obstáculos, lo cual reacciona bastante bien con el control PID.
Si el obstáculo se acerca el carrito se aleja y viceversa si el obstáculo se aleja el carrito lo sigue con el fin
de mantener la misma distancia.
3
MANUAL DE PRÁCTICAS
El objetivo principal de este documento es explicar los pasos seguidos en el diseño de un controlador PID
con los cuales seamos capaces de controlar dentro de unos parámetros predefinidos en un sistema. El
sistema a controlar consiste en un vehículo robot y su entorno será el sistema a controlar con la finalidad
de obtener el funcionamiento deseado en base a unas especificaciones de comportamiento.
Los objetivos que se pretenden con este tipo de recomendaciones son los siguientes:
Diseño del chasis y montaje del vehículo con todos los elementos necesarios para su
funcionamiento
Aplicar los conocimientos Físicos y Técnicos adquiridos a lo largo del cuatrimestre para la
aplicación de un modelo de ajuste a la realidad del carrito
Diseño teórico del controlador PID con el cual podemos cumplir con el objetivo de la distancia de
seguridad
Programación del programa Arduino, con el cual será posible aplicar el controlador PID diseñado
para poder controlar efectivamente el Carrito
3
MANUAL DE PRÁCTICAS
/*
HC-SR04 Ping distance sensor:
VCC to arduino 5v
GND to arduino GND
Echo to Arduino pin 7
Trig to Arduino pin 8
*/
void setup() {
TCCR2B = TCCR2B & 0b11111000 | 0x07; // prescalador para pines 11 y 3 en 1024 freq = 30 hz con 0x07 y
488hz con 0x04 para pulso pwm
Serial.begin (9600);
pinMode(13,OUTPUT);// motor en un sentido
pinMode(12,OUTPUT);// motor en sentido contrario
pinMode(trigPin, OUTPUT);//pines del sensor de ultrasonido
pinMode(echoPin, INPUT);
pinMode(11,OUTPUT);// salida del PWM
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);// datos del sensor de ultrasonido
if (drive > 5)
{
drive = 5;// para que drive no se pase de 5 y asi controlar el plso PWM
}
else if (drive < -5)
{
drive = -5;
}
if (drive < 0)
{
digitalWrite(13,LOW);
digitalWrite(12,HIGH);// el carro se mueve para la izquierda
x=map(drive,-5,0,200,0);// se mapea drive para que el pulso pwm se maneje dentro del rango
analogWrite(11,x);
}
else
{
digitalWrite(13,HIGH);//el carro se mueve para la derecha
digitalWrite(12,LOW);
x=map(drive,0,5,0,200);
analogWrite(11,x);
}
Serial.print(" actual: ");
Serial.print(actual);
Serial.print(" error: ");
Serial.print(error);
Serial.print(" drive: ");
Serial.println(drive);
3
MANUAL DE PRÁCTICAS
actual = distance;
3
MANUAL DE PRÁCTICAS
3
MANUAL DE PRÁCTICAS
3
MANUAL DE PRÁCTICAS
Figura 1.1 Montaje del Chasis, del Sensor Ultrasónico y de los Motores
3
MANUAL DE PRÁCTICAS
3
MANUAL DE PRÁCTICAS
CONCLUSIONES.
En este proyecto pusimos en práctica nuestros conocimientos adquiridos durante el cuatrimestre, lo cual
llevamos a cabo un Control de Velocidad de Carrito por PID, mediante el cual hemos podido medir los
distintos parámetros como velocidad, posición, tensión, etc. Por lo que se han realizado mejoras en el
tiempo de respuesta de los motores gracias a la implementación de un controlador PID.
También tuvimos complicaciones a lo largo del proyecto a la hora de programar y hacer que funcionase
tanto los motores como el resto de los sensores según nuestra propuesta de diseño, pero básicamente se
aprende con el clásico método de prueba/error.
Gracias a este proyecto hemos visto que somos capaces de resolver cada problema, informándonos y
recabando la información suficiente para detectar en donde está el error y pensar de una forma muy
estructurada y lógica de las posibles herramientas y opciones que tenemos para dar solución.
Material Bibliográfico.
García Bermejo, E. (2008). Compilador C CCS y Simulador PROTEUS para microcontroladores PIC
(1a ed.). Barcelona, España: Marcombo.
Proyectos robóticos/control-de-motores/control-PID-mejorado
Carro-Controlador-de-Distancia-Autónomo-PID
Carro-controlador-de-distancia-autonomo-pid-pdf-free.html
Universidad-tecnologica-del-peru/personalidad/312611293-Carro-Controlador-de-Distancia-Autonomo-PID/
20494048
3
MANUAL DE PRÁCTICAS