Sei sulla pagina 1di 199

Introduccin a Flowcode

Esta seccin est diseada para permitir a aquellos que son nuevos en Flowcode
a entender cmo Flowcode se puede utilizar para desarrollar programas. Esta
seccin ha sido diseada para permitirle ingresar a los programas paso a paso
para aprender cmo funciona Flowcode. Le aconsejamos que trabaje en cada
seccin ya que esto le familiarizar con todas las opciones y caractersticas de
Flowcode, as como le presentar una gama de tcnicas de programacin.

Mientras est trabajando en esta seccin, consulte tambin el archivo de ayuda de


Flowcode.

Esta seccin le presentar a cada uno de los iconos principales de Flowcode a su


vez. No sientas que necesitas trabajar con esto rigurosamente: usa los
laboratorios como una gua y pasa por cada seccin como necesites.

Concretamente, en esta seccin aprender:

El uso de cada uno de los iconos Flowcode (excepto el icono de cdigo C)


y cmo se utiliza cada icono.
Funcionamiento de los componentes fundamentales en el funcionamiento
de Flowcode: LED, LCD, ADC, Switch, Pantalla de 7 segmentos, pantalla
de 7 segmentos, teclado, EEPROM

La importancia de Alt + Tab

Podras imprimir cada pgina de este curso y seguir las instrucciones impresas
mientras trabajas en el curso.

O puede usar el acceso directo de las ventanas Alt + Tab : Mantenga presionada
la tecla Alt , mientras que la tecla Alt est abajo, presione y suelte
la tecla Tab . Ver una ventana que muestra todas las aplicaciones de Windows
abiertas. Si vuelve a pulsar la tecla Tab mientras se mantiene pulsada
la tecla Alt , podr desplazarse por las aplicaciones abiertas. Puede utilizar este
atajo para cambiar fcilmente entre este curso en pantalla y Flowcode y mejorar
la productividad.
Funciones bsicas de cdigo de flujo

Tpicos cubiertos

Funciones bsicas de cdigo


de flujo
1. Qu es Flowcode?
2. Descripcin de
Flowcode
3. Iniciar un nuevo
diagrama de flujo
4. Apertura de un
diagrama de flujo
existente
5. Cmo guardar un
diagrama de flujo
6. Ahorro de imgenes de
flujo de flujo
7. Ampliacin de la vista
8. Impresin de
diagramas de flujo
9. Opciones de
visualizacin

Qu es Flowcode?

Flowcode le permite crear aplicaciones de microcontroladores simples


arrastrando y soltando iconos en un diagrama de flujo para crear programas
simples. Estos programas pueden controlar dispositivos externos conectados al
microcontrolador, tales como LED, pantallas LCD, etc.

Una vez que el diagrama de flujo ha sido diseado, su comportamiento puede ser
simulado en Flowcode antes de que el diagrama de flujo se compila, ensambla y
transfiere a un Chip.
Para lograr esto con Flowcode, realice los siguientes pasos:

1. Cree un nuevo diagrama de flujo, especificando el microcontrolador que


desea orientar.
2. Arrastre y suelte los iconos de la barra de herramientas en el diagrama de
flujo para programar la aplicacin.
3. Agregue dispositivos externos haciendo clic en los botones de la barra de
herramientas de componentes, editando sus propiedades, cmo estn
conectados al microcontrolador y macros de llamada dentro del
dispositivo.
4. Ejecute la simulacin para comprobar que la aplicacin se comporta como
se esperaba.
5. Transfiera la aplicacin al microcontrolador compilando el diagrama de
flujo a C, luego al cdigo de ensamblador y finalmente al cdigo de
objeto.

Descripcin de Flowcode

El entorno de Flowcode consta de un rea de trabajo principal en la que se


muestran las ventanas de diagrama de flujo, varias barras de herramientas que
permiten agregar iconos y componentes a la aplicacin de diagrama de flujo, los
paneles de Sistema y Dashboard que muestran los componentes adjuntos y
tambin Panel de exploracin que muestra el proyecto Variables, macros y
macros de componentes, panel de lista de iconos que muestra marcadores, puntos
de interrupcin y resultados de bsqueda, ventanas que permiten ver el estado del
microcontrolador y mostrar variables y macro llamadas cuando se simula el
diagrama de flujo. Aqu puede ver una pantalla de un proyecto de automocin:
Hay tres barras de herramientas que utilizar:

Barra de herramientas de iconos

Arrastre y suelte los iconos de esta barra de herramientas en la ventana del


diagrama de flujo principal para crear su aplicacin de diagrama de
flujo. Normalmente esto se coloca en el lado izquierdo de la pantalla, pero la
barra de herramientas se ve as cuando est desacoplada:

Barra de herramientas de componentes

Esta barra de herramientas muestra los componentes externos que se pueden


conectar a un microcontrolador y comandos bsicos de dibujo de panel. Los
componentes se agrupan en diferentes categoras que aparecen como mens
desplegables. Haga clic en un componente y se agregar al microcontrolador y
aparecer en el panel. A continuacin, se pueden editar las conexiones de pin y
las propiedades del componente. Normalmente, esta barra de herramientas se
coloca en la parte superior izquierda de la pantalla junto a la barra de
herramientas de iconos, pero la barra de herramientas se ve as cuando est
desacoplada:
Men y barra de herramientas de simulacin

Los botones de esta barra de herramientas le permiten abrir y guardar archivos,


deshacer y rehacer acciones, imprimir su diagrama de flujo y tambin le permiten
controlar las funciones de simulacin y descarga. Las funciones de esta barra de
herramientas tambin estn disponibles en el men estndar de Windows en la
parte superior de la pantalla:

Tablero de instrumentos y panel de sistema

Todos los componentes que conecte al microcontrolador se mostrarn en


cualquiera de estos paneles donde podr interactuar con ellos en Simulacin. Los
paneles tambin proporcionan algunas caractersticas bsicas de dibujo como
lneas, formas e imgenes, etc., que pueden usarse para construir paneles de
aspecto profesional avanzado.

El panel Dashboard es principalmente para uso 2D, aunque ofrece una vista 3D
para afectar, este panel se utiliza generalmente como una interfaz donde los
botones y los interruptores se mantienen para acomodar los componentes
interactivos ya veces para los componentes bsicos.

El panel del sistema es el panel 3D principal que ofrece muchas ms


caractersticas y opciones, con el control completo de la cmara y editible
entornos de fondo con vistas predeterminadas "Sky Dome" y "World Dome", as
como la opcin de utilizar una imagen como fondo, tambin ofrece 'Shadow
mode' que ofrece opciones de sombra 'Tabletop' y 'Object'.
Panel Propiedades

Todos los elementos del panel, incluido el propio panel, tienen propiedades
asociadas que se muestran en el panel de propiedades cuando se selecciona un
elemento o un panel. Algunos de ellos son de slo lectura, mientras que otros
pueden ser manipulados. Algunas propiedades como tamao / posicin cambian
a medida que interacta con el elemento. Otros le permiten acceder a funciones
ms avanzadas del elemento seleccionado. El panel de propiedades suele
acoplarse al lado derecho de la pantalla, pero se ve as cuando est desacoplado:
Explorador de proyectos

Los botones en la parte superior de este panel le permiten seleccionar Puertos,


Globales, Macros y Componentes. La vista de puertos muestra los nombres de las
variables para los puertos del Microcontrolador. La vista Globales muestra las
constantes y variables que se han definido para su uso en el proyecto actual. La
vista Macros muestra cualquier macros creadas por el usuario en el programa
actual y permite al usuario arrastrarlas al diagrama de flujo actual. La vista de
componentes es muy similar a la vista de macros, excepto los componentes de
lista que estn presentes en el panel.
Lista de iconos

Todos los marcadores, puntos de interrupcin e iconos deshabilitados, as como


los resultados de bsqueda y error aparecen como una lista en este panel.

Acceso web

Este panel muestra enlaces a artculos introductorios, soporte y otros productos


Matrix Multimedia.
Acoplamiento y desacoplamiento de las barras de herramientas y paneles

Las barras de herramientas y los paneles se pueden desacoplar de la posicin


predeterminada y dejarse flotando libremente o pueden acoplarse a la parte
superior, inferior oa los lados de la ventana Flowcode. He aqu un ejemplo de
barras de herramientas flotantes:
Para desacoplar una barra de herramientas, simplemente haga clic y mantenga
presionada la barra de herramientas "barras de agarre" (la parte superior de la
barra de herramientas) si est acoplada, o la barra de ttulo si se desacopla y
arrastre la barra de herramientas a su nueva posicin.

Ventana de fichas

El chip actual, o microcontrolador, se muestra en esta ventana. Cuando se simula


el diagrama de flujo, el estado de los puertos de E / S del microcontrolador se
muestran en el microcontrolador como rojo y azul para las salidas altas y bajas
respectivamente, como se puede ver aqu:
Ventana del Diagrama de flujo

Los iconos que componen el diagrama de flujo se muestran en este espacio


principal. Adems, los iconos que componen una macro se muestran en su propia
pestaa separada que ocupa / reemplaza este espacio. La pestaa de diagrama de
flujo principal siempre est visible y las pestaas de macros pueden mostrarse y
ocultarse segn sea necesario.
Ventana de depuracin de la simulacin

Al simular un diagrama de flujo, los valores de las variables utilizadas se pueden


ver en esta ventana. Los valores de las variables se actualizan para cada comando
simulado, pero la ventana no se actualiza cuando la simulacin se ejecuta a toda
velocidad ('Lo ms rpido posible'). Si simula un diagrama de flujo y presiona el
botn de pausa, entonces puede hacer clic en variables en esta ventana para
cambiar su valor. Esto le permite probar su diagrama de flujo bajo condiciones
conocidas. Esta ventana tambin muestra la macro actual que se simula en la
seccin 'Llamadas de macro'. Esto es til cuando una macro llama a otra durante
el proceso de simulacin.
Control de ventanas, barras de herramientas y paneles

Si selecciona el men 'Ver', ver una lista de opciones y casillas de verificacin


que se pueden utilizar para activar y desactivar ventanas, barras de herramientas
y paneles.

Iniciar un nuevo diagrama de flujo

1. Cree un nuevo diagrama de flujo seleccionando Archivo> Nuevo o haga


clic en el botn 'Nuevo' en la 'Barra de herramientas principal'.
2. Seleccione el microcontrolador que desee orientar de la lista presentada.
3. Flowcode mostrar el microcontrolador en la vista 'Chip' (Ver> Chip) y
crear un diagrama de flujo vaco para que pueda comenzar a agregar sus
iconos.

Apertura de un diagrama de flujo


existente
Hay dos formas de abrir un diagrama de flujo Flowcode existente.

1. Seleccione la opcin Abrir en el men Archivo (Archivo> Abrir) o haga


clic en el botn 'Abrir' de la 'Barra de herramientas principal'. Esto le
permitir buscar el archivo que desea.
2. Seleccione el archivo de la lista de archivos utilizados ms recientemente
en el men Archivo.
3. Haga doble clic en un archivo Flowcode (.fcf) en el Explorador de
Windows para iniciar Flowcode y abra el archivo.

Cmo guardar un diagrama de flujo

Para guardar un diagrama de flujo,

1. Seleccione las opciones Guardar o Guardar como en el men Archivo


(Archivo> Guardar / Guardar como ...).
2. Los diagramas de flujo deben guardarse antes de que puedan ser
compilados en C o transferidos a un microcontrolador.

Ahorro de imgenes de flujo de flujo

Para guardar una imagen del diagrama de flujo activo, seleccione 'Guardar el
Diagrama de Flujo actual ...' en el submen 'Guardar Imagen' en el men
'Archivo' (Archivo> Guardar Imagen> Guardar el Diagrama de Flujo actual ...).

Esta funcin guarda una imagen del programa en cualquier archivo en el formato
elegido de la lista:

Mapa de bits (* .bmp)


JPEG (* .jpg; *. Jpeg)
GIF (* .gif)
PNG (* .png)
Tenga en cuenta que la tasa de zoom actual se utiliza para determinar la
resolucin de la imagen guardada. Si necesita imgenes de alta calidad para
imprimir, aumente la tasa de zoom.

Desde el men 'Guardar imagen' tambin tiene la opcin de guardar la imagen


actual en el 'Panel de control' o en el 'Panel del sistema' (Archivo> Guardar
imagen> Guardar imagen del panel ... / Guardar imagen del sistema ...) .

Estas imgenes se pueden guardar en cualquier formato de archivo elegido de la


lista:

Modelo (* .mesh)
Mapa de bits (* .bmp)
JPEG (* .jpg; *. Jpeg)
GIF (* .gif)
PNG (* .png) Modelo (* .mesh)

Ampliacin de la vista

A medida que desarrolle programas ms grandes, desear mostrar ms iconos en


una ventana que la configuracin de zoom predeterminada. Para ello, puede
cambiar la configuracin de zoom de cada diagrama de flujo en su programa. El
ajuste de zoom actual se muestra en el submen Zoom y en el lado derecho de la
barra de estado en la parte inferior de la ventana Flowcode. Los parmetros y
opciones de zoom se pueden ver cuando selecciona 'Ver' y luego 'Zoom' para
abrir el submen (Ver> Zoom>).

Existen varios accesos directos a este men disponibles mediante las teclas
de funcin:

Aumentar el zoom (F3) - aumenta el tamao del zoom en un 5%


Disminuir el zoom (F2) - disminuye el tamao del zoom en un 5%
Zoom predeterminado (F4) - fija el zoom a 75%
Zoom para ajustar - Ajusta el diagrama de flujo completo en la ventana
actual.
Zoom para ajustar el ancho - Ajusta el ancho del diagrama de flujo en el
ancho de la ventana.
Funcin de zoom con el botn derecho del ratn

Tambin puede acceder a un men de zoom haciendo clic con el botn derecho
en el espacio de trabajo en cada ventana de Diagrama de flujo.

Impresin de diagramas de flujo

Utilice el comando Vista preliminar para mostrar el diagrama de flujo tal como
aparecera al imprimirlo.

Cuando utilice este comando, la ventana principal se sustituir por una ventana
de Vista preliminar en la que se mostrarn una o dos pginas en su formato
impreso.

La barra de herramientas de vista previa de impresin le ofrece opciones para:

Vea una o dos pginas a la vez.


Mueve hacia adelante y hacia atrs a travs del documento.
Ampliar y reducir pginas.
Iniciar un trabajo de impresin.

Alternativamente, el trabajo de impresin se puede iniciar sin vista previa


seleccionando 'Imprimir' en el men 'Archivo' (Archivo> Imprimir) o haciendo
clic en el icono Imprimir en la 'Barra de herramientas principal'.

Alteracin del tamao del icono en el papel

El tamao del diagrama de flujo en el papel, y el tamao de cada icono, est


dictado por el nivel de zoom. Si desea que los iconos ms grandes en el zoom de
papel. Si desea iconos ms pequeos en el papel y luego alejar. Utilice la funcin
de vista preliminar para optimizar la presentacin de su diagrama de flujo en el
papel.

Ver opciones globales


Para obtener una vista previa de cualquiera de estos ajustes simplemente haga
clic en el botn "Vista previa" en la parte inferior de la ventana.

Ficha del organigrama

Esta pestaa contiene los ajustes para cambiar la apariencia del diagrama de
flujo. Esto incluye opciones de fuente, colores y grficos de iconos, colores de
fondo y patrones, etc.

Ficha Annotation

Todos los ajustes de esta pestaa se relacionan con las anotaciones en el


diagrama de flujo. Incluye texto y descripciones de iconos, as como estilos de
anotaciones y sugerencias.
Ficha Aplicacin

Los ajustes aqu afectan a la apariencia del programa en general. Puede cambiar
los presets de piel que cambia la apariencia general de Flowcode, tambin ofrece
opciones de pestaa de opciones, la capacidad de imprimir en color, as como
aadir comentarios de icono al cdigo C y cambiar la configuracin de acceso
web.
Cambiar idioma

Permite al usuario anular la configuracin de idioma Flowcode predeterminada y


mostrar el cdigo de flujo en el idioma especificado. Seleccione el idioma de los
disponibles en la lista desplegable y reinicie Flowcode para ver el nuevo
idioma. Nota: Los paquetes de idioma relevantes deben estar instalados para que
Flowcode habilite ese idioma en
particular. Consulte www.matrixmultimedia.com para conocer los idiomas
disponibles.

Ficha Ubicaciones

Le permite controlar el directorio de destino al que Flowcode compila de forma


predeterminada y tambin le permite incluir directorios para que Flowcode
busque componentes y diccionarios.
Salidas digitales

Tpicos cubiertos

Salidas digitales
1. Configurar el equipo
2. Configurar el diagrama de
flujo
3. Adicin de LEDs
4. Simulacin de alta
velocidad
5. Ralentizndolo
6. Nueva salida
7. Nmeros binarios
8. Conversin de nmeros
9. Salida de nmeros
10. Una prueba corta
11. Trabajo en Hex
12. Descarga del programa

Configurar el equipo

El siguiente diagrama muestra el equipo de bloques electrnicos que necesitar


para esta seccin:

Multiprogramacin Ajustes de hardware: Ajuste:


Dispositivo PICmicro 16F1937
Fuente de alimentacin 13.5V
SW1 (rpido / lento) Lento
SW2 (RC / XT) RC
XTAL 19 660 800 Hz
PORTA N/A
PORTB Junta LED
PORTC N/A
PORTD N/A
Puerta N/A
Puente de seleccin LVP PUERTO DE E / S
J12-14 (ICD2-USB) USB
J29 (PSU-USB) PSU

Configurar el diagrama de flujo

1. Inicie un nuevo proyecto seleccionando 'Archivo' y luego haciendo clic en


'Nuevo' en el men que aparece (Archivo> Nuevo). Se le presentar una
seleccin de microcontroladores para los que puede desarrollar
programas. Seleccione '16F1937' en la lista.
2. Ahora ver que su diagrama de flujo aparece con un icono 'BEGIN' y
'END'. Todos los diagramas de flujo tienen estos iconos de forma
predeterminada. Mueva el cursor sobre el icono 'Salida', en la barra de
herramientas Icono, luego haga clic y arrstrelo hasta el rea de
trabajo. Mientras arrastra el icono, el cursor normal cambia a un icono
pequeo. Muvalo entre las casillas 'BEGIN' y 'END'. A medida que se
acerque al diagrama de flujo, aparecer una flecha que le mostrar dnde
se colocar el cuadro Salida. Suelte el botn del ratn para soltar el cuadro
de salida entre los cuadros 'BEGIN' y 'END'.
3. Mueva el cursor sobre el cuadro Salida, haga doble clic con el botn
izquierdo del ratn o haga clic con el botn derecho del ratn y elija
'Propiedades' en el men que aparece, haciendo clic una vez con el botn
izquierdo del ratn. Ahora ver un cuadro de dilogo como este:
4. Mueva el cursor sobre el 0 en el cuadro Variable o valor y haga clic una
vez. Esto resaltar el valor '0'. Cambie este valor a '1'.
5. Mueva el cursor sobre la flecha de la ventana Puerto. Haga clic en
'PORTB' en el men que se abre. El cuadro de dilogo ahora se parece al
siguiente.

6. Ahora haga clic en el botn 'Aceptar' para cerrar el cuadro.


Adicin de LEDs

1. Haga clic en el botn 'Salidas' de la barra de herramientas Componentes y


seleccione el componente 'Array de LED'. Se parece a esto:

Haga clic o arrastre en el elemento de men para agregar un conjunto de LED en


el Panel del sistema.

Haga clic una vez en el componente en el panel para seleccionarlo y el panel de


propiedades mostrar las propiedades del componente como esto:
2. En el 'Panel de Propiedades' vaya a la seccin 'Simulacin' y cambie la
propiedad 'Contar' a '8' escribiendo la casilla junto al nombre de la
propiedad.
3. En el Panel de Propiedades, vaya a la seccin 'Conexiones' y cambie el
'Puerto' a 'PORTB' esto tambin muestra qu puerto y bit est conectado al
chip PICmicro.

3. Puede cambiar el color de los LEDs cambiando la propiedad 'Color' en la


seccin 'Aparicin de LED' en el Panel de Propiedades, asegrese de que
la propiedad 'Mismo Color' est establecida en 'S' para cambiar toda la
matriz de LED o cambiar la color de cada elemento LED individual por
separado.

Simulacin de alta velocidad

Entonces, qu has hecho hasta ahora?

Ha insertado un cuadro Salida en el diagrama de flujo.


Lo configur para entregar un valor de 1 a Port B.
Se conectaron ocho LED a los ocho bits del puerto B.
Enhorabuena: has completado tu primer programa. Ahora vamos a ver qu
sucede cuando ejecuta una simulacin de este programa.

Haga clic en el icono "Ejecutar", la flecha azul en la barra de herramientas


principal.
El icono Ejecutar se ve as:
Si parpadeas, lo perdiste!
El resultado es que el primer LED se enciende, y hay un mensaje diciendo que la
simulacin se ha completado.

Qu significa eso? El programa emiti el nmero 1 y lo mostr en los


LED's. Pero realmente no viste lo que pas.

Ralentizndolo

Cuando presion el botn 'Reproducir', el programa termin en un


instante. Esta es una de las grandes cosas sobre los microcontroladores: trabajan
muy rpido. En los programas posteriores aprender a ralentizar los
microcontroladores con retrasos o bucles para que vayan a la velocidad que los
seres humanos pueden hacer frente. Pero para depurar sus programas necesitar
una forma de disminuir la simulacin.

Pasando por su programa:

