Control con Microprocesadores
Nelson Sotomayor 1
CONTROL CON MICROPROCESADORES Nelson Sotomayor O., MSc
Departamento de Automatización y Control Industrial
ESCUELA POLITECNICA NACIONAL Quito - Ecuador Septiembre 2009
OBJETIVOS:
• Diseñar sistemas de control basados en microcontroladores • Construir sistemas de control basados en microcontroladores • Integrar el conocimiento de Hardware y Software para resolver
problemas prácticos
CONTENIDO: Sistemas basados en microcontroladores Microcontrolador en modo extendido Periféricos de entrada/salida Circuitos de barrido de displays, displays LCD Técnica de barrido y decodificación de teclados Interfaz de comunicación serial RS-232, 485 Comunicación Serial Sincrónica, USART, SPI, IIC Tratamiento de señales análogas y digitales Técnicas de conversión A/D y D/A Comparador Analógico Técnicas de Control digital Modulación senoidal de ancho de pulso Controlador PID Circuitos auxiliares, (fuentes, protecciones, tipos de reset´s, alimentación y respaldo de memoria)
Control con Microprocesadores
Nelson Sotomayor 2
1. INTRODUCCIÓN Los microcontroladores constituyen la parte “inteligente” de gran cantidad de
sistemas tales como:
• Control de procesos automáticos, de máquinas, herramientas, aparatos de
maniobra, de posición, de velocidad, etc.
• Sistemas de alarmas de todo tipo: Indicadores y control de nivel, regulación
de caudal, apertura automática de dispositivos, etc.
• Controladores de periféricos como impresoras, módem, teclados, unidades de
disco, etc.
• Equipos de sonido y televisores, donde son tratadas las señales de audio y
video.
• Sistemas industriales para contar elementos, generación de bases de tiempo,
etc.
Como se puede apreciar hay un número infinito de aplicaciones en las que se
puede incluir a un microcontrolador. Prácticamente lo que se pueda imaginar se
puede implementar con un mayor o menor grado de dificultad.
Pero hay que tomar en cuenta que los microcontroladores son dispositivos muy
sensibles por lo que al utilizarlos se debería colocar a la par circuitos auxiliares
que mejoren su desempeño y lo hagan menos sensible a perturbaciones
externas.
2. MICROCONTROLADOR EN MODO EXTENDIDO
Los microcontroladores para comunicarse con el mundo exterior tienen puertos
de entrada/salida a los cuales se puede conectar distintos periféricos, en
algunos casos directamente (PICS; ATMEGA) y en otros usando elementos
adicionales como latch’s o buffer’s que permiten hacer a esos periféricos
compatibles con microprocesador.
Control con Microprocesadores
Nelson Sotomayor 3
LATCH (74LS373)
Figura 2.1 Latch
BUFFER (74LS244)
Figura 2.2 Buffer
MUX (74LS138)
Figura 2.3 Decodificador de 3 a 8
Control con Microprocesadores
Nelson Sotomayor 4
En microcontroladores que tienen bus de datos y bus de direcciones es
necesario el uso de latch, buffer y decodificador de direcciones para colocar
periféricos al mismo.
Ejercicios de aplicación (se realizan en el aula)
En microcontroladores que tienen salidas de corriente alta como los PICS o los
ATMEGA los periféricos pueden ser conectados directamente
Figura 2.4 Periféricos conectados directamente a los puertos
Si se necesita manejar con un microcontrolador un número de periféricos mayor
al número de entradas y salidas que tiene el microcontrolador se tiene dos
caminos a seguir; Cambiar de microcontrolador por uno que tenga un número
mayor de entradas/salidas o utilizar el mismo esquema que se utiliza en
microcontroladores que tienen bus de datos y bus de direcciones.
Ejercicios de aplicación (se realizan en el aula)
Control con Microprocesadores
Nelson Sotomayor 5
2. DISPLAYS DE 7 SEGMENTOS Si lo que se desea es mostrar números una alternativa es utilizar displays de
siete segmentos, donde cada dígito estará formado por el encendido adecuado
de los leds que forman cada segmento o un cristal líquido en el caso de LCD’s.
Esta constituido por siete leds, puede ser ánodo común o cátodo común,
algunos displays un punto a la derecha y/o a la izquierda o dos puntos.
Para usar el display de ánodo común se debe conectar este terminal al voltaje
positivo garantizando la corriente adecuada y controlando el encendido de los
segmentos por un estado lógico bajo en los terminales del cátodo de cada diodo.
En los displays de cátodo común, se pone este terminal a la referencia o tierra y
se controla con niveles lógicos altos a los terminales del ánodo de cada
segmento, asegurándose siempre un flujo de corriente adecuado. Para limitar la
corriente es necesario conectar una resistencia.
Como interfaz para manejar estos displays, existen los decodificadores de BCD
a siete segmentos, con los cuales se utiliza menos líneas de control para el
encendido del display, por lo que con un bus de 8 bits se podría manejar dos
display al mismo tiempo. Si se desea utilizar más de dos displays, se puede
utilizar la técnica de barrido secuencial o usar chips especializados que manejan
y controlan múltiples dígitos.
En este tipo de displays solo se puede mostrar números y ciertos caracteres por
lo que no son muy útiles si se quiere mostrar mucha información. Otra alternativa
para mostrar números es utilizar LCD´s de siete segmentos que son fáciles de
manejar al igual que la de los leds. Tienen la ventaja de consumir menos
corriente, pero la desventaja de tener un menor ángulo de visibilidad por lo que
necesitan de luz externa o adicional para poder ver la información, lo que no
sucede con los leds. Por lo tanto la selección dependerá de la aplicación
particular y las condiciones de trabajo.
Control con Microprocesadores
Nelson Sotomayor 6
Figura 3.1 Circuito para barrido de displays
3.1 Barrido Secuencial
• Se coloca todos los segmentos en paralelo, y una resistencia en serie con
cada segmento común
• Se habilita un cátodo a la vez a una velocidad lo suficientemente alta
como para que el ojo humano no distinga el barrido, pero no tan alta
como para que el display no responda. Normalmente se trabaja entre
300Hz y 2KHz.
Figura 3.2 Señal de barrido
∧
= IIrms δ
Control con Microprocesadores
Nelson Sotomayor 7
Teniendo como dato la Irms, se calcula la corriente pico y con ese valor
utilizando la ley de ohm se calcula el valor de la resistencia que se coloca en
serie con cada segmento.
3.2 DRIVER ICM7211, ICM7212 Son dispositivos de 40 pines que permiten manejar 4 displays de 7 segmentos,
con entrada BCD. Las salidas tienen retención. Tiene dos presentaciones para
ingreso de datos, una que utiliza un multiplexor BCD, y otro con interfaz para
microcontrolador.
• 7211 maneja displays tipo LCD
• 7212 maneja displays tipo LED
En estos dispositivos un oscilador interno enciende uno a uno los dígitos en
secuencia, de manera que cada display estará encendido 1/4 del tiempo. El chip
tiene la ventaja de garantizar la corriente necesaria a cada display.
Para escribir un valor en el display se debe escoger el dígito con el data -
address, escribir un dato en ID0-ID7 y dar un pulso en bajo en WRITE, este
pulso debe ser de por lo menos 200 nanosegundos de ancho y el dato debe
mantenerse por lo menos 100 nseg después de que WRITE regreso a un nivel
alto. Una acción de escritura con el microcontrolador cumple satisfactoriamente
con este requisito [1].
Control con Microprocesadores
Nelson Sotomayor 8
Figura 3.3 Configuración de pines ICM7211/7212, tomado de [1]
4. DISPLAY DE CRISTAL LÍQUIDO Este tipo de display tiene ciertas ventajas al compararlos con los de 7
segmentos, ya que en ellos se puede presentar mayor información ya que en
estos displays, se pueden ver caracteres numéricos, alfabéticos y otros
caracteres. Se presentan en formatos de datos alfanuméricos o completamente
gráficos.
Cada segmento del LCD tiene componentes orgánicos que actúan de acuerdo
con el voltaje aplicado. Los de imagen positiva, los más comunes, opacan el
segmento cuando tiene un voltaje aplicado y son transparentes cuando no existe
el voltaje y los de imagen negativa, se opacan cuando no tiene aplicado el
voltaje y son transparentes cuando existe voltaje en sus terminales
Control con Microprocesadores
Nelson Sotomayor 9
De acuerdo a la aplicación se debe escoger el display más adecuado.
4.1 DISPLAY ALFANUMÉRICO
Es un display LCD que puede mostrar caracteres alfanuméricos formados con
una matriz de puntos. Se los conoce por el número de caracteres por fila y el
número de filas. (ejemplo: LCD 16x2). Este tipo de displays puede trabajar con
un bus de datos de 8 bits o de 4 bits
Figura 4.1 Matriz de puntos, tomado de [2]
Figura 4.2 Mapa de memoria, tomado de [2]
Figura 4.3 Distribución de pínes
Control con Microprocesadores
Nelson Sotomayor 10
Tabla 4.1 Distribución de pines
Pin Símbolo Nivel Función
1 VSS ----- GND
2 VDD ----- Fuente de polarización
3 VEE ----- Contraste
4 RS H / L Señal selección de registro
5 R/W H / L Selección lectura / escritura. R: Lectura, W:
Escritura
6 E H / L Señal de habilitación
7 DB0 H / L Línea bus de datos / Sin conexión para operación a 4 bits
8 DB1 H / L Línea bus de datos / Sin conexión para operación a 4 bits
9 DB2 H / L Línea bus de datos / Sin conexión para operación a 4 bits
10 DB3 H / L Línea bus de datos / Sin conexión para operación a 4 bits
11 DB4 H / L Línea bus de datos
12 DB5 H / L Línea bus de datos
13 DB6 H / L Línea bus de datos
14 DB7 H / L Línea bus de datos
15 Ánodo ----- Terminal ánodo del led
16 Cátodo ----- Terminal cátodo del led
Para ajustar el contraste se utiliza el potenciómetro P de 10 KΩ , por
recomendación del fabricante [3] (Figura 4.3).
Control con Microprocesadores
Nelson Sotomayor 11
Para que la luz de fondo se encienda debe circular una corriente de
aproximadamente 33mA a través del led, por lo que se recomienda usar una
resistencia R de 150 Ω .
Para poder utilizar el LCD, este debe ser inicializado. Normalmente este proceso
se debe hacer como parte de la inicialización del microcontrolador que se utilice.
Tabla 4.2 Secuencia de inicialización, tomado de [2]
*Más información pdf Instrucciones LCD del material didáctico
Control con Microprocesadores
Nelson Sotomayor 12
5. TÉCNICAS DE BARRIDO Y DECODIFICACIÓN DE TECLADOS El teclado más básico puede ser implementado usando pulsadores, la ventaja de
este tipo de teclado radica en su fácil implementación, pero se necesita un pin
del microcontrolador por cada tecla, por lo que se lo debería usar únicamente en
sistemas microproceados que necesiten un número reducido de teclas
Figura 5.1 Conexión de un pulsador al uC
Los pulsadores inevitablemente generan rebotes cuando son utilizados, la
cantidad de estos depende del tamaño del mismo. Por esta razón junto a un
pulsador se debe utilizar un circuito eliminador de rebotes.
5.1 ELIMINACIÓN DE REBOTES
Figura 5.2 Rebotes en un pulsador
Control con Microprocesadores
Nelson Sotomayor 13
Para contrarrestar los efectos indeseables de los rebotes se tiene 2 técnicas, la
eliminación por hardware y la eliminación por software.
Para eliminar rebotes por hardware se añade al circuito un retardo de tiempo
usando una red RC, o una red RC y un inversor con histéresis como se aprecia
en la Figura 5.3.
Figura 5.3 Eliminación de rebotes por hardware
Para eliminar rebotes por software se añade retardos justo en el momento de
detectar el primer flanco de bajada. Al terminar el retardo se lee el estado del
pin.
Si se desea un número mayor de teclas usando pulsadores es necesario utilizar
una técnica de decodificación en hardware.
5.2 DECODIFICACIÓN EN HARDWARE
Para usar un número mayor de pulsadores con pocas líneas del
microcontrolador se utiliza el circuito de la Figura 5.4, como se puede apreciar al
presionar una tecla se tiene en la entrada del microcontrolador (pines A, B, C) un
número correspondiente a la posición de la tecla presionada.
El número de teclas que se puede colocar viene dado por la siguiente expresión:
Control con Microprocesadores
Nelson Sotomayor 14
12 −= nteclasdeNúmero
Donde:
n = número de líneas del microcontrolador
Todas las líneas en alto indicaría el estado de reposo del teclado
Figura 5.4 Teclado de 7 teclas con interrupción
5.3 DECODIFICADOR DE TECLADO (74C922) Existe en el mercado decodificadores que sirven de interfaz entre el teclado y el
microprocesador, un ejemplo es el CI 74C922 para 16 teclas y 74C923 para 20
teclas.
Estos integrados tienen su propio circuito de búsqueda a la frecuencia
determinada por capacitores externos o señal de reloj que se le coloque, tiene
resistencias de pull-up internas y permite identificar la tecla presionada. En este
caso cada tecla no necesita una línea dedicada y se puede detectar 16 teclas
con 4 líneas
Control con Microprocesadores
Nelson Sotomayor 15
74C22 tiene las siguientes características [4]:
• Transforma automáticamente el código de la tecla presionada en un
número de 4 bits (0000 - 1111).
• El chip tiene 4 entradas para X1.X4 y 4 salidas Y1..Y4 que se conectan a
las X1..X4 y Y1..Y4 del teclado matricial y 4 salidas de datos A,B,C,D que
identifican la tecla presionada.
• Tiene su propio circuito de detección, incluyendo resistencias de pull up
para las filas. Pero necesita añadir un capacitor externo a la entrada OSC
para la frecuencia de búsqueda o utilizar un reloj externo con este
propósito.
Se sabe que existe una tecla presionada por que la salida DA (data available) se
pone en alto cuando esto ocurre y puede ser utilizada como señal de
interrupción.
Se debe poner además un capacitor para eliminación de rebotes en KBM,
dimensionado de acuerdo al periodo de rebote, por ejemplo un capacitor de 1
microfaradio, ignora los rebotes de hasta 10 milisegundos
La tecla presionada debe ser almacenada en el momento que DA se pone en
alto.
Control con Microprocesadores
Nelson Sotomayor 16
Figura 5.5 Decodificador hexadecimal de teclado, tomado de [4] 6. COMUNICACIÓN SERIAL Para comunicarse entre dispositivos se utiliza comunicación sincrónica o
asincrónica.
En la transmisión sincrónica los datos se envían uno a continuación del otro
desde la línea TXD a la RXD. Tanto el transmisor como el receptor son
sincronizados con una línea adicional que transmite los pulsos de reloj.
En la transmisión asincrónica no se emplea una señal de reloj, pero para que los
dispositivos se entiendan se encapsulan los datos con un bit de inicio y uno o
dos bits de parada, y se tiene un acuerdo en la velocidad de transferencia de los
datos.
Al transmitir los datos estos deben estar referidos a tierra del TX y RX. Y se los
puede enviar de manera diferencial o balanceada, en cuyo caso las tierras del
TX y RX no están unidas y se envía dos líneas de datos (de manera diferencial)
Control con Microprocesadores
Nelson Sotomayor 17
o de manera desbalanceada cuando las tierras de ambos se unen y se coloca
una sola línea de datos.
Sea cual sea el medio que se utilice balanceado o desbalanceado y el tipo de
comunicación sincrónico o asincrónico, la comunicación general puede ser
realizada de 3 maneras:
• Simplex: Cuando se realiza una comunicación unidireccional
• Duplex (Full duplex): Comunicación bidereccional al mismo tiempo
• Half Duplex: Comunicación bidireccional pero no al mismo tiempo.
(Maestro esclavo).
6.1 INTERFACES DE COMUNICACIÓN 6.1.1 INTERFAZ RS232 [5] Este estándar fue diseñado en los 60s para comunicar un equipo Terminal de
datos o DTE (Data Terminal Equipment, PC) y un equipo de comunicación de
datos o DCE (Data Communication Equipment, modem).
Antes de realizar cualquier comunicación por el puerto RS232 se debe fijar el
protocolo a seguir, es decir especificar número de bits de inicio, paridad, número
de bits de datos, bits de parada, además de la velocidad.
El estándar RS232 trabaja con voltajes de +/- 15V con lógica invertida, es decir
un 1L se representa con un voltaje comprendido entre -3V y -15V, mientras que
un OL esta comprendido entre 3V y 15V. Los voltajes más utilizados son +/- 12V.
El estado de reposo de los drivers es 1L es decir -12V.
El voltaje umbral es +/- 5V.
Control con Microprocesadores
Nelson Sotomayor 18
Dependiendo de la velocidad de comunicación se puede transmitir hasta una
distancia de 50 pies (15 metros).
Tabla 6.1 Especificaciones eléctricas, tomado de [5]
Parámetros Condiciones Min Max Units Driver Output Voltage Open Circuit 25 V Driver Output Voltage Loaded 3k < RL < 7 k ±5 ±15 V Driver Output Resistance Power Off -2V<V°<2V 300 Slew Rate 4 30 V/µS Maximum Load Capacitance 2500 pF Receiver Input Resistance 3 7 k
Receiver Input Threshold: V
Output = Mark -3
Output = Space 3
Figura 6.1 Trama de datos, comunicación RS232
Figura 6.2 Conectores DB25 y DB9
Control con Microprocesadores
Nelson Sotomayor 19
Tabla 6.2 Distribución de pines
Los pines más utilizados son:
• TxD.- Línea por la que se envían los datos
• RxD.- Línea por la que se recibe los datos
• DTR.- Línea por la que el PC indica al modem que esta activo para
comunicarse
• DSR.- Línea por la que el modem indica al PC que esta activo para
establecer comunicación
• RTS.- con esta línea el PC indica al modem que esta preparado para
transmitir datos
• CTS.- tras un RTS, el modem pone en 1L esta línea tan pronto este
preparado para recibir datos
• SG.- señal de tierra
Control con Microprocesadores
Nelson Sotomayor 20
El puerto serial de los microcontroladores trabaja con niveles TTL con lógica
normal es decir 0L = 0V y 1L = 5V, por lo que si se quiere comunicarlo con un
PC es necesario utilizar circuitos que cambien los niveles TTL a 232 y viceversa.
Para ello se utilizan interfaces con tierras unidas o aislados.
Figura 6.3 Max232 circuito básico y distribución de pines, tomado de [6]
Figura 6.4 Interfaz TTL / 232
Control con Microprocesadores
Nelson Sotomayor 21
Figura 6.5 Interfaz aislado TTL / 232
6.1.2 INTERFAZ RS485
Utiliza una línea balanceada con una impedancia característica de 120 ohms,
con lo que se mejora la velocidad y las distancias máximas de comunicación.
• 10 Mbs a 40 pies
• 100 Kbs a 4000 pies (aprox 1200 metros)
En este interfaz se puede colocar varios transmisores y receptores (hasta 32),
en una configuración maestro esclavo (half duplex).
Trabaja con +/- 5V con lógica invertida: 0L = +5V; 1L = -5V
Control con Microprocesadores
Nelson Sotomayor 22
Tabla 6.3 Especificaciones eléctricas, tomado de [5]
Parameter Conditions Min Max Units Driver Output Voltage Open Circuit 1.5
-1.5 6 -6
V V
Driver Output Voltage Loaded RL= 100 1.5-1.5
5 -5
V V
Driver Output Short Circuit Current
Per output to common ±250 mA
Driver Output Rise Time RL = 54 CL = 50 pF 30 % of bit
width Driver Common-Mode Voltage RL = 54 ±3 V Receiver Sensitivity -7V <VCM< 12 V ±200 mV Receiver Common-Mode Voltage Range -7 12 V
Receiver Input Resistance 12 k
Figura 6.6 Conexión RS485, tomado de [10]
Control con Microprocesadores
Nelson Sotomayor 23
Figura 6.7 Interfaz de comunicación serial RS232 a un hilo
6.2 PROTOCO DE COMUNICACIÓN
Figura 6.8 Protocolo de comunicación
Donde: SOH Cabecera, inicio de comunicación ADR Dirección LEN Longitud MENSAJE Comando y parámetros CRC Chequeo de errores 6.3 COMUNICACIÓN SERIAL SINCRÓNICA Se puede realizar de tres maneras:
• USART
• SPI
• IIC
Control con Microprocesadores
Nelson Sotomayor 24
6.3.1 USART El puerto Serial universal sincrónico y asincrónico para recepción y transmisión,
es el dispositivo más flexible para comunicación serial. Sus características son:
• Operación full duplex
• Operación sincrónica o asincrónica
• Operación como maestro o esclavo en operación sincrónica
• Baud rate de alta resolución
6.3.2 SPI (Serial periferical interface) Este interfaz permite comunicar a alta velocidad de manera sincrónica al
microcontrolador con otros dispositivos compatibles. Sus características son:
• Comunicación a 3 hilos, línea de Tx, Rx y señal de reloj
• Comunicación full duplex
• Permite el trabajo como maestro o como esclavo
6.3.3 IIC (Inter integrated circuit) [7] Es este tipo de comunicación serial, el dispositivo que envía datos en el bus se
define como un trasmisor y el dispositivo que recibe datos es el receptor. El
dispositivo que controla el bus se llama maestro, los dispositivos que son
controlados por un maestro son referidos como esclavos. El bus puede ser
controlado por un dispositivo maestro el cual genera la señal de reloj, controla el
acceso al bus y genera las condiciones de inicio y parada. Una típica
configuración usando el protocolo I2C se muestra en la Figura 6.9.
Control con Microprocesadores
Nelson Sotomayor 25
Figura 6.9 Bus I2C, tomado de [8]
La transferencia de datos es posible solo cuando el bus no este ocupado.
Durante la transferencia, la línea de datos debe permanecer estable mientras la
línea de reloj este en alto, los cambios en la línea de datos mientras que la línea
de reloj este en alto son interpretados como condición de inicio o condición de
parada como se puede apreciar en la Figura 6.10.
Figura 6.10 Condiciones de inicio y parada
6.3.3.1 Características generales
Las características más relevantes son:
• Utiliza dos líneas SDA de datos y SCL de reloj
• Cada dispositivo conectado al bus tiene un código de dirección
seleccionable o fijo.
• El bus permite la conexión de varios maestros ya que cuenta con detector
de colisiones
• Los datos y direcciones se transmiten en palabras de 8 bits
• Los bits de datos sobre el bus se transfieren a un velocidad de 100Kbps
Control con Microprocesadores
Nelson Sotomayor 26
• La capacidad máxima en el bus es de 400 pF, por lo que el número de
dispositivos conectados a el no debe superarla
6.3.3.2 Bus no ocupado Se da esta condición cuando las líneas de datos y reloj permanecen en alto.
6.3.3.3 Inicio de la transferencia de datos La condición de inicio está definida cuando existe un cambio en el estado de la
línea de datos, de alto a bajo, mientras el reloj esta en alto.
6.3.3.4 Parada de la transferencia de datos La condición de parada es definida cuando hay un cambio en el estado de la
línea de datos, de bajo a alto, mientras que la línea de reloj esta en alto.
6.3.3.5 Dato válido El estado de la línea de datos representa un dato válido cuando, después de la
condición de inicio, la línea de datos permanece estable durante el periodo en
alto de la señal de reloj. El dato debe ser cambiado durante el periodo en bajo
de la señal de reloj. Hay un pulso de reloj por bit o dato.
Figura 6.11 Validación del bit de datos
Control con Microprocesadores
Nelson Sotomayor 27
Cada dato transferido es inicializado con la condición de inicio y finalizado con la
condición de parada. El número de bytes de datos transferidos entre las
condiciones de inicio y parada no es limitado y está determinado por el
dispositivo maestro.
Dentro de las especificaciones del bus de 2 cables, son definidos, un modo
regular (100 KHz) y un modo rápido (400 KHz),
6.3.3.6 Acknowledge Después de la recepción de cada byte, el dispositivo que recibe debe generar un
acknowledge. El dispositivo maestro debe generar un pulso extra de reloj
asociado con este bit.
6.3.3.7 Formato
Figura 6.12 Formato de transferencia en IIC
Donde:
A reconocimiento
S inicio
P parada
R/W Lectura/escritura
6.3.3.8 Especificaciones eléctricas
El bus IIC permite comunicarse a dispositivos fabricados con diferentes
tecnologías y diferentes voltajes de alimentación ya que tiene salidas a colector
abierto. Para conexiones con niveles de entrada fijos y alimentación de 5V se
definen los siguientes valores:
Control con Microprocesadores
Nelson Sotomayor 28
V1L = 1.5 V (máximo voltaje de entrada a nivel 0L)
V1H = 3 V (mínimo voltaje de entrada a nivel 1L)
Para dispositivos que trabajan con un rango variado de voltajes de alimentación
se definen los siguientes valores:
V1L = 0.3Vdd (máximo voltaje de entrada a nivel 0L)
V1H = 0.7Vdd (mínimo voltaje de entrada a nivel 1L)
La corriente de entrada máxima a 0L es de -10uA mientras que para 1L es de
10uA. Los dispositivos con niveles fijos de entrada pueden alimentarse desde
diferentes fuentes de alimentación. Las resistencias de pull-up deben conectarse
a una fuente de 5V +/- 10%
Figura 6.13 Dispositivos con diferentes niveles de voltaje conectados al bus IIC
7. TRATAMIENTO DIGITAL DE SEÑALES Para adquirir señales del medio e ingresarlas a un sistema microprocesado se
debe utilizar sensores. Un sensor es un elemento que responde variando sus
condiciones físicas ante ciertas condiciones, otros términos utilizados son
detector o transductor.
Un sensor puede responder de muchas maneras, pero para ser adaptados a un
sistema microprocesado, necesita tener una respuesta de tipo eléctrica, como
voltaje, corriente o resistencia, entonces es fácil tener un circuito electrónico de
Control con Microprocesadores
Nelson Sotomayor 29
acoplamiento. Los sensores son utilizados para monitorear y detectar medidas
como temperatura, luz, velocidad, humedad, etc.
La selección adecuada de un sensor dependerá de algunos factores como:
• Que propiedad se desea medir (temperatura)
• Que rango de entradas se necesita medir (20 -120 grados C)
• Que resolución es necesaria (0.5 grados C)
• Que rapidez de respuesta se necesita (no es crítico para este caso)
• Que tipo de salida se necesita (digital, analógica, voltaje, corriente, etc.)
• Que tipo de fuente se dispone para el sensor (12V o 5V).
7.1 SENSORES ON-OFF
En algunas ocasiones se necesita detectar la presencia o ausencia de cierta
propiedad por lo que es suficiente con un sensor que actúe como switch. Se
deberá hacer el circuito de acondicionamiento de acuerdo con el sensor utilizado
garantizando que los niveles de voltaje definan 0L o 1L de forma clara, para
ingresarlos al microcontrolador, aunque lo más recomendable es utilizar un latch
para retener la información mientras el microcontrolador lee la información.
7.2 SENSORES ANALÓGICOS
Los sensores on-off tienen solo dos estados (1L o 0L) esto facilita su
acoplamiento a un circuito digital. Sin embargo muchas veces se necesita llevar
registros continuos de la señal, donde se tendrá por ejemplo variaciones de
voltaje de 0-10 voltios. En este caso la señal analógica debe ser digitalizada, con
este propósito se utiliza conversores análogo / digitales (A/D).
Para realizar una adecuada conversión A/D se debe tomar en cuenta:
• Rango del voltaje de entrada (0V-5V, 0V-10V, +/-5V)
• Resolución (7 bits, 8 bits, 9 bits, etc.)
Control con Microprocesadores
Nelson Sotomayor 30
• Tiempo de conversión (en función del tiempo de muestreo)
Ejemplo: Si en un rango de 0 a 35 grados se desea tener una medida mínima de
0.1 grados, se puede obtener el número de valores diferentes:
#T = 35/0.1 = 350, por lo que la resolución del conversor debería ser de 9 bits
(512 valores)
7.3 TÉCNICAS DE CONVERSIÓN A/D 7.3.1 RAMPA SIMPLE
Figura 7.1 Técnica de conversión A/D rampa simple, diagrama circuital y de tiempo
Para realizar la conversión se siguen los siguientes pasos:
• Cerrar el S, de esta manera el Vc = 0V
• Abrir el S y arrancar un timer interno del uC, es decir arrancar la
conversión, con lo cual Vc sube de manera lineal.
• Esperar a que el Vin y el Vc se igualen, esperando que la salida del
comparador cambie de estado, en cuyo caso se debe detener el timer
obteniéndose Tc.
Utilizando la expresión de corriente del condensador se tiene:
Control con Microprocesadores
Nelson Sotomayor 31
dtdVCic = , ya que ic es constante se tiene:
TcCIVinVc
CtIVc Tct ==⎯→⎯
∆= = )(
7.3.2 RAMPA DOBLE
Figura 7.2 Técnica de conversión A/D rampa doble, diagrama circuital y de tiempo
Si S1 ON:
TcVC
tVC
RVinI ∆
=∆∆
== , de donde: TcVinVCR *** =∆
Si S2 ON:
TdVC
tVC
RVrefI ∆
=∆∆
== , de donde: TdVrefVCR *** =∆
TcTdVrefVin =
Control con Microprocesadores
Nelson Sotomayor 32
7.4 TÉCNICAS DE CONVERSIÓN D/A 7.4.1 SUMADOR INVERSOR
Figura 7.3 Técnica de conversión D/A
Debido a que el voltaje en los puertos no siempre es estable es necesario
intercalar comparadores y luego acondicionar la señal para conseguir el voltaje
adecuado a la salida. Por ejemplo si se desea que el voltaje máximo a la salida
sea 5V en un puerto de 8 bits se tendría: 1L= 5/255 = 20mV
El voltaje de salida viene dado por la siguiente expresión:
-Vo(t) = VPx.0(1)+VPx.1(2)+VPx.3(4)+ ….+VPx.7(128)
En los puertos se debe colocar las resistencias adecuadas para que den la
ganancia mostrada en la expresión anterior.
Tabla 7.1 Valor de resistencias Puerto Resistencia
Px.7 R/128
Px.6 R/64
Px.5 R/32
Px.4 R/16
Px.3 R/8
Px.2 R/4
Px.1 R/2
Px.0 R
Control con Microprocesadores
Nelson Sotomayor 33
7.4.2 PWM En esta técnica se debe generar una señal PWM por uno de los pines del uC y
luego dicha señal filtrarla para obtener el valor DC de la misma. Se utiliza
normalmente un filtro pasa bajos, que puede ser activo o pasivo.
Si se esta trabajando con microcontroladores que tengan internamente los
conversores A/D y D/A es recomendable utilizar esos dispositivos, si no se
dispone de conversor D/A se recomienda utilizar la técnica de conversión D/A
tipo PWM
7.5 COMPARADOR ANALÓGICO, ATMEGA16 [9] El comparador analógico compara los voltajes que ingresan por el pin positivo
AIN0 y el pin negativo AIN1. Cuando el voltaje de la entrada positiva es mayor
que el voltaje de la entrada negativa, la salida del comparador analógico, ACO
se pone 1L. La salida del comparador analógico puede disparar al Timer1 en el
modo de captura, o activar la bandera propia del comparador.
Figura 7.4 Diagrama de bloques del comparador analógico, tomado de [9]
Control con Microprocesadores
Nelson Sotomayor 34
Los registros que se utilizan con el comparador analógico son los siguientes:
7.5.1 Special Function IO Register, SFIOR
Figura 7.5 Registro Special Function IO Register, SFIOR
De este registro el bit de interés es el 3, llamado Analog Comparator Multiplexer
Enable (ACME), cuando este bit esta en 1L y el conversor A/D esta apagado
(ADEN=0 en ADCSRA), el multiplexer del conversor A/D controla el acceso a la
entrada negativa del comparador. Si ACME=0L AIN1 se conecta a la entrada
negativa del comparador.
7.5.2 Analog comparator control and status register, ACSR
Figura 7.6 Analog comparator control and status register, ACSR
• Bit 7 – ACD: Analog Comparator Disable, cuando este bit se pone en
alto, el comparador analógico se apaga.
• Bit 6 – ACBG: Analog Comparator Bandgap Select, cuando este bit
esta en alto el voltaje de referencia interno se conecta a la entrada
positiva, si esta en cero la entrada AIN0 se conecta a la entrada positiva
del comparador
Control con Microprocesadores
Nelson Sotomayor 35
• Bit 5 – ACO: Analog Comparator Output, la salida del comparador
analógico esta sincronizada directamente con este bit. La sincronización
introduce un retardo de 1-2 ciclos de reloj
• Bit 4 – ACI: Analog Comparator Interrupt Flag, este bit es la bandera
del comparador analógico
• Bit 3 – ACIE: Analog Comparator Interrupt Enable, permite habilitar la
interrupción del comparador analógico
• Bit 2 – ACIC: Analog Comparator Input Capture Enable, cuando este
bit se pone en alto se habilita el disparo del timer1 en modo captura a
través del comparador analógico
• Bits 1, 0 – ACIS1, ACIS0: Analog Comparator Interrupt Mode Select, estos bits permiten seleccionar la fuente de interrupción del comparador
analógico.
Tabla 7.1 Modos interrupción del comparador analógico, tomado de [9]
Control con Microprocesadores
Nelson Sotomayor 36
Tabla 7.2 Multiplexer del comparador analógico, Registro ADMUX
7.5.3 Voltaje de referencia interno Este voltaje es utilizado por el detector de bajo voltaje y puede ser utilizado
como referencia para el comparador analógico o el conversor A/D. El voltaje de
2.56V es generado internamente por el Bandgap referente.
8. TÉCNICAS DE CONTROL 8.1 CONTROL ON-OFF Es la regulación más simple y económica, se utiliza en aplicaciones que puedan
admitir una oscilación continua entre dos límites, pero sería necesario que la
evolución del proceso sea lento. Muchos reguladores incorporan esta regulación
básica y en ocasiones se combinan con otro tipo de controladores utilizándolos
cuando el error es grande y cambiando de forma automática a otro controlador
cuando el error se aproxima a cero.
Control con Microprocesadores
Nelson Sotomayor 37
Figura 8.1 Control ON-OFF
Para evitar un número excesivo de conmutaciones se incluye un laso de
histéresis.
La histéresis es como una oposición a experimentar cualquier cambio, cosa que
normalmente sería un efecto perjudicial para ciertas aplicaciones por lo que se
debe escoger adecuadamente las aplicaciones en las cuales este controlador
funcionaria adecuadamente.
Su respuesta es de tipo todo o nada, de forma que se conecta cuando la
variable regulada ha descendido hasta un valor por debajo de la variable de
consigna y solo se desconecta cuando dicha variable supera el límite superior de
la variable de consigna. 8.2 CONTROL DIFUSO Otro tipo de control que esta ganada terreno en lo últimos años es el control por
lógica difusa. Se trata de un control que se basa en la experiencia adquirida para
actuar como la haría una persona, es decir en base a reglas empíricas. Es un
control que se puede utilizar en procesos no lineales que son difíciles de
modelar.
El problema que tiene radica en que el programador no tenga la suficiente
experiencia, es decir no conozca a la perfección como evoluciona la variable a
Control con Microprocesadores
Nelson Sotomayor 38
regular. Para este caso se puede programar el control con lógica difusa con la
ayuda de una red neuronal, que es un sistema complejo de aprendizaje, es
decir, la red neuronal aprendería del sistema lo suficiente como para informar al
control difuso cuales son las reglas a usar en cada momento para obtener un
buen control.
8.3 SISTEMAS SCADA Son la solución más utilizada para resolver problemas de supervisión de una
planta, incluyendo las intervenciones que sean necesarias en caso de
incidencias que deban ser resueltas por los usuarios.
Los programas de supervisión, control y adquisición de datos (SCADA), están
sustituyendo a los paneles antiguos de supervisión por las ventajas que tienen
con respecto a ellos como son el uso de imágenes en la pantalla de un
ordenador que puede diseñar el propio usuario y es de relativamente fácil
reconfiguración. Estos sistemas además pueden realizar otras funciones como:
• Gestión de señales de alarma y ejecución de acciones consecuentes, que
pueden ir desde un simple aviso hasta la modificación del proceso o su
parada automática.
• Control de la planta por manipulación de los parámetros que utilizan los
controladores digitales subordinados que normalmente se encuentran en
una red de comunicación.
• Recopilar información histórica del proceso
• Presentar pantallas de ayuda a los usuarios
• Funciones de seguridad
8.4 SISTEMAS DE CONTROL DISTRIBUIDO (SDC) Son un conjunto de controladores y un computador central enlazados por un
canal de comunicación muy rápido. Estos sistemas de control utilizan un
controlador para cada uno de los lazos de regulación y han sustituido un basto
sistema de comunicaciones por un único canal muy rápido.
Las ventajas de este tipo de sistema son:
Control con Microprocesadores
Nelson Sotomayor 39
• Desarrollo de sistemas a base de módulos (en hardware y software) que
facilitan los cambios, el aislamiento y localización de averías.
• Gran cantidad de controladores seleccionables por menús
• Redundancia de equipos
• Gran capacidad de comunicaciones, gracias a la constante desarrollo de
este campo
• Fácil mantenimiento
8. 5 CONTROLADOR Proporcional, integral, derivativo (PID) Es el algoritmo de control más utilizado a pesar de que existen muchos métodos
que pueden dar un control de mayor calidad en ciertas situaciones donde el PID
no responde la perfección. En la mayoría de los casos el PID da buenos
resultados y tal vez es por esta razón que es muy utilizado a pesar de existir
otros reguladores teóricamente mejores.
Sea cual sea la técnica de control, el error de regulación es la base a partir de la
cual actúa el PID, por lo que mientras más precisa sea la medida mejor se
puede controlar la variable en cuestión. Por esta razón es muy importante,
utilizar los sensores adecuados, la forma de transmitir los datos y tomar en
cuenta las fuentes de interferencia desde la concepción del diseño.
Un regulador PID toma en cuenta el error, la derivada del error y la integral del
error. La acción de control se calcula multiplicando los tres valores por una
constante (Kp, Ki y Kd) y sumando los resultados. Las constantes Kp, Ki y Kd
definen el comportamiento del sistema.
Control con Microprocesadores
Nelson Sotomayor 40
Figura 8.2 Diagrama de bloques control PID
La acción proporcional hace que el regulador responda rápidamente cuando el
error es grande, pero a pesar de esto esta acción no es suficiente ya que:
• Muchas veces la variable aumenta o disminuye si no existe una acción
que la mantenga. Cuando la variable se acerca al punto de consigna la
acción proporcional disminuye y no vence la tendencia de la misma,
haciendo que alcance un reposo antes de lo previsto manteniendo el error
constante.
• Aunque la acción proporcional disminuye rápidamente el error, no se
debe usar esta hasta conseguir un error muy pequeño ya que la variable
regulada se acercaría muy rápido al punto de consigna por lo que se
pasaría de ella.
La acción integral responde al error cuando este se anula, gracias al error que
existió en le tiempo pasado algo así como una memoria histórica que tenga en
cuenta la evolución del error.
La acción derivativa contrarresta la inercia del proceso, frenándolo cuando
evoluciona demasiado rápido y acelerándolo en caso contrario, es decir es la
visión del futuro que se anticipa a lo podría ocurrir.
Control con Microprocesadores
Nelson Sotomayor 41
Frecuentemente, la acción derivativa no es usada. Muchos controladores
industriales sólo tienen la acción PI y que en otros, la acción derivativa se pone
en off. Se puede mostrar que un control PI es adecuado para procesos donde la
dinámica del sistema es esencialmente de primer orden (control de nivel de un
solo tanque, tanques de mezclado, reactores perfectamente agitados, etc) [11].
Un caso típico de la acción derivativa, introducida para mejorar la respuesta, es
cuando la dinámica del proceso está caracterizada por constantes de tiempo que
difieren en magnitud. La acción derivativa puede dar buenos resultados para
aumentar la velocidad de respuesta. El control de temperatura es un caso típico.
La acción derivativa es también beneficiosa cuando se requiere un control más
fino para un sistema de alto orden. La dinámica de alto orden limitaría la
cantidad de ganancia proporcional para un buen control. Con la acción
derivativa, se mejora el amortiguamiento ya que se puede utilizar una ganancia
proporcional más alta y elevar la velocidad de la respuesta transitoria [11].
8.5.1 ALGORITMO DE CONTROL PID DIGITAL
[ ] [ ] [ ] [ ] [ ] TmKdE
TmKdKpTmKiTmE
TmKiTmKdKpTmEUU nnnnn 2
2
1
2
1 242
222
−−− +−−
+++
+=
Donde:
U señal de control
E error = setp - realimentación
Kp constante proporcional
Ki constante integral
Kd constante derivativa
Si se desea utilizar una versión simplificada del algoritmo de control PID se
puede utilizar la siguiente expresión:
Control con Microprocesadores
Nelson Sotomayor 42
U = Kp(error) + Ki(errori) + Kd(errord)
Donde:
errori = sumatorio del error
errord = error anterior – error actual
Con esta expresión hay que tener cuidado ya que la parte integral podría
desbordarse por lo que es recomendable utilizarla cuando el error es pequeño,
es decir partir de un control PD hasta conseguir disminuir el error y luego activar
la acción integral.
8.6 MODULACIÓN SENOIDAL DE ANCHO DE PULSO
Figura 8.3 Modulación senoidal de ancho de pulso
Control con Microprocesadores
Nelson Sotomayor 43
8.7 CARACTERISTICAS DEL CONTROL DIGITAL Como características básicas del control digital se tienen:
• No existe límite de complejidad del algoritmo, cosa que era común en los
sistemas analógicos
• Facilidad de ajuste y cambio. Ya que un cambio en control analógico
implica en el mejor de los casos un cambio de componentes ya que en
ocasiones se necesita cambiar todo el controlador
• Exactitud y estabilidad en el cálculo ya que no existen muchas fuentes de
error.
• Uso del controlador con otros fines (alarmas, almacenamiento de datos,
administración etc.)
• Costo vs número de lasos.
• Tendencia al control distribuido o jerárquico
Figura 8.4 Lazo típico del control digital
Control con Microprocesadores
Nelson Sotomayor 44
9. CIRCUITOS AUXILIARES 9.1 FUENTES La fuente que alimenta a un sistema microprocesado debe tener las
protecciones adecuadas para evitar que la interferencia pueda afectar al
microcontrolador.
Figura 9.1 Diagrama de bloques de una fuente de alimentación
El filtro además de atenuar los efectos indeseables del ruido y la interferencia, al
tener capacitares almacena voltaje, el cual da al microcontrolador un tiempo de
autonomía adicional después que se pierde la energía primaria.
Figura 9.2 Etapa de filtrado
Para regular el voltaje se puede utilizar el LM7805, el cual soporta un voltaje de
entrada mínimo 7V y máximo 25V. En la Figura 9.3 se observa la distribución de
pines del regulador, donde E es la entrada de la fuente de alimentación, T tierra
y S la salida regulada.
El rango de temperatura esta entre 0 °C y 125 °C , para una corriente de salida
de 1A, por lo que es aconsejable colocar un disipador de calor para evitar que
este se queme [12]. El índice de error en la tensión de salida es de +/- 0,25 V,
Control con Microprocesadores
Nelson Sotomayor 45
por lo que el regulador LM7805 podrá tener un voltaje de salida entre 4,75 V y
5,25 V, rango que es aceptable para el funcionamiento de un sistema
microprocesado.
Figura 9.3 Regulador LM7805
Figura 9.4 Fuente regulada
9.2 TIPOS DE RESET El reset tiene la función de llevar al PC a la posición 0H de memoria de
programa. En algunos microcontroladores existen varios eventos que pueden
hacer que el microcontrolador genere un pulso de reset, entre ellas se
encuentran:
• POR, genera un pulso de reset al alimentar al microcontrolador
• BOR, genera un pulso de reset si el voltaje de alimentación es menor al
mínimo voltaje recomendado por el fabricante
• WDT reset, es un contador interno que genera un pulso de reset cuando
se desborda, por lo que debe ser constantemente reiniciado
• PWT, genera un pulso de reset durante un tiempo de aprox. 75ms
después de alimentar al microcontrolador
Control con Microprocesadores
Nelson Sotomayor 46
• Reset manual, genera un pulso de reset cada vez que el usuario del
sistema presione el pulsador
En el Atmega16, para determinar la fuente del reset se tiene el registro MCU
control and status:
Figura 9.6 Registro MCUCSR
• Bit 4 – JTRF: JTAG Reset Flag, este bit se pone en alto cuando se genera un reset por el Puerto JTAG, se recupera cuando se genera un POR o escribiendo 0L en el flag
• Bit 3 – WDRF: Watchdog Reset Flag, este bit se pone en alto cuando se
genera un reset por WDT, se recupera cuando se genera un POR o escribiendo 0L en el flag
• Bit 2 – BORF: Brown-out Reset Flag, este bit se pone en alto cuando se
genera un reset por BOR, se recupera cuando se genera un POR o escribiendo 0L en el flag
• Bit 1 – EXTRF: External Reset Flag, este bit se pone en alto cuando se
genera un reset externo, se recupera cuando se genera un POR o escribiendo 0L en el flag
• Bit 0 – PORF: Power-on Reset Flag, este bit se pone en alto cuando se
genera un reset por POR, se recupera únicamente escribiendo 0L en el flag
Todo sistema microprocesado debe tener POR y WDT reset, los otros tipos de
reset se deben seleccionar de acuerdo a las necesidades de la aplicación.
En microcontroladores que no tienen internamente estos tipos de reset, estos se
deben implementar de manera externa.
Control con Microprocesadores
Nelson Sotomayor 47
Figura 9.5 Circuito de reset manual y POR
El WDT reset se implementa utilizando un circuito monoestable redisparable.
Figura 9.6 Monoestable redisparable
9.3 RESPALDO DE ALIMENTACION Para garantizar la autonomía de un sistema microprocesado en algunas
aplicaciones es necesario que este tenga un sistema de alimentación de
respaldo, la misma que debería ser conectada cuando la alimentación primaria
se ha perdido. Para que el microcontrolador sepa cuando se perdió la
alimentación primaria es necesario monitorear la fuente de alimentación primaria
sea esta de alterna o de continua.
Cuando la fuente de alimentación primaria es de alterna se suele utilizar un
circuito monitor de red que esta constituido por un detector de cruce por cero a
nivel de hardware y un programa en el microcontrolador que verifica que los
Control con Microprocesadores
Nelson Sotomayor 48
pulsos del cruce por cero lleguen a intervalos de tiempo preestablecidos en
función de la red de alimentación.
Si la fuente primaria es de continua se debe revisar el nivel de voltaje de la
misma, lo más común es utilizar un comparador de voltaje, que
permanentemente revise que el voltaje de la fuente no baje de un nivel mínimo.
Si los pulsos del cruce por cero no llegan de acuerdo a lo establecido o el nivel
de voltaje de la fuente es menor que un nivel mínimo, el microcontrolador debe
realizar la conmutación a fuente auxiliar y monitorear dicha fuente. Si el nivel de
voltaje de la fuente auxiliar baja del nivel mínimo, el microcontrolador debe
ejecutar las rutinas necesarias para respaldo de datos en memoria no volátil.
Figura 9.7 Fuente con respaldo y detector de cruce por cero
Figura 9.8 Pulsos del detector de cruce por cero
Control con Microprocesadores
Nelson Sotomayor 49
Figura 9.9 Circuito de conmutación de fuente controlado desde el micro
En la Figura 9.7 se puede ver un circuito de conmutación de fuente en la que el
microcontrolador no interviene, en este caso es útil el monitor de red para que el
microcontrolador sepa que esta trabajando con batería auxiliar.
En la Figura 9.9 se puede ver el circuito de conmutación de fuente, donde el
microcontrolador es el que realiza la conmutación en función de la información
obtenida por el monitor de red.
9.4 RESPALDO DE DATOS
Cuando un sistema microprocesado tiene datos que son importantes para el
desarrollo del mismo, estos deberían ser almacenados en un tipo de memoria no
volátil en el momento en que se pierde la alimentación primaria y auxiliar.
Dentro de las memorias no volátiles se tienen: NVRAM, EEPROM y FLASH a las
cuales un microcontrolador puede acceder con facilidad. Estas memorias
podrían estar incluidas en el mismo empaquetado del microcontrolador o ser
externas a el. Si están incluidas se accede a ellas por medio de subrutinas
especializadas que proporciona el fabricante o utilizando instrucciones de un
lenguaje de alto nivel. Si son externas la mejor alternativa es el uso de
memorias seriales ya sea SPI o IIC.
Control con Microprocesadores
Nelson Sotomayor 50
10. REFERENCIAS BIBLIOGRÁFICAS
[1] Maxim Integreted Products, “Four digit display Decoders/drivers, ICM7211/7212,” USA, 1993
[2] Densitron, “Dot matrix LCD character modules,” Septiembre 1998
[3] Optrex Corporation, “LCD Module Specification DMC20481NY-LY-ABE,” 1999 [4] National Semiconductors, “MM54C922 / MM74C922 16-Key Encoder MM54C923 / MM74C923 20-Key Encoder,” Julio 1993 [5] Dallas semiconductor, “Selecting and Using RS-232, RS-422, and RS-485 Serial Data Standards,” Diciembre 2009, http://pdfserv.maxim-ic.com/en/an/AN723.pdf [6] Maxim Integrated Products, “Data sheet, +5V-Powered, Multichannel RS-232 Drivers/Receivers MAX220 – MAX249,” USA 1997 [7] Microchip Technology Inc., “AN976, Using the MSSP module to interface I2C Serial EEPROMs with PIC16 Devices,” 2005.
[8] Dallas Semiconductor, “DS1307/DS1308 64 x 8 Serial Real Time Clock,” 2001. [9] Atmel corporation, “8-bit Microcontroller with 16K Bytes In-System Programmable Flash, Atmega16,” 2007
[10] David Hiriart, “Manual Técnico, Sistema monitor de nubes diurno,” Universidad Autónoma de México, México DF [11] Améstegui M, “Apuntes de control PID,” Universidad Mayor de San Andrés, La Paz – Bolivia, Enero 2001 [12] Fairchild Semiconductor, “MC78XX/LM78XX/MC78XXA 3-Terminal 1A Positive Voltage Regulator”, 2001, www.fairchildsemi.com