Afortunadamente Flowcode tiene una caracterstica que puede utilizar para pasar
por el icono del programa por icono. Si selecciona el botn "Step Into" en la
barra de herramientas de men, ver que Flowcode pasar a travs de su icono de
programa por icono. Esto ralentizar su programa y podr ver los efectos en su
sistema virtual de cada icono. A medida que avanza el programa, ver un
rectngulo rojo alrededor de cada icono: esto indica qu cono se ejecutar la
prxima vez que haga clic en el icono "Step into" como se puede ver aqu:
Nueva salida

1. Haga clic con el botn secundario en el cuadro Salida y elija


"Propiedades" o haga doble clic en el cuadro Salida para volver a abrir el
cuadro de dilogo Propiedades. Haga clic una vez en el cuadro "Variable o
valor". Cambie el nmero de 1 a 2. Haga clic en Aceptar para cerrar el
cuadro.
2. Ejecute la simulacin haciendo clic en el icono Ejecutar:
3. Observe que la matriz LED ha cambiado.
4. Repita el paso 1 poniendo nmeros diferentes en el cuadro "Variable o
valor". Observe el efecto en la matriz LED.
5. Qu nmero tiene que imprimir para que todos los LEDs se
iluminen? Vaya a la pgina siguiente para averiguarlo.

Nmeros binarios

Es hora de echar un vistazo al sistema binario de nmeros!

Los dispositivos electrnicos digitales como el chip microcontrolador PICmicro


no pueden hacer frente al sistema numrico decimal (0, 1, 2, ..9, etc.). En su
lugar, utilizan el sistema binario. Esto utiliza slo dos nmeros 0 y 1. Para el chip
PICmicro, un nmero 1 podra ser una seal de alta tensin (como 5V,) mientras
que un nmero 0 podra ser un voltaje bajo, como 0V.
La tabla muestra cmo se comparan los dos sistemas.
Nmero decimal Mismo nmero en binario
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010

Con el sistema decimal, hay diez nmeros - 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. Cuando


llegamos a la ltima de estas figuras - 9 - comenzamos de nuevo con 0, pero
aadimos otro nmero delante de l, por ejemplo 8, 9, 10 y 18, 19, 20 y as
sucesivamente. Cuando alcanzamos 99, volvemos ambos nmeros a 0's y
aadimos un 1 delante de ellos, para hacer 100.

En binario, sucede lo mismo, pero mucho ms a menudo, porque slo hay dos
nmeros - 0 y 1.
Comenzando, comenzamos con 0, luego con 1, luego regresamos a 0 y aadimos
un '1' en adelante para hacer 10 (pero esto no es diez - es dos) viene despus 11
(tres) y luego tenemos que volver y empezar de nuevo con 0 y agregar un '1' en el
frente, para dar 100 (cuatro) y as en.

Conversin de nmeros

Vamos a sacar algunos resultados de la tabla dada anteriormente:


Nmero decimal Mismo nmero en binario
1 1
2 10
4 100
8 1000

Cada vez que el binario '1' se mueve un lugar a la izquierda, se duplica en valor
en decimal. Podemos usar esta idea para convertir de un sistema a otro.
Nmero binario
Valor decimal
diecisis 8 4 2 1
1 1
1 0 2
1 0 0 4
1 0 0 0 8
asi que
1 1 1 7
1 0 0 1 9
1 0 1 0 0 20
1 1 1 1 1 31

Detect el mtodo?

En cualquier nmero binario, el bit en el extremo izquierdo tiene el valor ms


alto. Esto se conoce como el bit ms significativo (MSB). El que est en el
extremo derecho vale menos, y es el Bit Menos Significativo, (LSB). Por
ejemplo:
MSB LSB
10010111

Salida de nmeros

Finalmente, volvamos a la cuestin de la salida de nmeros!

Saque los nmeros dados en la tabla, colocando el color del LED para
emparejar, y compruebe que el arsenal del LED se comporta como se muestra!
Nmero enviado a la salida Matriz de LED
31

32

130

255

Una prueba corta

Complete la tabla por:

sombreado en los LEDs que iluminan las tres primeras filas; calculando qu
nmero produce los patrones LED mostrados en las ltimas tres filas.
Nmero enviado a la salida Matriz de LED

51

204

195

____

____

____
Trabajo en Hex

Si usted est trabajando a travs de este como un programador con experiencia


ahora tendr una pregunta: "Me pregunto si Flowcode admite nmeros
hexadecimales?"

Si ya te sientes abrumado, salta esta seccin y vuelve a ella ms tarde.

La respuesta es s. Hexadecimal, 'Hex' para abreviar, es una forma ms


conveniente (para los seres humanos) de representar nmeros que binarios. Un
dgito binario en un nmero vara entre 0 y 1. Un dgito decimal vara entre 0 y
10. Un dgito hexadecimal tiene 16 estados posibles. Claramente este es un
problema ya que solo tenemos los dgitos de 0 a 9. Para conseguir esto usamos
las letras A a F para representar los 6 dgitos adicionales requeridos. La siguiente
tabla muestra los nmeros equivalentes en decimal, binario y hexadecimal:
Decimal Binario Maleficio
0 00000000 0
1 00000001 1
2 00000010 2
3 00000011 3
4 00000100 4
5 00000101 5
6 00000110 6
7 00000111 7
8 00001000 8
9 00001001 9
10 00001010 UN
11 00001011 segundo
12 00001100 do
13 00001101 re
14 00001110 mi
15 00001111 F
Tenga en cuenta que hemos mostrado el nmero binario con 8 dgitos. Esta es
una prctica convencin como las computadoras - y nuestros chips PICmicro -
almacenan informacin en grupos de 8 bits. Una sola celda de memoria dentro de
un dispositivo PICmicro vara entre 00000000 y 11111111. En decimal este
rango es 0 a 255. El equivalente en Hex es 0 a FF.

Hex en el cdigo de flujo

Puede colocar Hex en Flowcode precedindolo por las letras '0x' en cualquiera de
los cuadros de dilogo. Por ejemplo:

Esto equivale a colocar el nmero 11110000 en el puerto B. En otras palabras,


colocar una lgica 1 (normalmente 5 voltios) en los 4 pines de salida superiores,
y una lgica 0 (0 voltios) en los 4 pines inferiores.

Descarga del programa

Antes de descargar su programa, asegrese de haber ledo la seccin sobre


'Clocking Your PICmicro Device'.

Si tiene una cubierta en su Multiprogrammer y no puede alterar el estado de la


RC / XTAL interruptor entonces usted puede saltar la descarga y seguir adelante.
Entradas digitales

Tpicos cubiertos

Entradas digitales
1. Configurar el equipo
2. Circuito equivalente
3. Dnde est el
Fuego?
4. Configurar el
diagrama de flujo
5. Variables
6. Uso de variables
7. Configurar las salidas
8. Agregar los
interruptores

Configurar el equipo

El siguiente diagrama muestra el equipo de bloques electrnicos que necesitar


para esta seccin:
Multiprogramacin Ajustes de hardware: Ajuste:
Dispositivo PICmicro 16F1937
Fuente de alimentacin 13.5V
SW1 (rpido / lento) Lento
SW2 (RC / XT) RC
XTAL 19 660 800 Hz
PORTA Tablero del interruptor
PORTB Junta LED
PORTC N/A
PORTD N/A
Puerta N/A
Puente de seleccin LVP PUERTO DE E / S
J12-14 (ICD2-USB) USB
J29 (PSU-USB) PSU

Circuito equivalente
En esta etapa es posible que no aprecie completamente el vnculo entre los E-
bloques que ha conectado y el circuito real. Echa un vistazo al siguiente diagrama
de circuito. Si usted est en Norteamrica, puede ser confundido por las cajas en
el diagrama de circuito. Esta es la forma europea de representar una resistencia
en un esquema.

El Multiprogrammer aloja el dispositivo PICmicro principal, suministra energa a


todo el sistema (batera V1) y proporciona conexiones a los otros E-bloques (no
se muestra en el diagrama). En el Multiprogramador hay una resistencia de 10K a
+ V: no se muestra el interruptor de reinicio que conmuta el pin (MCLR) a
tierra. La resistencia R1 asegura que el microcontrolador no est en 0 lgico: no
se restablece. El circuito de reloj Multiprogrammer de C1, R10 es
simplificado. Esto supone que los interruptores del reloj estn en el RC, modo
lento. La placa LED tiene 8 LEDs con 8 resistencias en serie. Esto est
representado por D0 a D7 y R2 a R9. En la placa de conmutacin hay 8
interruptores push-to-make (S0 a S7), resistencias limitadoras de corriente en
serie (R11 a R18) y resistencias pull down (R19 a R26).

Siempre que conecte un sistema de bloques E juntos debe estar consciente del
circuito efectivo que est haciendo. Usted puede mirar los diagramas de circuito
para conseguir una mejor idea de cmo cada tablero de E-blocks se conecta al
Multiprogrammer.
Donde esta el fuego

El escenario!

Un gran edificio tiene una serie de sensores de calor en su sistema de alarma


contra incendios.

Cuando hay un incendio, el cuerpo de bomberos necesita saber dnde est el


fuego. En otras palabras, necesitan saber qu sensor de calor ha activado la
alarma.

El sistema es controlado por un microcontrolador PICmicro. Hay cinco sensores


de calor. stos se conectan como entradas al puerto A. El puerto B se configura
como el puerto de salida y se conecta a un conjunto de cinco LED. Si un sensor
de calor detecta un incendio, el LED correspondiente se enciende.
Configurar el diagrama de flujo

1. Inicie Flowcode.

Inicie un nuevo diagrama de flujo mediante:

Haciendo clic en el icono del nuevo documento en la barra de


herramientas principal cerca de la parte superior izquierda de la pantalla.
Haga clic en 'Archivo' y luego en 'Nuevo' en el men que aparece
(Archivo> Nuevo).
Presionando 'Ctrl + N' en su teclado.

2. Una vez ms ignore esta caja de dilogo:


3. Haga clic y arrastre un cono de entrada y colquelo entre los cuadros
'BEGIN' y 'END'.
4. Haga clic y arrastre un cono de Salida y colquelo justo debajo del
icono de Entrada.
5. Su diagrama de flujo debe ser similar al siguiente:

Variables
1. Haga clic con el botn derecho en el icono de entrada y seleccione
"Propiedades" en el men. Aparece el siguiente cuadro de dilogo.

2. Este es el cuadro de dilogo Propiedades de entrada. A continuacin


vamos a agregar una variable.
3. Pero, qu es una variable? Una variable es un lugar donde podemos
almacenar informacin - en particular, informacin que cambia a medida
que nuestro programa se ejecuta: en este caso, el nmero del sensor de
calor que dispara la alarma. Puede ser el sensor 1 que se apaga, o el sensor
5. Vamos a usar una variable llamada "SENSOR" (sin comillas) para
almacenar qu sensor ha sido activado.
4. Haga clic en el botn situado junto a la casilla "Variable:". Ver el
siguiente cuadro de dilogo:
5. Ahora coloque el cursor sobre la palabra "Variables" y el botn
aparecer. Haga clic en l y luego seleccione "Aadir nuevo". Aparecer
otro cuadro de dilogo que se muestra a continuacin. Usted tiene una
gran variedad de variables aqu, pero por ahora dejar la configuracin
predeterminada de 'Byte'. Esto le permite tener una variable que puede
variar entre 0 y 255. Ms sobre esto en la siguiente pantalla.
6. Se le pide ahora el nombre de la nueva variable. Escriba el nombre
"SENSOR" (sin comillas) y haga clic en el botn Aceptar. Este nombre
ahora aparece en la lista de variables que su organigrama puede usar.
7. Haga doble clic en el nombre de la variable para usarla o,
alternativamente, haga clic y arrastre el nombre en el cuadro de variables.
8. Ahora ver el cuadro Propiedades de entrada de nuevo. Observe que
necesita indicar al sistema qu puerto va a utilizar para ingresar los datos
que el sistema necesita. Est en el puerto A en este momento, y lo vamos a
dejar as. En este caso, el sistema necesita saber qu estn haciendo los
sensores de calor, por lo que cada sensor de calor se conectar a un bit
diferente del puerto A. Haga clic en Aceptar para cerrar el cuadro
Propiedades de entrada.

Uso de variables
En una seccin anterior agreg una variable a su programa usando el cuadro de
dilogo variable:

Pero qu significa esto?

Los ordenadores trabajan sobre los principios de la lgica digital: 0's y 1's en
cada cable, y grupos de 8 cables, o 8 'bits', formando 'bytes' de datos. Este
agrupamiento de 8 bits se utiliza para gran parte del cableado interno dentro del
dispositivo PICmicro y para los registros que contienen y procesan
datos. Tambin se utiliza para la memoria. Esto significa que un registro de
memoria tiene 8 bits y puede variar de 0 a 255. Una variable dentro de Flowcode
se puede asignar para utilizar slo un registro de memoria o ms de uno. En
Flowcode tiene ocho tipos diferentes de variables que puede utilizar:

Una variable 'bool' puede ser 1 o 0 (true o false).

Un solo registro es conocido como una variable 'Byte' y puede variar de 0 a 255.
Un registro doble se conoce como una variable 'Int' y puede variar de -32768 a
+32767.

Un registro doble tambin se puede utilizar sin signo esto se conoce como una
variable 'UInt' y puede variar de 0 a 65535.

Un registro cudruple se conoce como variables 'largas' y puede variar de -


2147483648 a 2147483647.

Un registro quad tambin se puede utilizar sin signo esto se conoce como una
variable 'ULong' y puede variar de 0 a 4294967295.

Debe utilizar Byte de tipo cuando tiene contadores simples y variables que no
van por encima del valor 255. Este es el ms econmico en trminos de espacio
de memoria y tambin el ms rpido: los procesos matemticos que implican dos
bytes (a menudo se refiere como "aritmtica de 16 bits ') el PICmicro tardar ms
en ejecutarse.

Un registro mltiple se conoce como una variable 'String' y puede consistir en un


nmero de variables Byte - el valor predeterminado en Flowcode es 20.

Tambin se pueden utilizar nmeros de punto flotante, aunque representan un


rango mucho ms amplio de valores que un nmero entero, sufre una prdida de
precisin en rangos grandes.

Finalmente, un identificador de objeto se utiliza para hacer referencia a una pieza


de datos ms complicada (como un archivo, componente o bloque de texto) cuyo
formato interno no se conoce.

Entonces, por qu es importante? La respuesta es que el nmero de registros


dentro del dispositivo PICmicro es limitado, y en aplicaciones ms grandes
necesitar administrar las variables en un programa cuidadosamente para que se
ajusten dentro del dispositivo.

Al descargar las variables en Flowcode se implementan en la parte de memoria


de acceso aleatorio (RAM) del dispositivo PICmicro. En el 16F1937 hay 512
bytes de memoria. Esto significa que puede tener 512 variables de bytes, 265
variables de tipo Int o 25 cadenas de 20 bytes o caracteres.
Configurar las salidas

1. A continuacin, haga clic con el botn derecho del ratn en el icono Salida
y seleccione "Propiedades" o simplemente haga doble clic en el icono
Salida. Aparece el cuadro Propiedades de salida.
2. Haga clic en el botn junto al cuadro de variables. Aparecer la variable
'SENSOR'.
3. Haga doble clic en la palabra 'SENSOR' o haga clic y arrstrelo al cuadro
de variables.
4. Ahora est de nuevo en el cuadro de propiedades de salida, que muestra
que el sistema est configurado para generar los datos almacenados en la
variable 'SENSOR'. Cambie el puerto utilizado al puerto B, haciendo clic
en la flecha en la ventana Puerto y, a continuacin, haciendo clic en
"PORTB" en el men que se abre.
5. Haga clic en Aceptar para cerrar el cuadro Propiedades de salida.
6. El diagrama de flujo debera verse as:

Observe las flechas delante de las etiquetas 'PORTA' y 'PORTB', que muestran
que la informacin fluir desde el puerto A en el diagrama de flujo y fluir desde
el diagrama de flujo hacia el puerto B.

7. Ahora haga clic en el botn Outputs y seleccione el cono LED


Array . Coloque la matriz LED donde desee en el panel haciendo clic y
arrastrando con el cursor del ratn.
8. Cambie la propiedad 'Count' en la seccin 'Simulation' al valor '5' haciendo
clic en el cuadro junto a la propiedad y usando el teclado para ingresar el
valor.
9. Haga clic al lado de la palabra 'Puerto' en la seccin 'Conexiones' en el
panel Propiedades mientras el componente est seleccionado para abrir
una vista interactiva del chip que muestra pasadores compatibles.
10. Haga clic en el men desplegable y seleccione la opcin 'PORT B'. Ahora
ha conectado los LEDs a los pines del puerto B.

Agregar los interruptores

Usted va a utilizar interruptores para representar los sensores de calor. Un


interruptor que est encendido se utiliza para imitar un sensor de calor que ha
activado la alarma de incendio. Utilizar cinco conmutadores para representar los
cinco sensores de calor.

1. Haga clic en el botn Inputs y seleccione el Switch Array Arrastre los


interruptores a un lugar adecuado en el Panel del sistema.
2. Haga clic una vez en el cuadro junto a la propiedad 'Count' para cambiar el
valor de la propiedad, cambie el valor a '5'. Asegrese de que el
componente est conectado a 'PORTA'
3. Haga clic una vez en el botn "Step Into" .
4. A continuacin, aparece la ventana 'Depurador de simulacin', puede
ignorar esto por ahora.
5. Mueva el cursor sobre uno de los interruptores y haga clic en. Ver el
conmutador grfico de conmutacin a un interruptor cerrado. Esto simula
causar un incendio. haga clic en el botn Step Into un par de veces ms
para completar el programa.Usted acaba de causar un incendio, que ha
activado ese sensor de calor. Observe que la matriz LED le indica, o el
cuerpo de bomberos, qu sensor detect el incendio.

El programa est terminado y funcionando.

Bucle bsico
Tpicos cubiertos

Bucle bsico
1. Configurar el equipo
2. Contando mal las
ovejas
3. Configurar el diagrama
de flujo
4. Crear las variables
5. Configurar el clculo
6. Propiedades de bucles
7. Configurar la entrada
8. Configurar la salida
9. Adicin de la matriz
LED
10. Agregar los
interruptores
11. Simulacin
12. La solucin - Aadir
un retraso

Configurar el equipo

El siguiente diagrama muestra el equipo de bloques electrnicos que necesitar


para esta seccin:
Multiprogramacin Ajustes de hardware: Ajuste:
Dispositivo PICmicro 16F1937
Fuente de alimentacin 13.5V
SW1 (rpido / lento) Lento
SW2 (RC / XT) RC
XTAL 19 660 800 Hz
PORTA Tablero del interruptor
PORTB Junta LED
PORTC N/A
PORTD N/A
Puerta N/A
Puente de seleccin LVP PUERTO DE E / S
J12-14 (ICD2-USB) USB
J29 (PSU-USB) PSU

Contando mal las ovejas


Contando ovejas, mal al principio, pero sin dormirse!

El plan es directo - cuando una oveja pasa a travs de la puerta, interrumpe un


haz de luz. Esto enva un pulso al sistema de conteo, que entonces agrega uno al
total almacenado en el sistema. Mostraremos este total en el LED Array. (La
pantalla de 7 segmentos sera un dispositivo de salida mucho mejor. Es un
ejercicio posterior!)

El plan parece sencillo, pero habr problemas!

Tenga en cuenta que hay un componente "Beam Breaker" basado en el "Detector


de colisin", aunque esto har un trabajo mucho mejor, queremos atenerse a lo
bsico para demostrar la interrupcin utilizando mtodos ms bsicos.

Configurar el diagrama de flujo

Inicie Flowcode e inicie un nuevo diagrama de flujo. Cree el diagrama de flujo


que puede ver a continuacin. Este diagrama de flujo contiene un icono "Loop" y
un icono "Calculation" que no ha utilizado antes.
Crear las variables

1. Haga clic en "Ver" en la barra de mens, y luego asegrese de que


"Explorador de proyectos" est marcada (Ver> Explorador de
proyectos). A continuacin, haga clic en el botn "Globales" en la parte
superior del panel Explorador de proyectos:
2. Vamos a crear dos variables, una llamada 'SHEEP' y la otra llamada
'TOTAL'. La variable 'SHEEP' mostrar si una oveja est presente o no. La
variable 'TOTAL' almacenar el nmero total de ovejas registradas hasta
la fecha.
3. Coloque el cursor sobre "Variables" en el panel del explorador del
proyecto y luego haga clic en el que aparece, luego haga clic en "Aadir
nuevo". Ahora ve el cuadro de dilogo "Crear una nueva variable". Escriba
el nombre "SHEEP" y luego haga clic en Aceptar. Puede dejar el tipo de
variable como 'Byte' ya que no habr muchas ovejas. Crear una variable de
la misma manera y el nombre de "TOTAL".

Configurar el clculo

1. Haga doble clic en el icono Clculo para abrir el cuadro de dilogo


Propiedades.
2. Cambie el nombre de visualizacin a "Nuevo total".
3. Dgale al icono Clculo qu se supone que debe calcular escribiendo la
siguiente ecuacin en la ventana Clculos:

TOTAL = TOTAL + OVEJAS


Vamos a simular el haz de luz con un nico pulsador en el puerto A bit 0 - el
interruptor marcado 'SW0' en el tablero de interruptores.

Las propiedades de entrada se configuran para almacenar cualquier


nmero que aparezca en el puerto A en la variable llamada 'SHEEP'.
Cuando no se pulsa el interruptor, el nmero en el puerto A es 0, y
ste se almacena en la variable 'SHEEP'.
Cuando presionamos el interruptor, el nmero 1 se ingresa a travs
del puerto A, y se almacena en la variable 'SHEEP'.

(Como estamos usando slo un interruptor, el mayor nmero que podemos


producir en el puerto A es 1.)
Cuando se activa el icono de clculo, se agrega el nmero almacenado en la
variable 'SHEEP' a la variable 'TOTAL'. Cuando una oveja rompe el haz de luz,
en otras palabras, entonces 'TOTAL' se incrementa en 1. Cuando no hay oveja
presente, 'TOTAL' permanece sin cambios.

4. A continuacin, haga clic en el botn Aceptar para cerrar el cuadro de


dilogo.
Propiedades de bucles

Si hace doble clic en el icono de lazo, aparecer el cuadro Propiedades:

El cuadro de dilogo Propiedades de bucle le muestra las opciones que tiene para
controlar el bucle. Junto a la instruccin 'Loop while:' es el cuadro de texto de
control de bucle. En este cuadro de texto usted pone la condicin del lazo: el lazo
continuar funcionando hasta que se cumpla esta condicin. Por ejemplo, en este
cuadro de texto puede escribir:

count = 10 (El bucle se ejecuta mientras que el conteo de variables = 10)

count> 4 (El bucle se ejecuta mientras el nmero de variables es mayor que 4)

count = preset (El bucle se ejecuta mientras que el contador de variables es el


mismo que el preset de variable)

En todo lo anterior, el bucle continuar funcionando siempre y cuando la


condicin en el cuadro de texto 'Loop while' sea verdadera. En la programacin
'verdadero' tiene un significado especial. 'verdadero' dentro de una computadora
tiene que tener un valor numrico para que pueda ser probado. El valor numrico
tiene que estar en un bit y, por lo tanto, se asigna el valor '1' a true. Del mismo
modo, se asigna el valor numrico '0' a 'false'.
La condicin predeterminada en el cuadro de texto 'Loop While:' es simplemente
'1'. Esta condicin es siempre 'verdad' y por lo tanto colocar un valor de '1' dentro
del cuadro de texto 'Loop while' significa que el bucle se ejecutar para siempre.

Todos los programas tendrn una estructura Loop para siempre cerca del inicio
del programa. Si no lo hicieran, entonces el programa podra terminar y la
computadora se quedara all sin hacer nada, lo cual no sera muy til.

Cundo probar?

En las propiedades del icono Loop, ver que puede configurar el bucle para
probar la condicin al inicio del bucle o al final del bucle. Entender esta opcin
es importante: si tiene un contador o un proceso que puede cambiar el valor de
una variable en el bucle, las pruebas al principio o al final del bucle afectarn al
nmero de bucles que se ejecutan.

Loop durante un nmero de veces

A medida que su experiencia crece y hacer ms programas que usted encontrar


que muy a menudo slo desea ejecutar un bucle para un nmero determinado de
veces. Debido a esto, la ventana de dilogo de cono Loop le permite marcar la
casilla de verificacin 'Recuento de bucles' e ingresar un nmero en el cuadro de
texto asociado para hacer que el ciclo se ejecute durante un nmero
predeterminado de veces.

Configurar la entrada

1. Haga clic con el botn derecho en el icono de entrada y seleccione


Propiedades en el men para ver el siguiente cuadro de dilogo:
1. Cambie el nombre para mostrar de la siguiente manera. Haga doble clic en
la palabra 'Input' en el cuadro 'Display name:' y escriba "Check the
sensor".
2. Haga clic en el botn junto al cuadro de variables. Esto abrir el
'Administrador de variables'.
3. Haga doble clic en la palabra 'SHEEP' para insertarla en el cuadro de
variables.
4. El cuadro Propiedades de entrada se establece en Puerto A de forma
predeterminada. Usaremos el puerto A como puerto de entrada. Haga clic
en Aceptar para cerrar el cuadro Propiedades de entrada.

Configurar la salida

1. Haga doble clic en el icono de salida para abrir el cuadro de dilogo


Propiedades de salida.
2. Haga clic en el botn junto al cuadro de variables.
3. Haga doble clic en la palabra 'TOTAL' para insertarlo en el cuadro de
variables.
4. De vuelta en el cuadro Propiedades de salida, cambie el puerto utilizado
para 'PORTB'.
5. Haga clic en Aceptar para cerrar el cuadro Propiedades de salida.
6. El diagrama de flujo debera verse as:

Adicin de la matriz de LED

1. Haga clic una vez en las salidas y seleccione el icono "Array de


LED" . Coloque la matriz de LED donde desee en el panel moviendo el
cursor sobre la matriz de LED y luego haciendo clic y arrastrando la caja
de seleccin a su posicin.
2. Cambie el valor de la propiedad 'Count' a '8' - esto agrega la cantidad
mxima de elementos LED a la matriz.
3. Haga clic en la propiedad "Conexiones" en la opcin Panel de
propiedades. Seleccione 'PORTB' en el men desplegable, esto conecta los
LEDs a los pines en el puerto B.
4. Tambin puede cambiar el color de la matriz de LED utilizando la seccin
"Colores", cuando la propiedad "Color igual" est establecida en "S",
puede cambiar el color de todo el conjunto de LED con facilidad, tambin
puede configurar los colores de forma individual o incluso cambiar cada
LED para mostrar un color diferente cuando la propiedad 'mismo color'
est establecida en 'No'.

Agregar los interruptores

Utilizar un solo pulsador.

1. Haga clic una vez en las entradas y seleccione el icono "Push Round
Panel" . Agregue o arrstrelo al Panel del sistema.
2. Asegrese de que la propiedad "Conexin" en la seccin "Conexiones" del
Panel de Propiedades est conectada a "$ PORTA.0"
3. Haga clic y arrastre el botn "Texto" de la barra de herramientas del Panel
de sistema y colquelo junto al conmutador. Haga clic en la propiedad
'Texto' en el panel Propiedades y reemplace el texto por "Interrupcin del
haz de luz" en el cuadro de texto. Manipule el elemento usando la seccin
'Escala' en el panel de propiedades y muvalo a una posicin adecuada
junto al botn.

Ahora debera tener un proyecto que se parezca a esto:

Simulacin
1. Ahora ejecute la simulacin haciendo clic en el botn Ejecutar.
2. Aparecer la ventana "Depurador de simulacin": cierre esta ventana, ya
que no es necesaria.
3. Mueva el cursor sobre el interruptor y haga el clic ms breve del ratn que
pueda.

Qu sucede depende de cmo rpidamente usted chasca, y cmo rpidamente su


PC trabaja! Queremos que slo el LED B0 a la luz en la matriz, para mostrar un
total de 1 oveja. Sin embargo, el programa funciona a gran velocidad y, por lo
tanto, mantiene el ciclo a travs de los pasos "Entrada" y "Clculo". Como
resultado, antes de que tenga tiempo para liberar el interruptor de empuje, el total
se ha incrementado (aumentado en uno) varias veces - contine en la siguiente
pgina para averiguar por qu.

La solucin: Aadir un retraso

1. El problema es que el programa funciona demasiado rpido! Antes de que


tengamos tiempo de soltar el interruptor, el programa ha funcionado varias
veces, agregando uno al total cada vez. Necesitamos retrasar las cosas
agregando un retraso. Mueva el cursor sobre el icono 'Delay'. Arrstrelo
hacia el rea de trabajo principal y colquelo entre el icono de clculo y el
icono de salida.

El diagrama de flujo debera tener el siguiente aspecto:


2. Haga doble clic en el icono Retraso para abrir el cuadro de dilogo
Propiedades.

3. Cambie el valor en el cuadro "Delay value or variable" a 200, y luego haga


clic en el botn OK. Esto causa un retardo de 200 milisegundos (0,2
segundos) cuando se activa el icono de retardo. En otras palabras, el
sistema slo se sienta all y no hace nada durante 0,2 segundos.
4. Ahora vuelva a ejecutar la simulacin. Siempre que no mantenga pulsado
el interruptor durante demasiado tiempo, debe encontrar que la matriz
LED muestra un aumento de 1 cada vez que presiona el interruptor.
5. El programa ahora funciona satisfactoriamente, proporcionando a las
ovejas apresurarse a travs del haz de luz en menos de 0,2 segundos. El
retraso podra aumentarse para permitir ovejas ms lentas!

Uno de los problemas con este programa es que muestra el nmero total de
ovejas en formato binario. Eso es interesante, pero no tan til. En la siguiente
seccin aprender cmo puede usar la pantalla LCD para mostrar nmeros en un
formato decimal ms humano.

La pantalla LCD

Tpicos cubiertos

La pantalla LCD
1. Configurar el equipo
2. Pantallas LCD
3. Adicin del
componente LCD
4. Escribir mensajes
5. Otras funciones del
LCD
6. Un contador ms til

Configurar el equipo

El siguiente diagrama muestra el equipo de bloques electrnicos que necesitar


para esta seccin:
Multiprogramacin Ajustes de hardware: Ajuste:
Dispositivo PICmicro 16F1937
Fuente de alimentacin 13.5V
SW1 (rpido / lento) N/A
SW2 (RC / XT) XT
XTAL 19 660 800 Hz
PORTA N/A
PORTB Panel LCD
PORTC N/A
PORTD N/A
Puerta N/A
Puente de seleccin LVP PUERTO DE E / S
J12-14 (ICD2-USB) USB
J29 (PSU-USB) PSU

Tenga en cuenta que en este experimento vamos a utilizar el oscilador de cristal y


tendr que cambiar la configuracin de los interruptores en su placa
multiprograma, y en el cdigo de flujo puede hacer esto seleccionando "Build" en
el men principal, a continuacin, seleccionar "Opciones de proyecto. . 'y luego
ir a la pestaa' Configurar 'donde ver una lista de opciones (Build> Project
Options ...> Configure).

Pantallas LCD

Flowcode viene con una serie de componentes que agregan sistemas


comnmente utilizados a Flowcode, como la pantalla LCD, una pantalla de 7
segmentos o entradas analgicas.

En esta seccin veremos la primera de ellas: la pantalla LCD.

La pantalla LCD es la pantalla de texto bsica que se ve en una gran cantidad de


equipos electrnicos, desde calculadoras a telfonos mviles. Puede mostrar
texto o nmeros en una o ms filas de la pantalla.

Para la mayora de los lenguajes de programacin PICmicro, la pantalla LCD es a


menudo una de las ltimas cosas que aprendes, ya que es bastante complicado
trabajar. Sin embargo, en Flowcode no es necesario saber qu sucede bajo la
campana, y la pantalla LCD es fcil de usar.

La pantalla LCD que vamos a ver aqu es la que se utiliza en la pantalla LCD
EB005. La pantalla LCD es una pantalla de dos filas, diecisis caracteres.

Adicin del componente LCD


Antes de poder utilizar la pantalla LCD, debe agregar una al panel Flowcode.

Inicie un nuevo programa y luego haga clic en el componente Salidas y


seleccione LCD en el men para agregar una pantalla LCD. Una pantalla LCD
aparecer en el panel.

El nombre del componente seleccionado en la parte superior del panel de


propiedades le permite saber qu componente concreto est utilizando. De forma
predeterminada, la pantalla LCD se agrega al puerto B. Puede cambiar esto, pero
lo mantendremos en el puerto B por ahora. Ok ahora tenemos una pantalla LCD
aadido al programa - ahora qu? Est listo para usar? Cmo lo usamos?

Las pantallas LCD requieren 5 conexiones en un puerto y estn programadas para


mostrar letras y nmeros usando informacin en serie en el bus de 5 hilos. La
tcnica actual que utiliza es ms all de este tutorial, y afortunadamente
Flowcode tiene algunas rutinas incrustadas que cuidar de estas complejidades
para usted.

Arrastre un icono de "Macro de componentes" en el diagrama de flujo y abra


el cuadro de dilogo de macro haciendo doble clic en el cuadro Macro de
componentes.
Ahora desplcese por la seccin 'LCD' y seleccione la macro llamada 'Inicio'.

'Inicio' inicia la pantalla LCD, borra la pantalla y la prepara para la


accin. Vamos a mirar a los otros en el prximo par de secciones, pero por ahora
por qu no desplazarse a travs de las macros disponibles y tener una mirada
rpida a cada uno para ver si se puede trabajar con lo que cada uno hacer?
Otras funciones del LCD

Hay una serie de otras funciones tiles en la lista de macros LCD:

Claro

Borra la pantalla y restablece el cursor (la posicin en la que se imprimir la


pantalla a continuacin) a 0,0 - arriba a la izquierda.

Cursor

Mueve el cursor a la ubicacin especificada. Esto toma dos parmetros X e Y,


correspondientes a la posicin horizontal y vertical respectivamente. 0,0 es la
posicin superior izquierda en la pantalla. 0,1 es la primera letra de la segunda
lnea. 3,2 representara la cuarta letra de la tercera lnea.

Nmero de imprenta

Esto funciona como 'PrintString' pero imprime el nmero en lugar de la


cadena. Se puede utilizar con variables, o nmeros reales.

Ejemplo PrintNumber:

Si agrega un icono de Macro de componentes, seleccione 'Cursor' y aada 0,1 a


los parmetros. Cree otro icono Macro de componentes y seleccione
'PrintNumber' con el valor del parmetro como '123'. Finalmente cree otro y
seleccione "PrintString" y agregue "Hello World" (con comillas) al parmetro.

Ahora haga clic en "Ejecutar" para simular el programa, debe ver resultados
similares a esto:
PrintASCII y Command

Estas son caractersticas ms avanzadas que aprender ms adelante. Por ahora


puedes ignorarlos.

Un contador ms til

1. Expanda su programa arrastrando un icono de bucle debajo de la macro de


componente 'PrintString'.
2. Cambie el texto en la macro de componente 'PrintString' a "Centsimos:"
(con comillas).
3. Arrastre un icono de clculo al bucle. Configure una variable llamada
"Count" como un tipo 'Int'. Haga doble clic en el icono Clculo. En el
cuadro de texto "Clculos:" escriba "Count = Count + 1". Esto agregar 1
al valor del conteo de variables cada vez que se ejecute el icono.
4. A continuacin, arrastre otra macro de componentes al bucle. Haga doble
clic en Macro de componentes y busque 'Cursor' en las macros 'LCD' e
introduzca '0,1' en los parmetros. Esto posicionar el cursor en el primer
carcter de la segunda lnea.
5. A continuacin, arrastre otra macro de componentes al espacio de trabajo
y haga lo mismo, pero seleccione "PrintNumber" en su lugar e ingrese
"Count" como parmetros.
6. Luego arrastre un icono de Retardo al programa y ajuste el retardo a 10ms
o un centsimo de segundo.
7. Revise el programa y haga clic en cada icono para introducir comentarios
sobre lo que hace cada icono. Esto parece como mucho esfuerzo, pero si
puedes disciplinarte a introducir comentarios, ahorrars tiempo a largo
plazo, ya que tus programas sern ms fciles de leer.
8. Ejecuta el programa. Ahora ha hecho un contador que contar
(aproximadamente) el tiempo transcurrido en centsimas de segundos.

Nmeros binarios

Tpicos cubiertos

Nmeros binarios
1. Configurar el equipo
2. Un buscador binario
3. Configurar el
diagrama de flujo
4. Crear las variables
5. Configurar las
entradas
6. Configurar el clculo
7. Configurar la salida
8. Adicin de la matriz
LED
9. Agregar los
interruptores
10. Simulacin lenta

Configurar el equipo

El siguiente diagrama muestra el equipo de bloques electrnicos que necesitar


para esta seccin:
Multiprogramacin Ajustes de hardware: Ajuste:
Dispositivo PICmicro 16F1937
Fuente de alimentacin 13.5V
SW1 (rpido / lento) N/A
SW2 (RC / XT) XT
XTAL 19 660 800 Hz
PORTA N/A
PORTB Tablero del interruptor
PORTC Tablero del interruptor
PORTD Junta LED
Puerta N/A
Puente de seleccin LVP PUERTO DE E / S
J12-14 (ICD2-USB) USB
J29 (PSU-USB) PSU

Un buscador binario
En esta seccin se puede ver cmo funciona el cerebro PICmicro haciendo un
sistema que puede agregar dos nmeros.

La forma ms sencilla de introducir un nmero binario es utilizar un conjunto de


conmutadores conectados al puerto de entrada. Queremos introducir dos nmeros
binarios, por lo que necesitaremos dos conjuntos de conmutadores y dos puertos
de entrada. Queremos ver el resultado del clculo. Por ahora, usaremos un Array
LED, conectado al puerto de salida, para mostrar el resultado. Necesitamos un
chip PICmicro con tres puertos!

onfigurar el diagrama de flujo

1. Inicie Flowcode. Inicie un nuevo diagrama de flujo.


2. Esta vez tenemos que tomar nota de este cuadro de dilogo:
Necesitamos un chip PICmicro con al menos tres puertos. Tire de la barra
deslizante hacia abajo para encontrar el 16F1937 PICmicro, haga clic en l para
seleccionarlo y luego haga clic en Aceptar.

3. Haga clic y arrastre un icono de lazo entre los cuadros 'BEGIN' y 'END'.
4. Haga clic y arrastre un icono de entrada y colquelo entre los extremos del
bucle.
5. Haga clic y arrastre un segundo icono de entrada y colquelo entre los
extremos del bucle.
6. Haga clic y arrastre un cono de Salida y colquelo justo debajo de los
cuadros 'Entrada'.
7. Haga clic y arrastre un icono de clculo y colquelo entre el segundo
icono de entrada y el icono de salida.
8. Su diagrama de flujo debera verse as:
Crear las variables

1. Haga clic en Ver en la barra de mens y, a continuacin, asegrese de que


"Explorador de proyectos" est activado (Ver> Explorador de
proyectos). A continuacin, haga clic en el botn "Globales" en la parte
superior del panel Explorador de proyectos:
2. Vamos a crear tres variables, llamadas input1, input2 y sum. Los dos
primeros almacenarn los nmeros que alimentamos de los
interruptores. La variable 'suma' almacenar el resultado de sumar los dos
nmeros almacenados en 'input1' y 'input2'.
3. Coloque el cursor sobre "Variables" en el panel del Explorador de
proyectos y haga clic en el que aparece, luego haga clic en "Aadir
nuevo". Ahora ve el cuadro de dilogo "Crear una nueva variable" como
se puede ver a continuacin. Escriba el nombre "input1" y, a continuacin,
haga clic en el botn Aceptar. Puede dejar el tipo de variable como
'Byte'. Cree las variables, "input2" y "sum" de la misma manera.
Configurar las entradas

Haga clic con el botn derecho en el cono de entrada superior y seleccione


Propiedades en el men. Aparece el siguiente cuadro de dilogo.
Haga doble clic en la palabra Input en el cuadro "Display name:" para
resaltarla. Escriba "Introduzca el primer nmero" para reemplazarlo. Aparecer
junto al icono de entrada del diagrama de flujo. En un diagrama de flujo
complejo, agregar etiquetas como sta ayuda a los usuarios a entender lo que est
sucediendo.

Haga clic en el botn junto al cuadro de variables. Esto abrir el


'Administrador de variables'.
Esta lista las tres variables que acaba de crear.

Haga doble clic en la palabra 'input1' para usarla en el cuadro de entrada.

Vuelva al cuadro Propiedades de entrada. Est configurado para 'PORTA' en este


momento. Haga clic en la flecha hacia abajo al final de la ventana Puerto y
seleccione "PORTB". Haga clic en Aceptar para cerrar el cuadro Propiedades de
entrada.

Haga doble clic en el segundo icono de "Entrada". (Esta es una manera rpida de
abrir el cuadro de "Propiedades", en lugar de hacer clic con el botn derecho en
el icono y seleccionar "Propiedades" en el men). Establezca esta entrada en:
Muestre la etiqueta "Introduzca el segundo nmero".
Utilice la variable 'input2'.
Utilice 'PORTC'.

A continuacin, cierre el cuadro Propiedades de entrada haciendo clic en el botn


Aceptar.

Configurar el clculo

1. Haga doble clic en el icono Clculo para abrir el cuadro de dilogo


Propiedades.

2. Cambie el cuadro de texto "Mostrar nombre:" a "Agregar los dos nmeros


juntos".
3. Dgale al cuadro de clculo qu se supone que debe calcular agregando lo
siguiente a la casilla "Clculos:":

sum = input1 + input2


Puede escribir esto directamente o arrastrar las variables de la ventana derecha al
cuadro para agregar cada variable a su vez, y luego agregar los signos "=" y "+"
en el lugar correcto!
4. A continuacin, haga clic en el botn Aceptar para cerrar el cuadro de
dilogo.

Configurar la salida

1. Haga doble clic en el icono de salida, para abrir el cuadro de dilogo


Propiedades de salida.
2. Haga clic en el siguiente cuadro de variables.
3. Haga doble clic en la palabra 'suma' para insertarla en el cuadro de
variables.
4. Ahora est de nuevo en el cuadro de propiedades de salida.

Cambiar el puerto utilizado para 'PORTD'.

5. Haga clic en Aceptar para cerrar el cuadro Propiedades de salida.


6. El diagrama de flujo debera verse as:
Adicin de la matriz de LED

1. Haga clic en el botn Outputs y seleccione 'LED Array' . Coloque el


conjunto de LED en el centro del panel del sistema desplazando el cursor
sobre el componente y haciendo clic y arrastrando el cuadro hacia su
posicin o haciendo clic con el botn derecho del ratn y seleccionando
"Centrar todos los objetos".
2. Haga clic al lado de la propiedad 'Contar' en la seccin 'Simulacin' en el
Panel de Propiedades y escriba el valor '7', esto cambiar el nmero de
LEDs - descubrir por qu lo estamos haciendo en la pgina siguiente.
3. Haga clic al lado de la propiedad 'Puerto' y seleccione 'PORTD' en el
men desplegable para conectar los LED a los pines en el puerto D.
4. Cambie el color de la matriz LED a rojo (0000FF). Puede cambiar el color
de la matriz de LED cambiando la propiedad 'LED 0' mientras que la
propiedad 'mismo color' est establecida en 'S', tambin puede cambiar los
LED individualmente cuando la propiedad 'mismo color' est establecida
en 'No '.

Agregar los interruptores

Utilizar dos conjuntos de conmutadores, uno para cada nmero binario.

El puerto de salida tiene slo ocho bits, y por lo tanto el nmero ms grande que
puede producir es 1111 1111. Esto es igual a 255 en decimal. Nos limitaremos a
ingresar solamente nmeros de siete bits. Esto significa que el nmero ms
grande que podemos ingresar es 111 1111, que es igual a 127 en decimal. Si
usamos nmeros ms grandes, entonces desbordaramos la capacidad de la salida.

1. Haga clic en el botn 'Inputs' y seleccione 'Switch Array' y arrstrelo al


Panel del Sistema por encima del Array LED
2. Para conectar la matriz de conmutadores, haga clic en la casilla situada
junto a la propiedad "Puerto" y seleccione "PORTB" en el men
desplegable.
3. Ahora cree otro Switch Array utilizando el mismo mtodo. Colquelo
debajo de la matriz de LED y conctelo a 'PORTC'.

Simulacin lenta
Flowcode le permite avanzar a travs del diagrama de flujo un paso / icono a la
vez. Puede ver el efecto de cada paso en las variables y en la salida. Tenga en
cuenta que este programa tambin ser totalmente funcional al simular 'lo ms
rpido posible'.

1. Hay tres formas de ejecutar el programa paso a paso:


A. Haga clic en el botn "Ejecutar" de la barra de herramientas
principal y luego haga clic en el botn "Ingresar" (Ejecutar>
Ingresar).
B. Presione la tecla de funcin F8 en el teclado.
C. Haga clic en el botn "Step Into" en la barra de herramientas
principal en la seccin de simulacin.

Haz una de estas!

2. Varias cosas suceden.


A. Aparece un rectngulo rojo alrededor del icono 'BEGIN', mostrando
que este es el paso actual.
B. Aparecer la ventana 'Depurador de simulacin' - que contiene
Variables y llamadas macro.
C. La seccin Variables enumera las tres variables que defini para
este programa, y muestra sus valores actuales - todo cero en el
momento.

Ignore la seccin 'Llamadas macro' por el momento.

3. Ahora configure dos nmeros en los componentes del interruptor.

Mueva el cursor sobre la caja de interruptores conectada al puerto B.


Haga clic en los interruptores B0, B1 y B3, para activar estos conmutadores. Los
conmutadores deberan verse as:

Ha configurado el nmero binario 000 1011 (que es el nmero once en decimal).


El conmutador B6 da el bit ms significativo del nmero y B0 el bit menos
significativo.
Configure el nmero 000 1111 (quince) en los interruptores conectados al puerto
C.

4. Ahora paso hacia el icono siguiente en el programa, por ejemplo,


presionando F8 una vez ms.
5. El rectngulo rojo se mueve al siguiente icono, el icono de Loop, pero
poco ms sucede.
6. Presione F8 una vez ms. El rectngulo rojo pasa al primer icono de
entrada.
7. Presione F8 de nuevo y el cuadro Variable muestra que la variable 'input1'
ahora contiene 11. Este es el resultado de la instruccin Input que se acaba
de realizar.
8. Presione F8 de nuevo y la seccin Variable muestra que 'input2' ahora
contiene 15.
9. Presione F8 de nuevo y se realiza el clculo. La variable 'sum' almacena el
resultado.
10. Presione F8 de nuevo. El valor almacenado en 'sum' se transfiere al
LEDarray.

Parece que:

Lectura del bit ms significativo (D7) al bit menos significativo (D0), la matriz
de LED muestra el nmero 0001 1010. En decimal, este es el nmero 26. No hay
sorpresas all entonces!

11. Repita el paso 3 usando nmeros diferentes y pase por el programa para
comprobar qu es la suma de los nmeros.

El programa est terminado y funcionando. Como de costumbre, ahora podra


dejar que Flowcode lo tradujera en cdigo de mquina, y lo quemara en un chip
PICmicro.

Decisiones
Tpicos cubiertos

Decisiones
1. Configurar el equipo
2. Izquierda o derecha?
3. Configurar el
diagrama de flujo
4. Entrada de un solo bit
5. Establecer las
Decisiones
6. Configurar los
retrasos
7. Configurar la salida
izquierda
8. Configurar la salida
correcta
9. Agregar los
interruptores
10. Adicin de la matriz
LED
11. Diagrama de flujo
final
12. Simulacin

Configurar el equipo

El siguiente diagrama muestra el equipo de bloques electrnicos que necesitar


para esta seccin:
Multiprogramacin Ajustes de hardware: Ajuste:
Dispositivo PICmicro 16F1937
Fuente de alimentacin 13.5V
SW1 (rpido / lento) N/A
SW2 (RC / XT) XT
XTAL 19 660 800 Hz
PORTA Tablero del interruptor
PORTB Junta LED
PORTC N/A
PORTD N/A
Puerta N/A
Puente de seleccin LVP PUERTO DE E / S
J12-14 (ICD2-USB) USB
J29 (PSU-USB) PSU

Izquierda o derecha?
Ms y ms microcontroladores PICmicro estn encontrando su camino en los
coches - gestin del motor, frenos antibloqueo, control de crucero, aire
acondicionado, etc Esta tarea es ms modesta, vamos a programar un chip
PICmicro para controlar los indicadores de coche 'si usted est en los EEUU).

Idealmente, cuando presionamos un interruptor, el indicador izquierdo


parpadear y apagar. Presionando el otro interruptor parpadear el indicador
derecho.

Configurar el diagrama de flujo

Inicie Flowcode e inicie un nuevo diagrama de flujo.

Seleccione el 16F1937, cuando aparezca el cuadro de dilogo "Elegir un


destino".

Usted va a usar el icono de "Decisin" para comprobar si se ha pulsado un


interruptor indicador. Si no se presiona ningn botn, el programa sigue la ruta
'No' y vuelve al principio, Cuando se pulsa un interruptor, el programa sigue el
camino 'S' a travs del diagrama de flujo, haciendo que el indicador se ilumine
durante un corto tiempo, y luego apagar durante un corto tiempo. Estos tiempos
son fijados por los retrasos. Mientras se pulsa el interruptor, este proceso se
repite, haciendo que el indicador parpadee y se apague

Cree el siguiente diagrama de flujo:


Entrada de un solo bit
1. Haga doble clic en el primer cuadro de entrada (superior). Esto abre el
cuadro de dilogo Propiedades de entrada.
2. Tipo "Compruebe el interruptor izquierdo!" en el cuadro 'Mostrar
nombre:'.
3. Haga clic en el botn para abrir el cuadro de dilogo "Administrador de
variables".
4. Coloque el cursor sobre la etiqueta de variables hasta que
aparezca. Haga clic en l y, a continuacin, haga clic en "Aadir nuevo".

Cree dos variables, llamadas "IZQUIERDA" y "DERECHA".


La variable 'izquierda' registrar si se presiona el interruptor indicador izquierdo.
La variable 'derecha' registrar si se presiona el interruptor indicador derecho.

5. Haga clic en la variable 'LEFT' para resaltarla y luego haga clic en el


botn 'Use Variable'.
6. Esto le llevar de nuevo al cuadro Propiedades de entrada. Utilizar el
puerto A como puerto de entrada. Haga clic en el botn de opcin "Un
solo bit:" y deje la seleccin en la casilla junto a ella como 0. Esto
significa que slo el valor del bit 0 del puerto A se transferir a la variable
'IZQUIERDA'. Esto significa que 'LEFT' siempre ser un 1 o un 0.
7. Haga clic en el botn Aceptar para cerrar la ventana de dilogo de entrada.
8. Ahora haga doble clic en el segundo cuadro de entrada
(inferior). Establezca este cuadro de propiedades de entrada de manera
similar, para que se vea as:
Establecer las Decisiones

1. Haga doble clic en el primer icono de decisin (superior) para abrir el


cuadro de dilogo Propiedades.

2. Tipo "Interruptor izquierdo presionado?" en el cuadro 'Mostrar nombre:'.


3. El programa toma una decisin basada en el valor almacenado en una
variable.

Explicamos qu es esa decisin en el cuadro 'Si':


Elimine el '0' en el cuadro 'Si'.
Haga clic en el botn junto al cuadro Variable.
Haga doble clic en 'izquierda' para insertarlo en el cuadro.
Escriba "= 1" despus de la palabra "IZQUIERDA" en el cuadro "Si" (LEFT =
1).

4. El cuadro de propiedades Decisiones ahora debera verse as:

5. Ignore la opcin "Permutar s y no", que invierte las rutas "S" y "No" en
el diagrama de flujo.
6. Ahora haga clic en el botn Aceptar, para cerrar el cuadro de dilogo.
7. Haga doble clic en el segundo icono de decisin (inferior). Configure las
propiedades como se muestra en el cuadro siguiente:

Configurar los retrasos

Hay cuatro retrasos en el diagrama de flujo. Vamos a configurar cada uno para
hacer exactamente lo mismo - causar un retraso de 200 milisegundos (ms).
1. Haga doble clic en uno de los cuadros de retardo para abrir el cuadro de
propiedades de retardo.
2. Cambie el valor en la casilla "Retrasar valor o variable:" a 200, dando un
retardo de 200 ms. La caja debe tener este aspecto:

3. Haga clic en el botn Aceptar para cerrar el cuadro de dilogo.


4. Haga exactamente lo mismo para los otros tres retrasos.

Configurar la salida izquierda

1. Siga la ruta "S" desde el 'Interruptor izquierdo presionado?' caja de


decisin.
2. Haga doble clic en el primer cono de salida (superior), para abrir el
cuadro de dilogo Propiedades de salida.
3. Configralo para que parezca el siguiente:
Una palabra de explicacin! - Esta configuracin genera el nmero 255 desde el
puerto de salida. Normalmente, esto iluminara todos los LED conectados al
puerto. Haciendo clic en la casilla 'Usar la mscara', y seleccionando el bit 0,
haremos que todos los LEDs estn inactivos aparte del LED 0, el de la mano
derecha. Esta es una forma de activar slo el bit 0. Aqu hay dos maneras
alternativas de hacer lo mismo!
La salida del valor '1' (= 0000 0001 en binario) enciende solamente el LED del
bit 0. Pero este comando tambin obligar a todos los otros pines del puerto B a
la lgica 0. La tercera opcin da salida al valor '255' (= 1111 1111 en binario), y
pone todos los pines en la lgica 1. Esto debera darle una pista de lo que la
ventaja del enmascaramiento es: le permite alterar el estado de las lneas en un
puerto individualmente. El enmascaramiento le permite hacer un alfiler alto o
bajo sin alterar el estado de los otros pines en el mismo puerto.

4. Haga doble clic en el segundo cono de salida (inferior). Configure las


propiedades como se muestra en el diagrama siguiente:

El valor de salida '0' apaga todos los LED conectados al puerto B.


Configurar la salida correcta

1. Ahora siga la ruta "S" desde el 'Interruptor derecho presionado?' caja de


decisin.
2. Haga doble clic en el primer cono de salida (superior) al que accede.

Configure las propiedades de esta Salida como se muestra en el siguiente


diagrama:

Aqu estn las alternativas para esta Salida:


Como queremos encender el siguiente LED en la matriz, el puerto de salida
necesita activar el bit 1. Una forma de hacerlo es emitir el valor '2' (= 0000 0010
en binario). = 1111 1111 en binario), pero slo activa un solo bit de salida, bit 1
en este caso.

3. Haga doble clic en el segundo cono de salida (inferior). Configure las


propiedades como se muestra en el siguiente grfico:

Agregar los interruptores


Usted utilizar dos pulsadores, uno para operar el indicador izquierdo y el otro el
indicador derecho.

1. Haga clic una vez en las entradas y seleccione "Push Round Panel"
. Arrstrelo a un lugar adecuado en el panel.
2. Agregue otro botn utilizando el mismo mtodo o copie (Ctrl + C) y pegue
(Ctrl + V) el botn existente para duplicarlo.
3. Haga clic en el botn izquierdo y haga clic en "Conexin" en la seccin
"Conexiones" en el panel Propiedades y seleccione Puerto A y Pin 0 en los
mens desplegables.
4. Haga clic en el botn derecho y conctelo al puerto A y al pin 1 utilizando
el mismo mtodo.

Adicin de la matriz de LED

1. Haga clic una vez en el botn Outputs y seleccione 'LED Array'


. Coloque la matriz LED donde desee en el panel del sistema.
2. Haga clic en la propiedad 'Contar' en la seccin 'Simulacin' en el Panel de
Propiedades y seleccione la entrada '2' en el cuadro.
3. A continuacin, seleccione la propiedad "Puerto" en la seccin
"Conexin" y seleccione "PORTB" en el men desplegable para conectar
los LED a los pins del puerto B.
4. Cambie el color de los LED a amarillo cambiando la propiedad 'LED 0' en
la seccin 'Colores' y asegrese de que la propiedad 'Mismo color' est
establecida en 'S'. Tambin puede colorear los LED individualmente
cuando la propiedad "Color igual" est establecida en "No".
5. Finalmente, manipule la matriz de LED cambiando las propiedades de
"Escala" (Ancho, Altura y Profundidad) a "5" y cambie la propiedad
"Espaciado" por "30".

Diagrama de flujo final


El diagrama de flujo debera verse as:
Simulacin

1. Ahora ejecute la simulacin haciendo clic en el botn 'Ejecutar'.


2. Cierre la ventana 'Depurador de simulacin'.
3. Mueva el cursor sobre el interruptor A0 y mantenga el interruptor cerrado
(encendido). El indicador izquierdo, LED B0, parpadea y se apaga hasta
que suelte el interruptor.
4. Cierre el otro interruptor y los indicadores de la derecha parpadean.

Lo importante es que el mismo chip PICmicro podra estar llevando a cabo otras
funciones en el coche tambin. Usamos slo dos entradas y dos salidas. El
programa podra continuar y controlar otros dispositivos en el coche usando las
entradas y salidas restantes.

Goto - Punto de conexin

Tpicos cubiertos

Ir a (Punto de conexin)
1. Configurar el equipo
2. Saltando de un bucle

Configurar el equipo

El siguiente diagrama muestra el equipo de bloques electrnicos que necesitar


para esta seccin:
Multiprogramacin Ajustes de hardware: Ajuste:
Dispositivo PICmicro 16F1937
Fuente de alimentacin 13.5V
SW1 (rpido / lento) N/A
SW2 (RC / XT) XT
XTAL 19 660 800 Hz
PORTA N/A
PORTB Panel LCD
PORTC N/A
PORTD N/A
Puerta N/A
Puente de seleccin LVP PUERTO DE E / S
J12-14 (ICD2-USB) USB
J29 (PSU-USB) PSU

Saltar de un lazo
Durante la seccin en la pantalla LCD desarroll el siguiente programa:

Ahora debe cambiar esto como sigue:

1. Aada un punto de conexin (el superior) al inicio del programa.


2. Aada un icono de clculo debajo del "Punto de conexin". En el icono de
clculo, escriba "Count = 0". Esto restablecer el valor de 'Count' a '0'.
3. Agregue un "Panel de Ronda de Impulsin" al Panel de
Sistema. Conctelo al puerto 0 del bit A.
4. Justo antes del ltimo icono (dentro del bucle), aada un cono de entrada
y un icono de decisin y un icono de "Saltar (Goto) punto de conexin" (la
parte inferior de los dos) a la rama "S" del icono de decisin.
5. Establezca las propiedades del icono de entrada para obtener el estado del
pin A0 y colquelo en una nueva variable (Byte) llamada "RESET".
6. En la caja de decisin, pruebe el valor del conmutador de restablecimiento
escribiendo "RESET = 1" en el cuadro de texto 'If:'. su programa ahora
debera verse as:

Si ejecuta el programa, debe encontrar que la pantalla cuenta en centsimas de


segundo hasta que se presiona el interruptor de reinicio. Cuando se pulsa el
interruptor de reinicio, el programa salta del bucle de nuevo al principio del
programa para restablecer el valor de la variable 'Count'.

Displays de segmentos

Tpicos cubiertos
Pantallas de 7 segmentos
1. Configurar el equipo
2. Pantallas de 7
segmentos
3. Usando un solo
dgito
4. Uso de la pantalla
quad
5. Cmo obtener el
tiempo adecuado

Configurar el equipo

El siguiente diagrama muestra el equipo de bloques electrnicos que necesitar


para esta seccin:
Multiprogramacin Ajustes de hardware: Ajuste:
Dispositivo PICmicro 16F1937
Fuente de alimentacin 13.5V
SW1 (rpido / lento) N/A
SW2 (RC / XT) XT
XTAL 19 660 800 Hz
PORTA Pantalla de 7 segmentos
PORTB Pantalla de 7 segmentos
PORTC N/A
PORTD N/A
Puerta N/A
Puente de seleccin LVP PUERTO DE E / S
J12-14 (ICD2-USB) USB
J29 (PSU-USB) PSU

Pantallas de 7 segmentos
La pantalla de 7 segmentos es una pantalla numrica bsica que utiliza 7 barras
de diodos emisores de luz (LED) dispuestos de una manera que se puede utilizar
muestran los nmeros 0-9. (En realidad 8 segmentos si cuenta el punto decimal,
pero el nombre genrico es "visualizacin de 7 segmentos".)

Una pantalla cuadrada de siete segmentos es para E-bloques est


disponible. Contiene cuatro pantallas separadas alojadas, aunque slo puede
utilizar una sola pantalla de 7 segmentos si lo desea. El componente utiliza dos
puertos E-blocks: uno para los nodos (4 lneas, uno para cada pantalla de 7
segmentos) y otro para los ctodos (8 lneas, uno para cada segmento).

Flowcode tiene componentes tanto para una pantalla cuadrada de 7 segmentos


como para una nica pantalla de 7 segmentos.

Uso de un solo dgito

Antes de poder usar la pantalla de 7 segmentos, debe agregar una a su proyecto.

Seleccione el botn 'Outputs' y haga clic en el componente '7 Segment Single' en


la barra de herramientas para agregar uno a su programa. Una pantalla de 7
segmentos aparecer ahora en el panel.
El nombre del componente seleccionado en el cuadro superior del panel de
propiedades le permite saber qu componente concreto est utilizando. De forma
predeterminada, la pantalla de 7 segmentos est conectada a los 8 pines del
puerto B y el pin 'comn' est conectado a '$ PORTA.0' (A0). Puede cambiar
esto, pero mantendremos las conexiones predeterminadas por ahora.

A diferencia de la pantalla LCD, el 7-segmento est listo para usar de inmediato,


as que permite sumergirse y mostrar nuestro primer nmero.

Arrastre un icono de "Macro de componentes" en el diagrama de flujo y abra el


cuadro de dilogo de macro.

Busque en la lista de macros disponibles y seleccione la macro 'SetDigit' en la


seccin 'led_7seg_single'.

La macro 'SetDigit' toma dos parmetros: 'DecimalPoint' y 'Digit'. Digit es el


nmero que deseamos mostrar, permite establecer esto para mostrar el nmero 6.
DecimalPoint determina si se muestra el punto decimal o no. Establezca este
valor en 0 para desactivar el punto decimal o establecerlo en 1 para mostrar /
activar el punto decimal (al igual que encender o apagar un LED). Establezca
este valor en 0 para ocultar el punto decimal.

Al ejecutar el programa, el nmero 6 debe aparecer en la pantalla de 7 segmentos


y el punto decimal no debe mostrarse.

Uso de la pantalla quad

Ahora vamos a probar la pantalla '7 Segment Quad'.

Seleccione el botn Outputs y haga clic en el componente '7 Segment Quad' en la


barra de herramientas para agregar uno a su programa. Una pantalla cuadrada
de 7 segmentos aparecer ahora en el panel.

De forma predeterminada, la pantalla quad de 7 segmentos est conectada a los 8


pines del puerto B, y los pines "comunes" estn configurados en el puerto A 0-3
(A0-A3). Puede cambiar esto, pero mantendremos las conexiones
predeterminadas por ahora.

Arrastre un icono de "Macro de componentes" en el diagrama de flujo y abra el


cuadro de dilogo de macro.

Desplcese por la lista de macros disponibles para ese componente


'led_7seg_quad' y seleccione la macro 'ShowDigit'.

La macro 'ShowDigit' para la pantalla 7 Segment Quad es la misma que la


utilizada para la visualizacin 7 Segment Single, pero con un parmetro adicional
aadido - Digit. El dgito se utiliza para seleccionar cul de las 4 pantallas de 7
segmentos muestra el valor. Estos estn numerados 0-3 de izquierda a derecha.

Vamos a mostrar 1234 en la pantalla cuadrada de 7 segmentos. Introduzca 0,1,0


en el cuadro de parmetros y haga clic en 'Aceptar'. Esto mostrar el nmero 1 en
la pantalla de 7 segmentos ms a la izquierda. A continuacin, aadir 3 ms
macros con 1,2,0 2,3,0 y 3,4,0 en respectivamente.

Ahora ejecutar el programa, esto funciona bien en la simulacin, pero qu pasa


con el programa en el hardware? Que pas? Enviamos el dgito correcto a los
cuatro segmentos de 7, pero slo el ltimo est encendido.

Si usted era observador, o tena el programa que funciona lentamente usted pudo
haber visto lo que sucedi. Bsicamente, la primera pantalla de 7 segmentos se
encendi, luego la siguiente, luego la siguiente y luego la ltima. El problema es
que a diferencia de la pantalla LCD no podemos encender ms de una pantalla de
7 segmentos en un momento dado.

Cmo podemos evitar esto? Lo averiguaremos en la siguiente pgina, pero por


qu no pensar por un minuto cmo podra resolver el problema?

Cmo obtener el tiempo adecuado


El problema que enfrentamos es que slo podemos encender una pantalla de 7
segmentos a la vez. qu hacemos?

La respuesta es sencilla y compleja al mismo tiempo. El dato directo es que si


seguimos mostrando los dgitos una y otra vez, veremos que los cuatro se
iluminan a medida que se van y se apagan tan rpido que parecen estar en todo el
tiempo a nuestros ojos. Esta tcnica se conoce como "multiplexacin".

Mediante la adicin de un bucle podemos hacer que las cuatro pantallas de 7


segmentos se iluminen.
La complejidad viene cuando necesitamos calcular los valores que se van a
mostrar, o ejecutar otra parte del programa. Si el tiempo transcurrido entre la
actualizacin de las diferentes pantallas de 7 segmentos es demasiado grande, la
pantalla se detendr o se disgregar. Entonces, cmo podemos evitar eso?

Lo que hacemos es sacar los iconos de la pantalla del programa principal y en


una rutina separada que se ejecuta con frecuencia en otro lugar. Lo hacemos con
la interrupcin del temporizador. La alarma del temporizador se activa por el
reloj a intervalos regulares. A continuacin, interrumpe el programa que est
ejecutando el PICmicro y ejecuta una macro independiente. Una vez que la
macro de interrupcin ha terminado, el programa vuelve a lo que estaba
haciendo.

Aada un icono de interrupcin a la parte superior del diagrama de flujo y haga


doble clic en l para abrir la pgina de propiedades. Seleccione 'Timer 0'
Overflow Interrupt y luego haga clic en el botn Properties. Haga los ajustes que
puede ver aqu:

La cifra clave aqu es la que se encuentra en la parte inferior del cuadro de


dilogo marcada 'Frecuencia de interrupcin:'. La frecuencia de interrupcin es el
nmero de veces por segundo que se interrumpe el programa principal y se
ejecuta la macro de interrupcin. El valor de frecuencia de interrupcin no
importa demasiado para este ejemplo, pero apunte a una cifra relativamente baja
por ahora, digamos 150 veces por segundo.

El 'Prescaler' es un contador digital dentro del dispositivo PICmicro. Recoge la


seal de reloj fundamental y cuenta para un nmero de ciclos. La interrupcin se
activa cuando el contador de prescaler alcanza la cifra preprogramada. Trate de
cambiar el valor de prescaler y la velocidad del reloj para ver cmo interactan
para dar la frecuencia de interrupcin. La ventana de dilogo de interrupcin
calcula esto para usted.

Cierre la ventana de dilogo de prescaler y en la ventana de interrupcin haga


clic en el botn 'Create New Macro ...'. Introduzca "REFRESH" en el cuadro de
texto marcado "Nombre de la nueva macro" haga clic en Aceptar. Cada vez que
hay una interrupcin, la macro 'REFRESH' se ejecutar. Ahora haga clic en el
botn 'OK & Editar Macro' esto nos permitir poner algn cdigo en l. La
macro 'REFRESH' ahora estar abierta y lista para usar.

Hay un truco ms para ensearte, antes de terminar esta parte del


curso. Podramos simplemente mostrar '1234' o algn otro nmero
predeterminado. Pero entonces no podramos cambiar la exhibicin sin reescribir
el programa. As que en su lugar vamos a utilizar un montn de variables, Digit1,
Digit2, Digit3 y Digit4. Ahora si queremos cambiar los valores podemos cambiar
las variables en el programa principal, y la prxima vez que se active la
interrupcin, los nuevos valores aparecern en la pantalla de 7 segmentos.
Para hacer uso del truco de interrupcin del temporizador simplemente
necesitamos crear un programa que coloque los valores en las variables. Aqu
puede ver la rutina de interrupcin y el programa principal:
En este ejemplo, slo agregamos los valores a las variables y no hacemos nada en
el bucle principal, pero si tuviramos un programa que chugging actualizando las
variables cuando sea necesario, seran mostradas automticamente por la
interrupcin del temporizador la prxima vez que se active.

Esto puede parecer una manera larga y compleja de hacer las cosas, pero en
realidad es una manera muy elegante de asegurarse de que las rutinas se realicen
a intervalos regulares y que realmente puede ayudar a simplificar sus programas.

Macro de software

Tpicos cubiertos

Macro de software
1. Configurar el equipo
2. Izquierda o
derecha?
3. Crear nuevas macros
4. Macros ms
eficientes
5. Otras funciones de
macro

Configurar el equipo

El siguiente diagrama muestra el equipo de bloques electrnicos que necesitar


para esta seccin:

Multiprogramacin Ajustes de hardware: Ajuste:


Dispositivo PICmicro 16F1937
Fuente de alimentacin 13.5V
SW1 (rpido / lento) N/A
SW2 (RC / XT) XT
XTAL 19 660 800 Hz
PORTA Tablero del interruptor
PORTB Junta LED
PORTC N/A
PORTD N/A
Puerta N/A
Puente de seleccin LVP PUERTO DE E / S
J12-14 (ICD2-USB) USB
J29 (PSU-USB) PSU

Izquierda o derecha

Vamos a modificar el diagrama de flujo que ha desarrollado para los indicadores


de coche. Recuerda esto?
Una gran parte del diagrama de flujo se utiliza para hacer que el indicador
izquierdo o derecho parpadee. La nica diferencia entre estas dos operaciones es
el nmero que se enva al puerto de salida.

Vamos a crear una macro que genere cualquier nmero que le damos, se detiene,
luego sale a cero y se detiene de nuevo.

Crear nuevas macros

En el men seleccione "Macro" y haga clic en "Nuevo" (Macro> Nuevo). En el


cuadro de texto "Nombre de la nueva macro:" escriba "LEFT". Este es el nombre
de la nueva macro. Debajo introduzca la descripcin como "Rutina de flash
izquierda". Debera tener una ventana de dilogo que se vea as:
Seleccione Aceptar. No se preocupe por todos los otros cuadros de texto en la
ventana de dilogo de macro por ahora.

La macro ahora debe mostrar en la vista principal. Si no es as, seleccione


'Macro' en el men y seleccione 'Mostrar como diagrama de flujo' y luego haga
clic en 'LEFT' en el submen (Macro> Mostrar como diagrama de flujo>
IZQUIERDA). Desde el diagrama de flujo principal, corte los iconos de la rama
'S' del primer cuadro de decisin y pguelos en la macro 'IZQUIERDA'. Debera
tener una macro que se vea as:

De forma similar configurar otra nueva macro llamada "RIGHT" con una
descripcin "Right flash rutina". Desde el diagrama de flujo principal, corte los
iconos de la rama S de la segunda casilla de decisin y colquelos en la macro
'DERECHA'.

En el diagrama de flujo principal, inserte un icono "Macro" en cada rama "S" de


cada icono de la Decisin. Haga doble clic en cada icono para configurarlos para
que llamen respectivamente a las macros 'IZQUIERDA' y 'DERECHA'. Usted
debe tener un diagrama de flujo que se parece a esto:
Macros ms eficientes

1. Si ejecuta el programa descubrir que tiene mucho el mismo efecto que


antes. Sin embargo, ahora hemos creado dos macros que podramos usar
en otros lugares de nuestro programa. Sin embargo, es posible utilizar otra
tcnica para que podamos reducir el nmero de macros a slo uno que
tambin sera an ms flexible.
2. Cree una nueva macro llamada "FLASH". Pasa el ratn sobre
'Parmetros' aparecer un botn, haz clic en l y luego en 'Aadir
nuevo'. Agregue una variable llamada 'whichone', gurdela como un 'Byte'
y seleccione OK. Debera tener una ventana de dilogo Macro que se vea
as:

3. Primero, cree un cono de Salida en su nueva macro 'FLASH', haga doble


clic en este cono de Salida para acceder a las propiedades. Primero
tenemos que cambiar la salida al puerto B, luego tenemos que aadir
nuestra nueva variable local, Flowcode sabe que la nueva macro 'FLASH'
toma un parmetro que se pasa a ella, se puede ver esto demostrado al
hacer clic en el y luego haga clic en el botn "Locales". Haga doble clic en
el parmetro 'whichone' para insertarlo.
4. A continuacin, inserte un retardo de 200 ms, un icono de salida que enva
0 al puerto B y otro retardo de 200 ms. Usted debe terminar con esto:
5. En el organigrama principal haga doble clic en el icono Macro que llama a
la macro 'IZQUIERDA'. En el cuadro de dilogo 'Macro:' seleccione
FLASH. debajo del cuadro de dilogo 'Macro:' ver que Flowcode ha
reconocido que esto necesita un parmetro y el cuadro de dilogo
'parameters:' est habilitado para permitirle ingresar el
parmetro. Introduzca el nmero '1':
6. Similarmente, para el cono Macro 'RIGHT' llama a la macro 'FLASH' con
un parmetro de '2'. Todo su diagrama de flujo debe verse ahora como el
de abajo. Ahora tiene la misma funcionalidad que el programa anterior,
pero slo ha utilizado una macro. Eso no es demasiado importante en un
pequeo programa como este, pero en programas posteriores apreciar la
eficiencia de este mtodo de escribir programas.
Otras caractersticas de la macro

Mientras que usted estaba entrando en la macro 'FLASH' puede haber notado que
la ventana de dilogo macro tiene algunas otras caractersticas.

Variables locales

Todas las variables que ha utilizado hasta ahora son variables 'Globales'. La
palabra 'global' aqu se refiere al hecho de que estas variables estn disponibles
en todos los puntos de su programa. Con programas pequeos como los de este
curso esto no es un problema: hay ms de 500 bytes separados de RAM que
podemos usar en el 16F1937 y es poco probable que nos quedemos sin espacio
variable.

Sin embargo, con programas ms grandes - en particular los que usan cuerdas -
existe la posibilidad de que nos quedemos sin espacio variable. Debido a esto
Flowcode tiene una caracterstica que le permite declarar un nmero de variables
que slo estn disponibles mientras se ejecuta la macro. Estas son llamadas
variables 'Locales'. Flowcode crear estas variables en RAM al inicio de la
Macro y las eliminar al final de la macro: liberar espacio RAM para otras
partes del programa.

Usted no debera tener ningn problema real usando variables 'Locales' por lo
que no veremos un ejemplo aqu.

Valores devueltos

Las macros tienen otra caracterstica til que hace que su programa ms ntido y
que le ahorra la asignacin de una variable ms - el valor de retorno. Si usted
tiene una macro que est llevando a cabo operaciones matemticas, a menudo es
til tener la macro devolver un valor directamente al punto en el programa que
llam a la macro. Puede implementar esto con una "Variable global", asignando
el valor calculado a la variable global y luego recoger el resultado en su
programa principal. Sin embargo, devolver el valor en la macro es una opcin
ms limpia y significa que, se ahorra espacio RAM!

Cuerdas y memoria

Tpicos cubiertos

Cuerdas y memoria
1. Introduccin
2. Configurar el equipo
3. Explorando el teclado
4. Utilizacin de variables
de cadena
5. ASCII
6. Viendo ASCII
7. Cmo obtener un
nmero de telfono
8. Lo intentas
9. EEPROM
Introduccin

En esta seccin echaremos un vistazo a la funcin EEPROM (Memoria de lectura


de borrado elctricamente elctricamente) dentro de Flowcode.

En concreto, aprender:

Cmo usar el teclado para obtener un nmero o el equivalente ASCII


Cmo utilizar una cadena para almacenar una serie de nmeros
Cmo conseguir que los usuarios ingresen datos en un sistema E-blocks
Cmo escribir datos en la EEPROM
Cmo leer datos de la EEPROM

Configurar el equipo

El siguiente diagrama muestra el equipo de bloques electrnicos que necesitar


para esta seccin:
Multiprogramacin Ajustes de hardware: Ajuste:
Dispositivo PICmicro 16F1937
Fuente de alimentacin 13.5V
SW1 (rpido / lento) N/A
SW2 (RC / XT) XT
XTAL 19 660 800 Hz
PORTA N/A
PORTB Panel LCD
PORTC N/A
PORTD Teclado
Puerta N/A
Puente de seleccin LVP PUERTO DE E / S
J12-14 (ICD2-USB) USB
J29 (PSU-USB) PSU

Explorando el teclado
En esta seccin vamos a echar un vistazo a cmo funciona el teclado. Usar el
teclado para ingresar slo un dgito es bastante fcil, pero usarlo para ingresar
nmeros mayores de 10 introduce algunas complejidades. Primero lo bsico sin
embargo:

1. Inicie un nuevo diagrama de flujo utilizando un dispositivo 16F1937.


2. En su diagrama de flujo, coloque un componente de teclado y una pantalla
LCD. Conecte el teclado al puerto D y la pantalla al puerto B.
3. Seleccione 'Editar' y luego haga clic en 'Variables ...' en el men (Editar>
Variables ...) y asigne una nueva variable de byte llamada "clave".
4. Ensamble el siguiente diagrama de flujo:

En el orden de los iconos de arriba a abajo se explica lo siguiente: inicie la


pantalla LCD, un bucle interminable, ajuste el LCD 'Cursor' a '0,0' (arriba a la
izquierda), llame a la macro 'GetKeypadNumber' y coloque el resultado en el
variable 'clave'. Por ltimo, muestre la variable 'key' en la pantalla LCD
utilizando la macro 'PrintNumber' de la pantalla LCD.

Si ejecuta el programa ver que para comenzar con la pantalla LCD aparece el
nmero 255. Esto es lo que el teclado regresa cuando no hay ningn botn
presionado. Cuando pulse una tecla, la pantalla mostrar el nmero de la tecla
pulsada. Sin embargo, notar que no borra todo el nmero antiguo. Para ello,
ingrese una nueva macro de Componentes LCD con la funcin 'Borrar' despus
de la macro 'Cursor 0,0' y ver slo el nmero presionado.

En el teclado estn los nmeros 0 a 9, as como las teclas # y *. Se asignan los


nmeros 10 y 11. Puede utilizar las teclas # y * como caracteres de control para
permitir que los humanos indiquen que el nmero est completo: un poco como
la tecla 'Enter' en el teclado del ordenador.

Para entender cmo puede utilizar el teclado para ingresar nmeros ms grandes,
necesita aprender algunos conceptos nuevos: qu es ASCII y cmo funcionan las
cuerdas.

Utilizacin de variables de cadena

Las cadenas son colecciones de variables Byte. Una cadena puede usarse para
almacenar una secuencia de nmeros o una secuencia de letras. Cuando declara
una cadena de una cierta longitud, realmente declara una matriz de variables Byte
donde el nmero de bytes corresponde a la longitud de la cadena. Cada carcter
de la cadena que declara se almacena como un valor de 8 bits en un byte
separado en la memoria RAM. Por ejemplo: si declara esto: text [4], entonces el
texto de la variable de cadena 'text' puede tener 4 caracteres. De hecho esta
variable de cadena podra ser usada para almacenar la palabra 'JOHN' en.

Si no declara un tamao al lado del nombre de su variable de cadena, Flowcode


lo establecer en el tamao predeterminado de 20. Tenga cuidado con el mximo
de 512 variables de 8 bits que se pueden almacenar en el PIC16F1937.

Matrices
Es posible que haya encontrado variables de matriz antes. En Flowcode las
cadenas y matrices son equivalentes. Las matrices son 2 o ms variables con el
mismo nombre y un 'nmero de miembro' distinto entre llaves cuadradas. por
ejemplo, si declara una cadena como: MY_ARRAY [8], se declaran a la vez 8
variables diferentes de 8 bits. Todos ellos pueden ser abordados por separado
agregando el nmero de miembro correcto entre llaves cuadradas: en este caso
MY_ARRAY [0] a MY_ARRAY [7]. Las cadenas / matrices se utilizan en los
casos en que se necesitan varias variables similares.

ASCII

Cuando las cadenas se utilizan para almacenar una secuencia de letras, entonces
se representarn en formato "ASCII". ASCII significa American Standard Code
for Information Interchange y es un estndar internacionalmente reconocido para
usar nmeros para representar letras.

Aunque cada letra de la cadena est representada por un byte de 8 bits, de hecho
slo 7 de los bits se utilizan con el bit de repuesto que queda como 0. Puede
buscar los nmeros correspondientes para cada carcter en una tabla ASCII a
continuacin.
La siguiente tabla muestra los caracteres o smbolos ASCII y sus equivalentes
binario, decimal y hex.
Binari Di Malefic Smbo Binari Dic Malefic Smbol Binari Di Malefic Smbo
o c io lo o io o o c io lo
0010 32 20 (SP) 0100 64 40 @ 0110 96 60 ``
0000 0000 0000
0010 33 21 ! 0100 sesent 41 UN 0110 97 61 un
0001 0001 a y 0001
0010 34 22 " cinco 0110 98 62 segund
0010 0100 66 42 segundo 0010 o
0010 35 23 # 0010 0110 99 63 do
0011 0100 67 43 do 0011
0010 36 24 ps 0011 0110 10 64 re
0100 0100 68 44 re 0100 0
0010 37 25 % 0100 0110 10 sesenta mi
0101 0100 69 45 mi 0101 1 y cinco
0010 38 26 & 0101 0110 10 66 F
0110 0100 70 46 F 0110 2
0010 39 27 ' 0110 0110 10 67 gramo
0111 0100 71 47 GRAM 0111 3
0010 40 28 ( 0111 O 0110 10 68 marido
1000 0100 72 48 MARID 1000 4
0010 41 29 ) 1000 O 0110 10 69 yo
1001 0100 73 49 yo 1001 5
0010 42 2A * 1001 0110 10 6A j
1010 0100 74 4A J 1010 6
0010 43 2B + 1010 0110 10 6B k
1011 0100 75 4B K 1011 7
0010 44 2C , 1011 0110 10 6C l
1100 0100 76 4C L 1100 8
0010 45 2D - 1100 0110 10 6D metro
1101 0100 77 4D METR 1101 9
0010 46 2E . 1101 O 0110 11 6E norte
1110 0100 78 4E norte 1110 0
0010 47 2F / 1110 0110 11 6F o
1111 0100 79 4F O 1111 1
0011 48 30 0 1111 0111 11 70 pag
0000 0101 80 50 PAG 0000 2
0011 49 31 1 0000 0111 11 71 q
0001 0101 81 51 Q 0001 3
0011 50 32 2 0001 0111 11 72 r
0010 0101 82 52 R 0010 4
0011 51 33 3 0010 0111 11 73 s
0011 0101 83 53 S 0011 5
0011 52 34 4 0011 0111 11 74 t
0100 0101 84 54 T 0100 6
0011 53 35 5 0100 0111 11 75 usted
0101 0101 85 55 Tu 0101 7
0011 54 36 6 0101 0111 11 76 v
0110 0101 86 56 V 0110 8
0011 55 37 7 0110 0111 11 77 w
0111 0101 87 57 W 0111 9
0011 56 38 8 0111 0111 12 78 x
1000 0101 88 58 x 1000 0
0011 57 39 9 1000 0111 12 79 y
1001 0101 89 59 Y 1001 1
0011 58 3A : 1001 0111 12 7A z
1010 0101 90 5A Z 1010 2
0011 59 3B ; 1010 0111 12 7B {
1011 0101 91 5B [ 1011 3
0011 60 3C < 1011 0111 12 7C |
1100 0101 92 5C \ 1100 4
0011 61 3D = 1100 0111 12 7D }
1101 0101 93 5D ] 1101 5
0011 62 3E > 1101 0111 12 7E ~
1110 0101 94 5E ^ 1110 6
0011 63 3F ? 1110
1111 0101 95 5F _
1111

Viendo ASCII

1. En su programa anterior, modifique la macro del componente del teclado


para utilizar la macro 'GetKeypadASCII' en lugar de la macro
'GetKeypadNumber'. Esto pondr un nmero ASCII en la variable 'clave'.
2. Vuelva a ejecutar su programa. Observar que el ASCII para la clave '1' es
decimal 49, '2' es 50 etc. Ninguna tecla presionada todava devuelve el
valor 255.
3. En la macro Componente LCD, modifique la macro 'PrintNumber' en
'PrintASCII'.
4. Vuelva a ejecutar el programa. Ver que la pantalla muestra de nuevo los
nmeros '1' a '9', '*' y '#'. La tecla no presionada muestra un 'y' con un
umlaut - el conjunto de caracteres LCD incluye muchos caracteres que no
slo ASCII - ver la hoja de datos LCD para ms detalles.

As que lo interesante aqu es que el sistema ASCII le permite almacenar


nmeros como el equivalente ASCII y luego mostrar entonces como el nmero
equivalente. Aqu hay un estndar que podemos usar para almacenar nmeros y
letras al mismo tiempo.

Lo que tenemos que hacer a continuacin es implementar un sistema que nos


permita reunir una serie de nmeros desde el teclado.

Cmo obtener un nmero de telfono

Un buen ejemplo de la recopilacin de nmeros largos es conseguir un nmero


de varios dgitos. Puede ser un nmero de telfono, una contrasea o un nmero
entre 0 y 1023.

Echa un vistazo a la siguiente macro. Aqu est una explicacin:

Las primeras 3 macros de componentes configuran la pantalla LCD. Luego hay


un icono de clculo que configura las variables utilizadas en el programa. La
variable 'KEY' se utiliza para almacenar la tecla pulsada en ASCII. La cadena
NUMARRAY [10] se utiliza para almacenar los nmeros - un mximo de 11
dgitos. A continuacin hay 'Connection Point A', seguido por la macro del
teclado que asigna la variable 'KEY' a la entrada del teclado.

El primer cuadro de decisin detecta la condicin de que no se pulsa ninguna


tecla. Esto va a un punto al final del programa donde la variable 'OLD_KEY' est
asignada a la entrada. 'OLD_KEY' se utiliza como indicador para permitirnos
monitorear si la entrada ha cambiado. Esto ayuda a desbancar la entrada para que
no obtengamos, digamos, 6 dgitos 1 cuando presionamos la tecla '1'. El siguiente
cuadro de decisin detecta si la nueva entrada es la misma que la entrada anterior
(KEY = OLD_KEY) y devuelve el programa al punto A si el nmero del teclado
es el mismo.
La siguiente casilla de decisin busca ASCII 42 - la tecla '*'. Esto se utiliza para
denotar una operacin de cancelacin. Si se pulsa la tecla '*', el primer byte de la
matriz se establece en 0 y la macro se enva al punto final.

La siguiente casilla de decisin busca ASCII 35 - la tecla '#'. Esto se utiliza para
denotar una operacin Enter. Si se pulsa la tecla '#', el ltimo byte de la matriz se
pone a 0 y el programa se enruta al punto final.

Durante el programa usamos la variable 'PTR' para permitirnos rastrear qu


dgito en la cuerda est siendo ingresado. La cadena tiene 10 caracteres: 0 a 9. La
variable 'PTR' debe incrementarse cada vez que se introduce un dgito,
permitiendo que cada dgito se almacene en un carcter separado de la cadena. El
siguiente cuadro de Decisin comprueba si este es el primer carcter o no. si es el
primer carcter, la pantalla se borra.

A continuacin, un icono de clculo declara: NUMARRAY [PTR] = KEY. Esto


asigna al carcter actual de la cadena el valor introducido en el teclado.

Esto es seguido por un icono de Clculo donde el valor 'PTR' se incrementa en 1:


esto significa que el siguiente carcter introducido en el teclado ser almacenado
en el carcter subsiguiente de la matriz.

El siguiente icono del bucle principal muestra la tecla pulsada en la pantalla LCD
para que el usuario tenga una confirmacin visual de que el sistema ha detectado
la pulsacin de las teclas.

Al final del bucle principal almacenamos la tecla presionada en 'OLD_KEY'


como se ha descrito anteriormente, luego esperamos 100ms y volvemos al
principio de la macro.
Lo intentas
Habiendo descrito cmo funciona esto; ahora es tu turno.

En esta etapa, esperamos tener suficiente conocimiento acerca de cmo funciona


Flowcode para que no necesitamos decirle qu introducir en un icono por base de
iconos. Usted puede luchar un poco con este primer ejemplo - pero usted
aprender ms en el proceso.

EEPROM

Este es un punto conveniente para introducir otra instalacin que el PICmicro


puede ofrecerle: Electrically Erasable Read Only Memory, o EEPROM. Todos
los dispositivos PICmicro tienen memoria de slo lectura (ROM), memoria de
acceso aleatorio (RAM) y memoria de slo lectura elctricamente borrable
(EEPROM). ROM es donde se almacena su programa y no se puede alterar
mientras se ejecuta el programa. RAM es donde se almacenan sus variables y
esto se puede escribir y leer a medida que su programa se ejecuta, pero el
contenido se pierde tan pronto como la energa se elimina del chip. La EEPROM
se puede escribir y leer a medida que se ejecuta el programa: pero el contenido se
conserva cuando se quita la alimentacin. Esto significa que el contenido estar
disponible de nuevo la prxima vez que utilice el dispositivo. La EEPROM es
til en muchas situaciones en las que los ajustes que un usuario hace necesitan
ser preservados para la prxima vez que se use el sistema.

Con referencia al ejemplo anterior:

1. Agregue un componente EEPROM desde el men Almacenamiento al


Panel del sistema.
2. Agregue una nueva macro de componentes al programa justo despus de
que la pantalla LCD se actualice con la tecla que el usuario presiona. En
esta macro Componente, utilice la macro EEPROM 'Escribir' utilizando
las variables 'PTR' como ubicacin de la memoria y KEY como
datos. Puedes ver la ventana de abajo.
3. Simule su programa. Si observa el componente EEPROM Flowcode,
deber ver que al introducir los nmeros se almacenan en la memoria
EEPROM.
La lectura de datos desde la EEPROM es muy similar a la escritura de datos:
simplemente especifique una variable en la que desee colocar los datos,
especifique la direccin de la que desea leerla.

Una Hi-Fi Simple

Tpicos cubiertos

Una Hi-Fi Simple


1. Introduccin
2. Configurar el equipo
3. Interrupciones del puerto
B
4. Configuracin de la
pantalla LCD
5. Uso del ADC
6. ltimos retoques

Introduccin

Hasta ahora, cuando se han incorporado datos del mundo exterior a sus
programas, los datos han sido lgico-digital 0 o lgica 1. Sin embargo, la
mayora de los dispositivos PICmicro tambin tienen la posibilidad de tomar un
voltaje de 0 V a la tensin de alimentacin y medir voltaje. Este proceso se lleva
a cabo dentro del dispositivo PICmicro mediante el mdulo ADC (Analogue to
Digital Converter) del dispositivo PICmicro. En esta seccin aprender acerca de
las funciones ADC del PICmicro y cmo controlar el ADC usando Flowcode.

En esta seccin haremos un sistema completo para controlar una pequea Hi-
Fi. Esto introducir varios componentes nuevos.

Concretamente, en esta seccin aprender:

Cmo utilizar la interrupcin de cambio de puerto B


Cmo utilizar el ADC
Cmo dividir el desarrollo del proyecto en secciones

Configurar el equipo

El siguiente diagrama muestra el equipo de bloques electrnicos que necesitar


para esta seccin:
Multiprogramacin Ajustes de hardware: Ajuste:
Dispositivo PICmicro 16F1937
Fuente de alimentacin 13.5V
SW1 (rpido / lento) N/A
SW2 (RC / XT) XT
XTAL 19 660 800 Hz
PORTA Sensor Board
PORTB Tablero del interruptor
PORTC Panel LCD
PORTD N/A
Puerta N/A
Puente de seleccin LVP PUERTO DE E / S
J12-14 (ICD2-USB) USB
J29 (PSU-USB) PSU

Interrupciones del puerto B


Hay dos interrupciones ms comunes que debe comprender: Puerto B bit 0 y
Puerto B cambio.
La interrupcin del bit B del puerto B activar una macro dada cada vez que la
lnea RB0 del dispositivo PICmicro pase a una lgica 1 o 5V. La interrupcin de
cambio del puerto B se dispara cada vez que hay un cambio de estado en los 4
bits ms altos del puerto B: bits RB4, 5, 6, 7. La interrupcin del bit 0 del puerto
B es bastante directa, pero el cambio del puerto B es un poco ms difcil de
manejar.

Aqu vamos a configurar parte de un sistema Hi-Fi que tiene 4 canales de radio
predefinidos - canales 1 a 4. Cada uno se selecciona mediante el uso de uno de
los 4 conmutadores push-to-make conectados al puerto B. La idea detrs de
nuestro sistema ser que cada vez que se presiona un interruptor la interrupcin
de cambio de puerto B activar una macro que altera el nmero de canal.

Siga las instrucciones a continuacin para configurar el programa.

1. Inicie un nuevo diagrama de flujo con un dispositivo 16F1937.


2. Aadir un icono de interrupcin al programa
3. Agregue un bucle al programa. No ponga nada en el circuito todava. Para
empezar con el bucle slo mantendr el programa en marcha: el trabajo
real se har por la rutina de interrupcin que haremos.
4. Aadir 4 pulsar para hacer los interruptores conectados a los pins B4, 5, 6,
7. Etiquetarlos '1' a '4'
5. Agregue dos nuevas variables de byte: 'channel' y 'switches'
6. Agregue una nueva macro llamada 'Chandet'
7. Monte el programa que se muestra a la derecha en la macro 'Chandet'.
8. Haga doble clic en el icono de interrupcin en el programa principal. En el
cuadro 'Interrupcin activada:' seleccione 'PORT'. En el cuadro 'Llamar
macro:' seleccione 'Chandet' para que llame a la macro llamada 'Chandet'.
9. Seleccione 'Build' y luego haga clic en 'Project Options' (Build> Project
Options) y establezca la velocidad de simulacin en '1000'. El valor real no
es importante: un ajuste distinto de 'Lo ms rpido posible' le permitir ver
los valores de las variables en el sistema como su programa simula.
10. Ejecute el programa y compruebe que a la variable 'canal' se le asigna un
nmero de canal al presionar un interruptor.

Aqu est una explicacin de cmo funciona la macro 'Chandet':

El primer icono asigna el valor de los 4 bits superiores del puerto B a los
conmutadores variables. Utilice el enmascaramiento aqu para obtener el estado
de slo los 4 primeros bits. La dificultad (o ventaja) de la interrupcin de cambio
del puerto B es que se activa en un cambio de estado en el puerto B. Esto
significa que se activa cuando se pulsa el interruptor y tambin cuando se
suelta. Debido a esto usted necesita filtrar hacia fuera todos los lanzamientos del
interruptor: queremos detectar solamente las prensas del interruptor. El primer
cuadro de decisin detecta un valor de 0 para los interruptores de variable. Si se
detecta un 0, el punto de conexin desva el programa al final de la macro de
interrupcin.

El siguiente cuadro de Decisin detecta un valor de 0x10 (16 decimal). Esto


corresponde al interruptor en RB4 que est siendo presionado. Si se presiona
RB4, asignamos a la variable 'canal' un valor de 1.

El siguiente cuadro de Decisin detecta un valor de 0x20 (32 decimal). Esto


corresponde al interruptor en RB5 que est siendo presionado. Si se presiona
RB5, asignamos a la variable 'canal' un valor de 2.

Ahora debera ser capaz de averiguar cmo funciona el programa completo.

Configuracin de la pantalla LCD

El sistema Hi-Fi har uso de la pantalla LCD. Queremos que la pantalla muestre
el volumen y tambin el canal de radio. Posteriormente podremos mostrar datos
en el reproductor de CD, etc. Para hacer esto usaremos la primera lnea de la
pantalla para mostrar el volumen y la segunda lnea para mostrar el canal de
radio. En este programa separaremos todas las rutinas principales en macros
separadas para hacer la estructura del programa principal ms fcil de leer. Las
dos macros que configuraremos aqu inicializarn la pantalla y, a continuacin,
actualizarn la pantalla a medida que se ejecute el programa.

1. Agregue una pantalla LCD a su proyecto. Conctelo al puerto C.


2. Generar dos nuevas macros. Uno llamado 'updatedisplay' y el otro llamado
'initialisedisplay'
3. Desarrolle el siguiente programa en la macro 'initialisedisplay':
Debera tener una buena comprensin de lo que est sucediendo aqu. El primer
icono inicia la visualizacin, entonces el cursor se pone a 0,0 o la parte superior
izquierda. El tercer icono imprime "Volumen:" en la lnea superior y el siguiente
icono mueve el cursor a la segunda lnea. El ltimo icono imprime "Canal:" en la
lnea inferior.

4. Agregue algunas variables nuevas, una llamada 'volumen' establecida


como un 'Byte' y 'ADCreading' como un tipo 'Int'. Llegaremos a stos ms
tarde.
5. Desarrolle el siguiente programa en la macro 'updatedisplay':
Aqu el primer icono mueve el cursor a un punto despus de "Volumen:". Se
imprimen tres espacios en blanco para eliminar la configuracin de volumen
antiguo. Los dos iconos siguientes mueven el cursor de nuevo a la posicin
anterior e imprimen el valor de la variable 'volumen'. El cursor siguiente se
mueve a la lnea inferior de la pantalla despus de "Canal:", y el ltimo icono
imprime el volumen real.

6. Al programa principal agregue un icono de macro que llame a la macro


'initialisedisplay'.
7. A continuacin, agregue otro icono de interrupcin. Para demostrar que es
posible utilizar ms de un tipo de interrupcin en un solo programa
usaremos una interrupcin del temporizador para llamar a la macro
'updatedisplay'. Cambie las propiedades de la 'Interrupcin activada:' a
'Temporizador 0' ('TMR0'). Haga clic en el botn de propiedades y ajuste
el 'Clock Source Select' a 'Clock interno (CLKO)' y ajuste el 'Prescaler
Rate' a 1: 256 haciendo que el temporizador funcione a 75Hz con un
cristal de 19.6608MHz. Haga clic en Aceptar y, a continuacin, cambie las
propiedades de la macro 'Llamar a:' a 'updatedisplay' y, a continuacin,
vuelva a hacer clic en Aceptar. Su programa principal ahora debera verse
as:

8. Simule su programa. Tenga en cuenta que tanto la interrupcin de cambio


del puerto B como la interrupcin del temporizador simulan. Tendr que
esperar algn tiempo durante la simulacin antes de que se active la
interrupcin del temporizador. La frecuencia de interrupcin es de 75Hz y
en este tiempo el PICmicro puede ejecutar cientos de instrucciones.

Uso del ADC


Hasta ahora se han configurado dos interrupciones, y tres macros que se llaman
desde la rutina principal. En esta prxima parte del proyecto se configurar una
macro adicional que medir la seal en una entrada analgica.

1. Agregue un componente ADC al panel del proyecto. Altere la conexin


para que est conectada a ADC 1 - este es el potencimetro en la tarjeta
Sensor.
2. Agregue una nueva macro y llmela 'ADCmeasure'.
3. Agregue una macro de componente a la macro 'ADCmeasure'. Establecer a
'GetInt' para leer el valor del ADC en la variable "ADCreading" que
configur anteriormente.
4. Arrastre un icono de clculo en la macro e introduzca 'volume =
ADCreading / 10' en el campo Clculo.

Deberas tener algo como esto:

El proceso de muestreo del ADC es de dos etapas: muestre primero el valor y


luego lea el valor en una variable. El PICmicro que estamos usando aqu
realmente tiene hasta 8 entradas ADC - AN0 a AN8. Internamente, sin embargo,
el PICmicro slo tiene un convertidor analgico a digital. Cada una de las 8
entradas se puede conmutar al ADC mediante interruptores analgicos
internos. Esto le da una idea de por qu el proceso de obtener una entrada
analgica en su programa es un proceso de dos etapas: internamente Flowcode
configura el conmutador analgico para conectarse a la entrada pertinente,
entonces toma una lectura.

El ADC dentro del PICmicro tiene una resolucin de 10 bits. Esto significa que
para hacer uso del rango completo del ADC necesita usar una variable de tipo
Int: una variable de 16 bits. El valor que usted lee variar entre 0 y 1023. Sin
embargo, estamos acostumbrados a ver Volumen presentado como 0 a 10, o de 0
a 100. Debido a esto podemos dividir rpidamente la lectura ADC por 10 para
obtener una escala de 0 a 102 como nuestra configuracin de volumen. Ahora
debera ser capaz de pensar en tcnicas de programacin para limitar el valor en
100.

ltimos retoques

Su sistema est casi completo.

1. En la rutina principal, arrastre un icono de Macro al bucle. En este icono


llame a la macro 'ADCmeasure'.

Su proyecto es ahora bastante funcional. Si lo simula, debe ver que al hacer clic
en un botn de canal, la pantalla LCD muestra el nmero de canal. Cuando
mueva el dial de volumen, deber ver el volumen que se muestra. Por supuesto
hay algunos pedacitos que faltan: usted no ha desarrollado el hardware y el
software para conectar con un sistema de radio para alterar realmente el canal, y
usted no ha hecho ningn uso de la variable del volumen para alterar la
amplificacin de la etapa de salida de su Hi -Fi. Sin embargo, ha completado una
parte significativa del proyecto de diseo global.

La siguiente imagen muestra todo el proyecto. Esperemos que en esta seccin


usted haya aprendido que es realmente til romper las etapas de su desarrollo en
varios programas individuales - cada uno en su propia macro. Esto le permite
crear y probar una parte del programa a la vez. Esto tambin hace que su
programa principal sea muy fcil de leer, aunque en este caso la legibilidad se ve
ligeramente comprometida por el uso de interrupciones: no es obvio para alguien
que no ha escrito el programa cmo se llama la macro 'Chandet', aunque los dos
interrumpir los iconos de macro en el programa principal dan una pista.
Introduccin a los proyectos PICmicro

El sistema E-blocks y Flowcode le permiten desarrollar rpidamente un sistema


basado en microcontroladores. Sin embargo, en algn momento usted querr
tomar esta etapa adicional y desarrollar un sistema totalmente funcional de su
cuenta. Esta seccin le proporciona la informacin de fondo para ayudarle a
hacer esto.

Mtodos de Construccin

Tpicos cubiertos

Mtodos de Construccin
1. Circuitos de
construccin con
PICmicro
2. Placa Prototipo
3. Tableros de
Prototipos E-blocks
4. Stripboard
5. Placa de circuito
impreso

Construccin de circuitos con PICmicros

Hemos estudiado cmo usar Flowcode para generar un diagrama de flujo.

Hemos quemado el programa resultante en un chip PICmicro, y lo probamos


usando la pizarra de desarrollo PICmicro.

Todo lo que queda ahora es construir un circuito con el chip PICmicro,


aadiendo entradas y salidas, y cualquier componente adicional necesario para
conectarlas al PICmicro.

Imagen cortesa de Max Horsey.

Puede crear circuitos de varias maneras:


Conecte los componentes en un tablero de prototipo.
Soldarlos sobre un pedazo de tablero, donde las tiras de cobre paralelas
actan como los alambres de conexin.
Soldar los componentes en una placa de circuito impreso (PCB), donde un
patrn de pistas de cobre actan como los cables para unirlos.
Uso de tableros E-blocks Patch y Prototyping.

Placa Prototipo

Un tablero del prototipo, tambin llamado un breadboard es la manera ms rpida


y ms barata de fijar un circuito. La imagen muestra un tipo de placa de
prototipo.

Debajo de las hileras de agujeros, los juegos de clips metlicos conectan entre s
los componentes utilizados en el circuito. La siguiente fotografa muestra la vista
posterior del tablero.

Clips de metal
Cuando usted empuja la pierna de un componente a travs de un agujero en el
tablero del prototipo, es agarrado por un clip de metal. Este clip se ejecuta debajo
de todos los agujeros en esa fila en el tablero. Cuando dos componentes estn
conectados a la misma fila, el clip los agarra y hace una conexin elctrica entre
ellos.

Ventajas

rpido para montar;


no hay problemas de salud y seguridad sobre la soldadura;
barato, porque los componentes pueden ser reutilizados.

Desventajas

no es mecnicamente robusto;
relativamente voluminoso
la disposicin de componentes finales puede ser difcil de relacionar con el

diagrama de circuito Tableros de Prototipos E-


blocks

El sistema E-blocks tiene dos placas diseadas para ayudar a los circuitos de
prototipado. Un prototipo de placa de bloqueo ( EB016 ), y un tablero de parche
( EB017 ). Las dos placas se pueden conectar directamente a una placa
programadora, oa cualquier otra placa E-blocks directamente oa travs de
conectores E-block.

Ambas tarjetas le permiten construir y probar los circuitos mientras que mantiene
la facilidad de programacin de los programadores de E-blocks.

Adems, tambin se pueden utilizar otros tableros E-blocks, como LED, switch,
tablas de 7 segmentos y LCD, lo que le permite desarrollar y probar su diseo sin
necesidad de construir estos componentes adicionales.

Para muchos proyectos, puede iniciar el desarrollo de un sistema que utilice E-


blocks y un prototipo de placa. Esto le permitir desarrollar un prototipo
completamente funcional. En las hojas de datos E-blocks encontrar todos los
diagramas de circuitos para cada placa E-block. Usted puede utilizar estos para
ayudarle a montar un diagrama de circuito del sistema, y de all desarrollar una
solucin independiente. Esta fotografa muestra un sistema de control de
volumen basado en E-bloques y un chip de control de volumen SPI en un tablero
de prototipo.
Stripboard

Stripboard consiste en tiras de cobre paralelas, pegadas a un rodapi


aislante. Cada tira tiene una serie de agujeros perforados a pesar de ello.

Para construir un circuito, cada componente se coloca en el tablero aislante, con


sus patas empujadas a travs de los agujeros apropiados. En el lado de la tira de
cobre del tablero, cada pata se suelda entonces a la tira de cobre. De esta manera,
la pierna est en contacto elctrico con cualquier otra cosa soldada a la misma
tira.

La fotografa muestra un circuito construido en el stripboard. La imagen de la


izquierda da la vista del lado de la placa de base aislante, con los componentes y
cualquier cableado adicional necesario. La imagen de la derecha muestra el lado
de la pista de cobre del tablero.
Imagen cortesa de Max Horsey.

Ventajas

mecnicamente robusto - un circuito permanente


plato base hecho.

Desventajas

precauciones de salud y seguridad necesarias al soldar


la mayora de los componentes no pueden ser reutilizados
difcil de crear un diseo compacto
la disposicin de componentes finales puede ser difcil de relacionar con el
diagrama de circuito.

. Placa de circuito impreso

Esto comienza la vida como una hoja de cobre, pegada a un tablero aislante.

Las reas del cobre se eliminan, usualmente mediante grabado qumico, para
dejar un patrn de tiras de cobre y pastillas que forman las vas de conexin
(cables) para el circuito.
El tablero se perfora entonces, de modo que los componentes se pueden montar
en el tablero aislante, con sus piernas empujadas a travs de los agujeros. Estos
pueden ser soldadas a las pistas de cobre en el otro lado.

Ventajas

mecnicamente robusto - un circuito permanente;


permite "produccin en masa", cuando se utilizan tcnicas fotogrficas
para marcar las reas de cobre para eliminar
paquetes de software estn disponibles para convertir el diagrama de
circuito en un diseo de PCB
generalmente produce la disposicin ms compacta para un circuito dado

Desventajas

un procesamiento considerable necesario para convertir la placa base en


blanco inicial en el diseo final
las precauciones de salud y seguridad necesarias al soldar, y cuando se
usan productos qumicos para grabar el cobre
la mayora de los componentes no pueden ser reutilizados
en general, la manera ms cara de producir un circuito "nico"

Cmo elegir una fuente de alimentacin


Tpicos cubiertos

Cmo elegir una fuente


de alimentacin
1. Cmo elegir una
fuente de
alimentacin
2. Bateras
3. Pilas Primarias
4. Bateras
recargables
5. Unidades de
alimentacin de
red

Cmo elegir una fuente de alimentacin

La primera decisin a tomar es la batera o la fuente de alimentacin?

Bateras de diversas formas, tamaos y Eliminador de Unidad de


tipos bateras alimentacin de
banco

Factores a considerar:

1. Tensin de alimentacin:

Los microcontroladores PICmicro requieren tensiones de alimentacin entre 2V


y 6V, dependiendo del PICmicro que est utilizando. Tanto las bateras como las
unidades de alimentacin de red proporcionan voltajes adecuados.

2. Demanda actual:

Esto depende principalmente de lo que el dispositivo de salida que utiliza en el


circuito. Unos pocos LEDs o una pantalla de 7 segmentos dibujan corrientes de
menos de 100mA. Por otro lado, un motor o un solenoide puede requerir unos
pocos amperios para operar. Muy pocas bateras son capaces de entregar
corrientes mayores de un amplificador. Incluso entonces, la vida de la batera
ser drsticamente acortada por una demanda actual. Las unidades de
alimentacin de red pueden proporcionar suficiente corriente, aunque no el tipo
"eliminador de batera".

3. Tamao fsico

Para equipos porttiles, el tamao y el peso podran ser consideraciones


importantes al elegir la fuente de alimentacin. Siempre que la demanda actual es
baja, las bateras son probablemente la mejor opcin aqu.

4. Costo

Las unidades de alimentacin de red tienen un alto costo inicial (compra), pero
bajos costos de operacin. Las bateras son una manera muy costosa de comprar
electricidad!

5. Disponibilidad de la red elctrica

Una pregunta crucial, que puede dejar la energa de la batera como la nica
opcin!

6. Salud y seguridad
El suministro elctrico es potencialmente peligroso. Dependiendo de quin
va a utilizar el sistema de control, y donde se va a utilizar, las bateras

pueden ser la mejor opcin. Bateras

Al elegir la energa de la batera, usted necesita considerar si utilizar bateras


recargables o no recargables (primarias).

Las bateras recargables son ms caras de comprar, y adems, usted necesitar un


cargador de batera. A largo plazo, deberan funcionar ms barato si se gestionan
correctamente. El proceso de recarga puede tardar varias horas, por lo que puede
ser necesario un conjunto de pilas de repuesto.

Las bateras no recargables son ms baratas de comprar, pero pueden resultar


ms caras en el largo plazo.

Pilas Primarias

Bateras de zinc-carbn Pilas alcalinas de manganeso

Una revisin:

Tipo de Batera Ventajas Desventajas


Menos caro Menor densidad de energa
*
Zinc-carbono Ampliamente disponible Curva de descarga en
'regular-duty' pendiente **
Rendimiento de alta
corriente alto
Prestaciones deficientes a
baja temperatura
Menos caro que el alcalino. Baja densidad de energa *
Mejor que zinc-carbono a alta corriente Curva de descarga en
Zinc-cloruro 'pesado' y baja temperatura pendiente **
ltimo 25-50% ms largo que zinc-
carbono
Coste moderado Curva de descarga en
pendiente **
Densidad de energa moderada *
Manganeso alcalino
Mejor que el cloruro de zinc a alta
'alcalino'
corriente y baja temperatura
Ampliamente disponible
ltimo ~ 8 veces ms que zinc-carbono
Mayor densidad de energa Costoso
Peso ligero
Oxhaluro de litio
Curva de descarga horizontal **
'litio'
Excelente rendimiento de temperatura
Larga vida til

* La densidad de energa es una medida de cunta energa se puede extraer de


una batera por unidad de peso o volumen de la batera. La densidad de energa
debe ser lo ms alta posible. ** La curva de descarga muestra cmo el voltaje de
la batera disminuye a medida que la batera envejece con el uso. La forma ideal
es una lnea horizontal

Resumen:

Olvdese de las bateras de zinc-carbono y cloruro de zinc!


Si su sistema de control impulsa un motor, debe usar pilas alcalinas o de
litio
Si se necesita una tensin de alimentacin constante, utilice una batera de
litio

Bateras recargables
Bateras de plomo cido Bateras de nquel-cadmio

Una revisin:

Tipo de Batera Ventajas Desventajas


Mxima capacidad de Daos si se deja descargar durante
Plomo-cido 'Gel- conduccin actual largos perodos
clula' Se puede dejar 'on-charge' Pesado y voluminoso
Alta capacidad de carga
Se puede recargar hasta 3000 Propenso a "efecto de memoria" *
veces
Nquel-cadmio 'Ni- Ampliamente disponible No es adecuado para aplicaciones
Cad' de corriente muy baja
Mayor densidad de energa que
el plomo-cido
Se puede recargar ~ 400 veces Necesita un cargador de batera
especfico para "NiMH"
Alta capacidad de conduccin Pierde carga rpidamente cuando no
actual est en uso
Nquel-hidruro
Mayor densidad de energa que
metlico 'NiMH'
'Ni-Cad's
Menos propenso a "efecto de
memoria"
Tiempo de recarga rpida
Alta densidad de energa Muy caro
Litio-ion 'Li-ion' Mantenga el cargo por meses Necesita un cargador de batera
especfico para "Li-ion"
No hay "efecto de memoria" *
Peso ligero

* Efecto de memoria - Puede ser daado por la carga repetida cuando no est
totalmente descargado.

Resumen:

En la mayora de los casos, las bateras de nquel-cadmio sern la opcin


Cuidado con el efecto de memoria! Si no puede confiar en descargar sus
bateras cada vez, antes de recargarlas, considere el uso de bateras de
iones de litio
Para perodos cortos de demanda de corriente muy alta, use bateras de
plomo-cido, a menos que el peso sea un problema.

Batera hacer y no hacer (para maximizar el rendimiento)

Hace

Condiciona adecuadamente la batera cuando es nueva (es decir, carga /


descarga total durante los primeros 3 ciclos)
Mantenga la batera y los terminales de contacto limpios
Evite exponer la batera a calor y fro extremos
Si es posible, evite dejar que la batera permanezca inactiva durante largos
perodos de tiempo
Carga y re-condicin de una batera despus de un perodo de inactividad
extendido

No s

Deje caer la batera


Cortocircuitar la batera
Incinerar una batera. Deshgase de l correctamente - puede contener
productos qumicos txicos

Unidades de alimentacin de red

stos vienen en todas las formas, tamaos y precios, del eliminador de la batera,
formado alrededor de un enchufe de la corriente 13A, vendiendo en algunas
libras, a la unidad sofisticada de la fuente de alimentacin del banco, costando
varios cientos de libras.
Jerga de la fuente de alimentacin:
Las unidades de alimentacin de red convierten la corriente alterna de corriente
alterna (corriente alterna) en un suministro de corriente continua de baja tensin
(corriente continua). Los siguientes diagramas muestran la diferencia entre estos.

Estas seales no se dibujan a escala. El suministro de electricidad de la red en el


Reino Unido alcanza un mximo de 340 voltios, mientras que estamos
considerando las fuentes de alimentacin de CC que producen alrededor de 6
voltios.

Al elegir una fuente de alimentacin, debe considerar:

la tensin de salida de CC que necesita


la corriente mxima que la fuente de alimentacin tendr que suministrar

Adems, hay otros factores:


Problema 1:
El voltaje de salida de CC todava puede contener una pequea fluctuacin de
corriente alterna, conocida como "voltaje ondulado". Esto se elimina mediante un
proceso llamado "suavizado". El factor 'rechazo de ondulacin' en la
especificacin de la fuente de alimentacin mide la eficacia del suavizado.
Problema 2:
El voltaje de suministro de electricidad de la red flucta en el transcurso del da,
dependiendo de qu hora del da es, cmo es el clima y qu est en la
televisin. Las fuentes de alimentacin dc simples pasan esta variacin en la
tensin de salida. Si la tensin de red flucta en un 10%, entonces la tensin de
salida de CC vara en un 10%. Una buena fuente de alimentacin ofrece una
"regulacin de lnea" que hace que el voltaje de salida sea independiente de las
variaciones en la tensin de alimentacin de red.
Problema 3:
Hemos observado anteriormente que el voltaje proporcionado por una batera
generalmente cae cuando est suministrando una corriente alta. Una tendencia
similar se observa en las unidades de suministro de energa de la red. Un circuito
adicional en la fuente de alimentacin puede reducir esto. Este proceso se llama
"regulacin de carga", o a veces "estabilizacin".
Rendimiento tpico:
Una fuente de alimentacin tpica tiene las siguientes cifras de rendimiento:
Voltaje de ondulacin - 10mV Regulacin de lnea - 0,1% Regulacin de carga -
0,1%

Voltaje de la ondulacin - 10mV Esto significa que encima de la tensin de


salida constante de la CC, podra haber un voltaje de la CA minsculo, 10mV de
alto.

Regulacin de la lnea - 0.1% La tensin de salida cambia en 0.01V cuando la


tensin de entrada ca cambia en 10V.

Regulacin de la carga - 0,1% Al cambiar de la corriente de salida mxima a la


corriente de salida, la tensin de salida cambia slo en un 0,1%

Cmo agregar entradas

Tpicos cubiertos

Cmo agregar entradas


1. Interruptores
2. Unidad de
conmutacin
3. Sensores
4. Unidades de deteccin

Interruptores

Uno de los dispositivos de entrada ms tiles! Puede utilizar un conmutador:

para iniciar una secuencia de eventos, como una pantalla de iluminacin


para iniciar, y luego detener, un programa de cronmetro
para introducir pulsos para un sistema de control para contar - el nmero
de vueltas completado por un corredor, por ejemplo
para actuar como un sensor para activar una alarma cuando se abre una
puerta.

Los interruptores se fabrican en una serie de formas diferentes. Aqu estn


algunas:

Actuacin momentnea (pulsador)

Por ejemplo, el interruptor en un timbre, que hace que algo suceda slo mientras
se est presionando.

Interruptor de palanca

Por ejemplo, un interruptor de luz, que se enciende (y permanece encendido) la


primera vez que se presiona, y se apaga la prxima vez.
Interruptor de inclinacin

Esto se activa cuando el cuerpo del interruptor est inclinado a un cierto ngulo,
o ms all.

interruptor giratorio

Por ejemplo, el selector en un sistema de alta fidelidad, que se utiliza para


cambiar entre la cinta de la cubierta, la cubierta de CD y el sintonizador de
radio. Para operar, gire una perilla conectada al eje del interruptor.

Interruptor de llave

Por ejemplo, el interruptor utilizado en un circuito de encendido de automvil,


que funciona slo cuando se inserta la llave correcta.

Interruptor magntico

Esto se activa cuando se coloca un imn junto al interruptor, y se apaga cuando el


imn se aleja de nuevo.
Unidad de conmutacin

Los sensores que acabamos de describir cambian su resistencia cuando se


producen cambios en condiciones externas tales como temperatura o nivel de
luz. Son dispositivos analgicos. Su resistencia copia la condicin externa.

Los conmutadores tambin cambian su resistencia, cuando se encienden y se


apagan. Un interruptor debe tener una resistencia enorme cuando est
apagado. Por eso no fluye corriente. Debe tener una pequea resistencia cuando
se enciende, para no afectar la corriente que fluye. Slo hay dos estados, dentro y
fuera. La resistencia del interruptor tiene solamente dos valores, enormes y
minsculos. Estos son dispositivos digitales.

Al igual que los sensores analgicos, normalmente se conectan en un circuito


divisor de tensin para convertir su cambio de resistencia en un cambio de
voltaje. La misma regla se aplica como en los divisores de voltaje para las
unidades de deteccin que acabamos de describir: la resistencia ms grande
obtiene la mayor parte del voltaje de la fuente de alimentacin.

En los circuitos de la unidad de conmutacin que siguen, la enorme resistencia


del interruptor, cuando est desconectado, ahoga absolutamente la resistencia de
la resistencia. El interruptor toma toda la tensin de alimentacin, y la resistencia
toma ninguno. Cuando se enciende, la resistencia de la resistencia ahoga la
pequea resistencia del interruptor. Ahora la resistencia toma toda la tensin de
alimentacin y el interruptor no toma ninguno.
En el primer ejemplo, esta unidad de conmutacin emite una baja tensin ("0
lgico") cuando no se presiona el interruptor pulsador, mostrado conectado a una
resistencia de 10 k ohmios. Cuando se pulsa, la unidad de conmutacin emite una
alta tensin ('lgica 1').

En el siguiente ejemplo, la unidad de conmutacin se pone al revs, y tambin lo


es el comportamiento resultante!

Este circuito emite la lgica 1 cuando el interruptor no est presionado y el 0


lgico cuando se presiona.

Sensores

Un sistema de control electrnico no sabe nada del mundo exterior a menos que
le demos sensores - sus ojos, odos, etc. El lenguaje que entiende es el de seales
elctricas, tensiones y corrientes.
Un sensor tiene que cambiar los cambios en el mundo exterior, tales como nivel
de luz, temperatura, nivel de sonido, humedad, presin, etc., en seales elctricas
cambiantes. Se necesita un tipo diferente de sensor para cada una de estas tareas.

stos son algunos de ellos.

Sensor de luz:

La resistencia dependiente de la luz (LDR) - Su resistencia disminuye cuando


una luz ms brillante brilla sobre ella. Sin embargo, es relativamente lento
reaccionar ante los cambios en el nivel de luz.

El fotodiodo - Un componente que pasa una corriente elctrica slo cuando brilla
suficiente luz sobre ella. Reacciona mucho ms rpido que el LDR a los cambios
en el nivel de luz.

Sensor de temperatura:

El termistor - Hay dos versiones de termistor. Un tipo, llamado ntc (coeficiente


de temperatura negativo) tiene una resistencia que obtiene menos cuando su
temperatura sube. El otro tipo, ptc (coeficiente de temperatura positivo) tiene una
resistencia que se hace ms grande cuando la temperatura sube.

Sensor de sonido:

El micrfono - La forma comn de micrfono genera una tensin cuando capta


un sonido. Cuanto ms fuerte sea el sonido, mayor ser el voltaje!
Unidades de deteccin

Acabamos de ver que algunos sensores, como el termistor y el LDR, producen un


cambio de resistencia cuando cambian las condiciones en el mundo exterior.

Necesitamos convertir ese cambio de resistencia en un cambio de voltaje o


corriente para que el sistema de control electrnico lo entienda.

El divisor de voltaje es una forma de hacerlo. Consiste en dos resistencias


conectadas en serie (una despus de la otra), de modo que comparten la tensin
de alimentacin entre ellas.

El diagrama muestra un divisor de voltaje donde una resistencia es dos veces


mayor que la otra. Comparten el voltaje de la fuente de alimentacin 6V entre
ellos de tal manera que la resistencia 8kW toma el doble de voltaje que la
resistencia de 4k ohmios. La suma de los voltajes debe ser igual a la de la fuente
de alimentacin 6V, por supuesto.

Supongamos que la resistencia inferior es en realidad un termistor. Por lo tanto,


el smbolo diferente, el rectngulo con el palo de hockey a travs de l, en el
siguiente diagrama.
Como la suerte lo tendra, la resistencia del termistor es 8kW cuando su
temperatura es 100C! Esto significa que el voltaje a travs de l ser 4V, como
antes.

Supongamos que es un termistor ntc, y que su resistencia cae a 2kW cuando la


temperatura ha subido a 500C.

El voltaje a travs del termistor ahora ha cado a 2V. La resistencia del termistor
ahora es solamente mitad tan grande como la resistencia de 4k ohmios, y tan la
tensin a travs del termistor es solamente mitad que a travs de la resistencia
4kW.

En otras palabras, aqu tenemos un circuito que genera una tensin que cambia
con la temperatura. Justo lo que el sistema de control necesita para decirle cmo
es el clima en el mundo exterior!

Aqu hay ms unidades de deteccin:


Comportamiento de la unidad de deteccin

A. Temperatura Cada de la tensin de salida a medida que aumenta la


temperatura
B. Temperatura La tensin de salida aumenta a medida que aumenta la
temperatura
C. Luz La tensin de salida disminuye a medida que aumenta el nivel de luz
D. Luz La tensin de salida aumenta a medida que aumenta el nivel de luz

Darse cuenta:

el smbolo de un LDR
la resistencia fija en los circuitos anteriores ha sido reemplazada por una
resistencia variable (el smbolo con una flecha a travs de).

Acondicionamiento de entrada

Tpicos cubiertos

Acondicionamiento de entrada
1. Cambio de rebote
2. Interrupcin del rebote
3. Schmitt Trigger

Cambio de rebote
Los interruptores contienen dos contactos metlicos, hechos de latn. Cuando se
desconectan, estos contactos se mantienen separados, separados por un aislador -
aire. Para encender, estos contactos son abofeteados por algn mecanismo de
palanca, ayudado por un fuerte resorte. Ahora, los metales son elsticos. Cuando
los contactos se golpean entre s, se deshacen, se golpean de nuevo y pueden
continuar hacindolo varias veces antes de descansar en contacto. Todo esto
sucede muy rpidamente. Normalmente no lo notamos, y no causa ningn
problema.

Cuando el interruptor forma parte de una unidad de conmutacin, este rebote


provoca una serie de cambios en la salida, como se muestra en el diagrama.

Podemos mostrar estos cambios en un grfico de voltaje / tiempo:

Interrupcin del rebote


El rebote de conmutacin es un problema cuando el interruptor forma parte de un
sistema de recuento. Cada vez que se presiona el interruptor, en lugar de que el
recuento aumente en uno, puede aumentar en dos, tres o cuatro, o ms!

La solucin es rebatir el interruptor. Esto no detiene los rebotes mecnicos del


interruptor, sino que corta los pulsos elctricos repetidos que el rebote causa de
otra manera. Aadimos un circuito de rebote a la salida de la unidad de
conmutacin.

Hay una serie de tcnicas que se pueden utilizar en el circuito de


debouncing. Usaremos un retraso de tiempo. Esto se basa en hacer que el primer
impulso elctrico desencadene un pulso largo que dure ms que el tren de
impulsos causado por el rebote. Para ello, aada un circuito de retardo entre la
unidad de conmutacin y el sistema de conteo.

El efecto de esto se ilustra en las siguientes grficas.

El sistema de conteo recibe un solo pulso cada vez que se presiona el interruptor.

El rebote del conmutador es muy rpido: una forma sencilla de evitar los
problemas de rebote de los conmutadores es simplemente hacer que su programa
espere un milisegundo despus de que se detecta una entrada del conmutador.

Schmitt Trigger
Imagine por un momento un sistema de control de ambiente domstico que
necesita encender las luces cuando se oscurece, y encender la calefaccin cuando
la temperatura baja. El sistema se basa en seales de una unidad de deteccin de
luz y una unidad de deteccin de temperatura - estos son sensores analgicos, y
no interruptores. Los interruptores tienen slo dos estados posibles: encendido y
apagado. Lo ideal es que una unidad de conmutacin genere 0V o la tensin de
alimentacin completa (lgica 0 o lgica 1, como vimos anteriormente). Estos
sensores analgicos pueden dar cualquier voltaje entre 0V y la tensin de
alimentacin completa.

Algunos chips PICmicro aceptan seales de entrada analgicas y tienen un


convertidor analgico-digital incorporado, que puede usarse para producir la
accin de conmutacin que deseamos.

Para otros chips PICmicro, necesitamos agregar otro subsistema a los sensores,
para que funcionen como un conmutador. Uno de estos sub-sistemas se denomina
disparador de Schmitt.

La salida del circuito disparador de Schmitt es un voltaje alto (cerca de la tensin


de alimentacin completa), o un voltaje bajo (cercano a 0V). Esto da el
comportamiento de conmutacin que discutimos anteriormente.

La tensin de entrada del sensor analgico determina cul de estas salidas se


produce. Hay dos tensiones de umbral fijas asociadas con el disparador de
Schmitt. Cuando la tensin del sensor aumenta y alcanza el umbral superior, la
salida es el voltaje alto (lgica 1). Cuando el voltaje del sensor analgico cae por
debajo del umbral inferior, la salida cambia a la baja tensin (lgica 0.)

Los siguientes grficos muestran este comportamiento.


La seal del sensor oscila y cruza los umbrales varias veces, en los puntos X e Y,
pero stos no tienen ningn efecto en la salida. Slo cuando la seal cruza por
primera vez se produce cualquier cambio en la salida.

La salida del disparador Schmitt se puede utilizar para encender y apagar luces /
calentadores, etc., segn se indica.

Adicin de salidas

Tpicos cubiertos

Adicin de salidas
1. LEDs
2. Uso de LEDs
3. 7seg muestra
4. Pantallas LCD
5. Uso de pantallas LCD
6. Zumbadores / sirenas
7. Motores
8. Motores paso a paso
9. Solenoides

LEDs
Los LEDs (Light Emitting Diodes) son diminutos cristales de un semiconductor,
que emiten luz cuando pasa una corriente elctrica. Son dispositivos muy
eficientes, ya que casi no se genera calor en el proceso, lo que lleva a una
duracin de batera mucho mayor.

Los LED 'estndar' son dispositivos de baja corriente, que producen niveles
relativamente bajos de iluminacin, y se utilizan como indicadores en lugar de
fuentes de luz.

Puede utilizar un LED estndar:

como un indicador de encendido para mostrar que un sistema est actualmente


conectado a una fuente de alimentacin; como un indicador "armado" para
demostrar que alguna funcin del sistema est activa; como un indicador de
secuencia, para mostrar qu etapa de una secuencia de operaciones est
actualmente en curso; como un simple instrumento de prueba para mostrar si una
salida del sistema en desarrollo est a una tensin alta o baja (lgica 1 o lgica 0)
durante la etapa de prueba. Los LED estn disponibles en una amplia gama de
formatos, desde LED de un solo punto de tamao individual hasta arrays de LED
ultra-brillantes, utilizados en paneles de mensajes y semforos.
Uso de LEDs

Los LED son muy robustos mecnicamente, en comparacin con las lmparas de
vidrio encastrado. Sin embargo, elctricamente es al revs!

Los LED son una forma de diodo. Un diodo pasar la corriente elctrica en una
sola direccin. El smbolo indica esto - la flecha en el smbolo muestra la
direccin permitida del flujo de corriente, llamada direccin hacia adelante.

La corriente elctrica fluye de positivo a negativo alrededor del circuito, y de


nodo a ctodo en el led, cuando el LED est polarizado correctamente, en
direccin hacia adelante. ('Bajo' significa 'conectado a una fuente de voltaje'.)

Sin embargo, el LED se daar si pasa demasiada corriente elctrica hacia


adelante, o si se le aplica una tensin demasiado grande en la direccin inversa
(intentando hacer que el flujo de corriente no est en el sentido correcto).
El LED est protegido de una corriente excesiva en la direccin hacia adelante
conectndola en serie (en lnea) con una resistencia. El valor de esta resistencia
depende de la tensin de alimentacin utilizada. La tabla proporciona los
tamaos recomendados para esta resistencia.
Tensin de alimentacin Resistencia de proteccin
3V 100 ohmios
5V 330 ohmios
6V 470 ohmios

Cuando existe el riesgo de un voltaje excesivo en la direccin inversa, se puede


conectar un diodo "normal" (es decir, no emisor de luz) como se muestra para
proteger el LED. (El diodo normal est polarizado hacia delante, y por lo tanto
conduce una corriente.La tensin a travs del diodo entonces cae a 0.7V, un
voltaje inversor lo suficientemente pequeo para que el LED para hacer frente a).

Pantallas de 7 segmentos

stos consisten en siete LEDs dispuestos de modo que los nmeros 0 a 9 puedan
ser exhibidos encendiendo "segmentos" apropiados.
El siguiente diagrama ilustra cmo se puede mostrar el nmero 3.57.

A continuacin se muestra la disposicin de clavijas de una pantalla tpica de 7


segmentos.

Los siete LED, (ocho si se cuenta el punto decimal,) estn interconectados de una
de dos maneras, conocido como anodo comn y formato de ctodo comn.
En el formato de nodo comn, todos los nodos estn conectados entre s dentro
del paquete de visualizacin de 7 segmentos. En uso, se conectan entonces a la
fuente de alimentacin positiva a travs de una resistencia de proteccin en
serie. Normalmente, los ctodos de todos los LED se mantienen en la lgica 1.
Para hacer una luz de segmento, el ctodo de ese led est conectado a la lgica 0.
Esto puede hacerse conectando la pantalla directamente a las salidas de un chip
PICmicro o utilizando un circuito integrado decodificador / driver.

En el formato de ctodo comn, todos los ctodos estn conectados entre s


internamente. En el circuito, se conectan a la alimentacin negativa (0V) a travs
de una resistencia en serie. Normalmente, se mantienen en la lgica 0, pero para
encender un segmento, se conecta a la lgica 1.

Pantallas LCD

Las pantallas LED son luminosas - emiten luz. Otra forma comn de
visualizacin, la pantalla LCD (pantalla de cristal lquido) no emite luz, sino que
controla el paso de la luz a travs de ella. Por esta razn, son muy eficientes
energticamente, y su bajo consumo de energa los convierte en dispositivos de
salida ideales para sistemas con bateras.
Slidos y lquidos:

En los slidos, las molculas permanecen alineadas en la misma posicin relativa


entre s. Todo lo que pueden hacer es vibrar ligeramente sobre esa posicin
fija. En los lquidos las molculas pueden apuntar en cualquier direccin y
moverse en cualquier parte del lquido.

Los cristales lquidos se comportan de alguna manera como los slidos, y en


otras formas como los lquidos. Sus molculas, largas y delgadas, pueden
moverse libremente, como en un lquido. Sin embargo, tienden a alinearse y
apuntar en la misma direccin como las molculas en un slido. Esta alineacin
de las molculas afecta la forma en que la luz pasa a travs del cristal.

En el diagrama se muestra un diagrama de una pantalla de cristal lquido tpica.

El cristal lquido est intercalado entre placas que llevan electrodos conductores,
con filtros polarizadores en la parte superior e inferior del sandwich. Los
electrodos estn formados en las letras, nmeros, etc., que el diseador desea que
aparezcan en la pantalla. Los filtros polarizadores permiten que pase la luz,
normalmente. Cuando se aplica un voltaje a los electrodos, el patrn de las
molculas en el cristal lquido cambia. Esto cambia la polarizacin de la luz y ya
no puede pasar a travs de los filtros. Aquellos electrodos que tienen un voltaje
aplicado aparecen oscuros contra un fondo claro.
Uso de pantallas LCD

El principio es sencillo: aplique un voltaje a los segmentos de electrodo que


desea mostrar. Sin embargo, hay dos problemas!

1. Si aplica un voltaje de CC al electrodo, eventualmente producir un cambio


permanente en el patrn de las molculas, haciendo que la pantalla LCD sea
inutilizable.

La respuesta: Aplicar un voltaje de corriente alterna, de modo que las molculas


se mueven primero de una manera y luego la otra, anulando cualquier cambio
permanente. Con una frecuencia suficientemente alta, superior a unos 50 Hz,
el parpadeo producido en la pantalla no ser notable.

2. Las pantallas LCD reales pueden tener cientos de electrodos, para permitirles
generar un amplio rango de caracteres. Eso hace que sea un dispositivo difcil
de conducir sobre una base de electrodo por electrodo!

La respuesta: Utilice un mdulo LCD, que contiene no slo la pantalla de cristal


lquido, sino tambin un circuito integrado, como el Hitachi HD 44780, para
cuidar de gran parte del trabajo duro.

El mdulo LCD se controla introduciendo instrucciones y datos a travs de las


entradas de datos, y seales de control, a travs de las lneas de control. Las
instrucciones incluyen borrar la pantalla, mover el cursor de nuevo a la posicin
inicial y definir factores tales como el nmero de lneas de pantalla y la fuente de
caracteres. Las lneas de control indican al mdulo si la seal en las entradas de
datos es una instruccin, o datos, y habilitan el mdulo LCD, permitindole
llevar a cabo las instrucciones.
En la tarjeta de desarrollo PICmicro, las cuatro lneas de entrada de datos y dos
lneas de control estn conectadas al puerto B del chip PICmicro.

Zumbadores / sirenas

Muchas aplicaciones requieren una advertencia audible cuando sucede algo. Aqu
hay dos dispositivos que pueden proporcionar eso, zumbadores y sirenas.

El trabajo que hacen es idntico - producir un solo tono cuando se les aplica una
tensin. La forma en que hacen ese trabajo es diferente.

Los zumbadores son generalmente dispositivos electromagnticos. Cuando una


corriente elctrica fluye a travs de una bobina de alambre dentro del zumbador,
se convierte en un electroimn, y tira una placa de metal hacia ella. Este
movimiento abre un par de contactos, desconectando la corriente. La placa
vuelve a su posicin original, haciendo que los contactos se cierren y
restablezcan la corriente. Esta secuencia contina, con el resultado de que la
placa metlica vibra hacia dentro y hacia fuera, provocando una onda sonora.

Las sondas utilizan un efecto conocido como piezoelectricidad. Algunos cristales


cambian de forma cuando se aplica un voltaje a ellos. Si aplica una tensin
alterna, entonces la superficie del cristal vibra hacia atrs y hacia delante, a
medida que cambia la direccin de la corriente elctrica. Bajo las condiciones
adecuadas, escuchamos esta vibracin como un sonido. La mayora de las sirenas
tienen un oscilador incorporado, para generar el voltaje de CA cuando conecta la
sonda a una fuente de alimentacin.

En el uso de estos dispositivos, la consideracin principal es la corriente que


necesitan para operar. Los dispositivos piezoelctricos usualmente requieren una
corriente ms baja, tpicamente 25mA, y por lo tanto son a menudo ms
adecuados para dispositivos porttiles.
Motores

Est disponible una amplia gama de motores, que difieren principalmente en su


potencia nominal. Cuanto mayor es la potencia, mayor es la carga que el motor
puede mover. Sin embargo, cuanto mayor es la potencia nominal, mayor es la
corriente que el motor necesita para operar.

El principal problema en el uso de chips PICmicro para el control de motores es


la gran corriente que demandan los motores. En la gran mayora de los casos, esta
corriente tiene que ser suministrada por un circuito conductor situado entre el
chip PICmicro y el motor. Nos ocuparemos de este tema ms adelante.

Los motores son dispositivos electromagnticos, y eso da lugar a otro problema


potencial. Cuando una corriente elctrica fluye a travs de la bobina en el motor,
produce un campo magntico. Este campo magntico hace que el motor gire. Sin
embargo, cuando la corriente se desconecta, el campo magntico se derrumba, y
en el proceso genera un voltaje muy alto en la bobina de alambre. La energa
almacenada en el campo magntico se convierte en electricidad. El voltaje
producido puede ser tan alto que daa componentes electrnicos conectados al
motor.

Este peligro se puede evitar conectando un diodo en paralelo con el motor, como
se muestra en el diagrama de circuito.
Bajo condiciones normales, el diodo no hace nada. Por otro lado, cuando el
motor est desconectado, el voltaje generado cuando el campo magntico se
derrumba hace que una corriente fluya a travs del diodo. La energa se disipa
como calor en el diodo, y no causa dao al circuito del conductor.

Motores paso a paso

Los motores paso a paso funcionan de una manera diferente a los motores que
acabamos de comentar. En lugar de girar suavemente, lo hacen en "pasos". Se
necesita un impulso de control para hacer que el motor se mueva a la siguiente
posicin. La ventaja de esto es que la rotacin puede ser controlada con precisin
- diez pulsos significa una rotacin a travs de diez pasos. Con un motor
convencional, es la suerte de olla donde deja de girar.

El siguiente diagrama muestra el principio del paso, aunque los motores reales
son mucho ms sofisticados! La parte giratoria del motor, el rotor, es un imn de
barra. Est rodeado por cuatro bobinas de alambre, enrolladas en material
magntico. Cuando una corriente fluye alrededor de una de estas bobinas, se
convierte en un electroimn. La direccin en la que la corriente fluye alrededor
de la bobina determina qu extremo del electroimn es un polo Norte y que un
polo Sur. Una vez que fluye una corriente, el electroimn producido interacta
con el magnetismo del rotor. "Al igual que los polos se repelen, ya diferencia de
los polos de atraer 'fue una leccin aprendida muy temprano en la ciencia de la
escuela! El rotor se mueve alrededor para intentar conseguir polos desiguales tan
cerca juntos, y como polos tan alejados, como sea posible. Se mantiene en esa
posicin por las fuerzas magnticas opuestas. Esta es otra diferencia entre los
motores paso a paso y los motores "normales". El stepper tiene este freno
incorporado. Cuando no se mueve, se mantiene en posicin por las fuerzas
magnticas. Un motor "normal" se puede girar con muy poca fuerza.

Enviando impulsos de corriente elctrica en la direccin correcta a la bobina


correcta, se puede hacer que el rotor pase de una posicin de fuerzas magnticas
balanceadas a la siguiente. El rotor se mueve a travs de 45 de una posicin a la
siguiente. Para este simple motor paso a paso, el ngulo del escaln es de 45 . El
siguiente diagrama ilustra esta idea.
Los motores paso a paso vienen con los mismos dos problemas que hemos
discutido para los motores "normales" - la necesidad de que los circuitos del
conductor proporcionen suficiente corriente para los motores y la necesidad de
un diodo para proteger contra el alto voltaje generado cuando la corriente se
apaga o este caso, invierte. Los motores paso a paso tambin necesitan ms
circuitera para generar los impulsos de corriente a la bobina derecha, en la
direccin correcta, en el momento adecuado. Esto puede hacerse directamente
con un programa de software, pero un circuito integrado conocido como SAA
1027 puede facilitar este trabajo. Ms de eso ms tarde!

Solenoides

Un dispositivo electromecnico prctico para dar algo un empujn.


Consiste en un electroimn con un mbolo magntico mvil por el
centro. Cuando una corriente fluye a travs de la bobina del electroimn, se
magnetiza y tira del mbolo hacia el centro de la bobina.

Al igual que el motor, el solenoide requiere una corriente alta, por lo que se
necesita un circuito de accionamiento. Existe el riesgo de que se produzca una
alta tensin cuando el solenoide se apague y el campo magntico se colapse. De
nuevo, se debe utilizar un diodo para proteger los componentes electrnicos.

Adicin de controladores

Tpicos cubiertos

Adicin de controladores
1. Interruptor de
transistor
2. Piloto de Darlington
3. Controlador del
decodificador de 7
segmentos

Interruptor de transistor

Hemos visto que algunos dispositivos de salida necesitan una corriente alta para
funcionar correctamente. El chip PICmicro no puede suministrar suficiente
corriente, por lo que se necesita un circuito de control, tambin llamado buffer,
entre el PICmicro y el dispositivo de salida. La seal de salida del PICmicro se
utiliza para controlar la corriente que el conductor permite que fluya a travs del
dispositivo de salida.

La forma ms simple de conductor es el interruptor de transistor.

La imagen muestra cuatro transistores comunes. stos varan en la corriente total


que pueden entregar a la carga, y cunta corriente toman de la viruta de PICmicro
para funcionar. La ganancia de corriente de un transistor mide la cantidad de
corriente que se extrae del chip PICmicro, en este caso, para una corriente dada a
la carga. Por ejemplo, un transistor con una ganancia de corriente de 100 necesita
solamente una corriente de 8 mA del PICmicro para controlar una corriente de
carga de 800 mA.

El smbolo para el transistor y los nombres de sus tres patas se dan en el siguiente
diagrama.

Los transistores se fabrican en una serie de paquetes diferentes, algunos de metal


revestido, y algunos de plstico. Para utilizar un transistor, es necesario conocer
el pin-out para el paquete utilizado. La siguiente imagen muestra detalles de los
paquetes y los pin-outs para los cuatro transistores mostrados anteriormente.

El diagrama de circuito muestra cmo se puede usar un transistor para encender


una carga. La carga podra ser un zumbador, motor, solenoide, etc.
Si la carga es un motor o un solenoide, entonces el diodo ser necesario para
proteger el transistor de la oleada de alta tensin cuando la carga se apaga. La
resistencia de base, R, es usualmente alrededor de 1 kilohm a 10 kilohms.

Piloto de Darlington

Aqu hay un problema! Hay transistores que pueden manejar grandes corrientes
(y poder). Hay transistores con altas ganancias de corriente. Pero, ningn
transistor hace ambas cosas. Esta tabla muestra eso!
Transistor Manejo de poder Ganancia de corriente
BC108 0.3W 400
BC337 0.6W 300
BFY51 0.8W 50
2N3055 115W 40

Una solucin al problema - utilice un controlador Darlington! Este es un circuito


inventado por un ingeniero estadounidense, el Dr. Sidney Darlington. Utiliza dos
transistores, de modo que el segundo transistor aumenta la corriente, que ya ha
sido impulsada por el primer transistor.

El diagrama de circuito para el controlador darlington se muestra en el siguiente


diagrama.
La corriente del chip PICmicro es amplificada por el primer transistor T1 y luego
por el segundo T2.

Si T1 tiene una ganancia de corriente, hFE, de 200 y T2 tiene una ganancia de


corriente de 50, entonces el par de darlington tiene una ganancia de corriente de
50 x 200 = 10 000. Si la carga fuera un motor, que toma una corriente de 5A (=
5000mA), entonces la entrada tendra que suministrar una corriente de slo
0.5mA.

El transistor T1 normalmente tiene una alta ganancia de corriente, pero no


necesita manejar mucha potencia. El transistor T2 es un transistor de potencia,
pero no necesita tener una alta ganancia de corriente. Por ejemplo, T1 podra ser
un BC108, y T2 un BFY51.

Usted puede comprar transistores de par darlington hechos a propsito, con los
dos transistores alojados en un solo paquete. Los ejemplos son el BCX38B y el
TIP120D. stos tienen tres patas, como un transistor convencional, y stos se
etiquetan colector, base y emisor. Estn conectados en el circuito del interruptor
del transistor, demostrado anterior, como si fueran un solo transistor. El paquete
puede incluso contener el diodo protector.

En realidad, este etiquetado oculta el hecho de que hay dos transistores en el


paquete. El siguiente diagrama muestra la disposicin interna probable.
El agujero en la placa metlica de respaldo del TIP120 permite que se atornille a
un disipador de calor. Esto aumenta la velocidad de enfriamiento, permitiendo al
dispositivo manejar corrientes an mayores.

Un nmero de conductores darlington se pueden combinar en un paquete de


circuito integrado, como el ULN2003. El pin-out para esto se muestra a
continuacin. Cada controlador darlington est representado por el smbolo:

Observe que cada controlador darlington est protegido por un diodo. Un paquete
como este es til cuando se conecta un nmero de dispositivos al puerto de salida
del chip PICmicro. Puede usarse para desarrollar suficiente corriente para un
motor paso a paso cuando la secuencia de seales es producida por el programa
PICmicro en s, en lugar de por un chip de controlador paso a paso.

El siguiente diagrama muestra parte de un circuito PICmicro, con un motor paso


a paso accionado, a travs de un ULN2003, por cuatro bits del puerto de salida,
Puerto B.
Controlador del decodificador de 7
segmentos

Puede ejecutar una pantalla de 7 segmentos directamente desde el chip


PICmicro. Sin embargo, esto requerira siete bits del puerto de salida PICmicro,
uno para cada LED en la pantalla. En algunas aplicaciones, que no pueden dejar
suficientes bits para operar otros dispositivos.

Una alternativa es usar un chip decodificador / controlador para hacer parte del
trabajo. Esto usara slo cuatro bits de salida. Este chip acepta una entrada
binaria, (as, decimal binario-codificado para ser ms preciso,) y lo convierte en
las siete seales necesarias para controlar la pantalla. La parte 'conductor' de su
nombre muestra que se extrae poca corriente de la PICmicro para hacerlo.

El chip CMOS 4511 es un decodificador / controlador de 7 segmentos, utilizado


con pantallas de ctodo comn. El pin out para este chip se da en el diagrama.
Las entradas D, C, B y A aceptan el nmero binario. ste debe ser suministrado
la vuelta derecha! La entrada D espera el bit ms significativo del nmero, y la
entrada A es el bit menos significativo. La siguiente tabla ilustra el punto.

Decimal 4511 entradas

Nmero re do segundo UN
1 0 0 0 1
3 0 0 1 1
5 0 1 0 1
8 1 0 0 0

El 4511 tiene tres entradas de control que le permiten:

pruebe el chip y la pantalla, conectando la entrada 'LT' (Lamp Test) a


0V. Esto debera hacer que todos los segmentos de la pantalla se iluminen.
apague todos los segmentos de la pantalla, conectando la entrada 'BI'
(entradas en blanco) a 0V.
'congelar' la pantalla e ignorar cualquier cambio en el nmero binario
aplicado a la entrada, conectando la entrada 'ST' (STORE) al ral positivo
de suministro.

Todas estas funciones se pueden integrar en el propio programa PICmicro, en


cuyo caso se pueden desactivar en el 4511, mediante la conexin de 'LT' y 'BI' al
ral de alimentacin positivo y 'ST' a 0V. El siguiente diagrama muestra un 4511
conectado a una pantalla de 7 segmentos, con las funciones de control
deshabilitadas. Observe la resistencia protectora de 330ohm!

Potrebbero piacerti anche