RD-0604 Tecnologías para la Medición del Agua en Canales

Anuncio
^
MITA
hvsrrrur zxrcAivp
f+. ; E crvvtf rJ .: r;.:. ;` A(MiA
RD-0604 Tecnologías para la Medición del Agua en Canales
Sensor Ultrasónico de Nivel
Programa para la integración de datos de aforo
U9A
URA
U i'<A
7404N
CON1
U7
JHO-152ASTN
v7^rr-.
mmtt.^.::
RBIAFIC
V00
XTAL1
R071PSPí —
Rq5'P9Pti —
RC51PSP5
RUFP5P6 —
R5,11 nX10T
hL6/15:CR:. ~
, C;:
96
CS_VCLKI
lFo53riIW.,
RUAX,F1
Ri:1:CL'.P:
RC30:P1
fi]:EY.A'.L
RCGJPSW
R011F5P7
CV
H:ey =a
10K_LIN
,.^,. —_—
R"..81G110
1
5_4'5'01'5CA.
70% 61
R55'PSF5
RCGP5F2
54
IN3
74
T
470 Chin
UT4
uUr
OUT2
OLIT1
O
1112
V
R3
Ua
R4
1k0hm
240'15
P
2623
^9
.•
p..^ ... -^... .,
: ...
l!
.
.
L AGUA
.. .,
f^•:
+JJ.
....
RD-0604 Tecnologías para medir el
agua en canales
SISTEMA DE CÓMPUTO PARA LA INTEGRACIÓN DE DATOS DE
AFORO
INICIAR LA PROGRAMACIÓN DE CIRCUITOS, PRIMERA ETAPA, DEL
PROTOTIPO DE UN DISPOSITIVO ULTRASÓNICO PARA MEDIR EL
NIVEL DEL AGUA.
Conclusiones
Se ha realizado el programa que permite hacer la integración de datos de aforos. El sistema
permite dar de alta las instituciones de usuarios y puntos de control.
El sistema permite la importación de la información de las variables hidráulicas de interés
principalmente el nivel del agua, la velocidad media, la sección hidráulica, la fecha y sobretodo
el volumen en función del tiempo de muestreo.
El análisis de estadísticos simples como la media y desviación estándar (varianza) se puede
realizar en intervalos de tiempo definidos por el usuario del sistema de cómputo.
Se han generado los circuitos y las rutinas necesarias a la interpretación de la información del
sensor ultrasónico de nivel. El microcontrolador utiliza un CAD de 8 bits.
.444A
4-.fl
RlAIAO
n , 1R 4^ Jl
^er
y► S►
/Lt .
• ,!
r!lwrrh rl^A^l: j, • : :r
n r,l.!4!19 R l#
!
,
r
! .E I 31 .1 ! !
1 j r e. JF !! *
e.:l.s^! dA^°'^ •. .• . .
• ^u.+.R .+4R,
a!
Wra► a .f.r
^ N '
r3!:' . .. .
. ..
^. r 1 ^ -w
.11 EF i!
*.***141*****,
Jl.r,sdtsúik41A1oAlió6,4::!'
:eaWi8 M *aour4NW*A aas
msa-t*** e4:ca:F
.: :^Vk *:Eáa¢*A *1¢:Rt Xx m 81
kL
8
44Y ^H:R;A ^f^^21
;^^^.;FB
nE^
3,
b5
dR8iVl$ ^,;
3^.^ ,► A^3&8 ''^
VRF1Yy^^A
.
. .d
Las pruebas realizadas indican una posible mejora de los resultados mediante la adaptación
del CAD de 12 o 16 bits.
Debido al error presentado en los datos analizados se puede concluir que el equipo permite
medir carga sobre aforadores de garganta larga del orden (inferior o igual) de los 0.7 metros.
Para cargas mayores el sensor puede ser utilizado para el monitoreo de nivel con fines de
mejoramiento de la operación manual de canales.
RD-0604 Tecnologías para la Medición del Agua en Canales
/NS 77 rV TO MF,1''!:4N0
'ECr''.' :'. ::?3,1A DEL AGUA
CIRCUITOS Y PR O GRA MA CIÓN DE
SENSOR ULTRASÓNICO DE NIVEL
LISA
2
511
F.'6
014
1141
IN2
11J3
IN4
t Akohm
'UT4
0LIT3
0UT2
0UT1
24016
USA
>;W
Vial"
F:2
•
--c+
9
L.
^-'>t7
74046
74046
^
^
—O
—0
--O
U11R
--0
_^ Yy
U1^H 1
-0
-0
7404 N
74046
U12.A
2
1
t0 kohm
74046
7404N
-l^
p
. --4
_.^
--^
GON1
6411i
WM.41,16
GS'41T
LRe
04_1CLM11
0 3C'30LHO
FL.341SP1
RCmcP2
RCal.ZP1
FI:.1:3_.L
RCt11PSW
RG1lPSPi
RDVINf
VGD
iree
RGNP9P1
RC5'PSPfi
Rpi1PSF5
RC4.6SP4
R'.T1FNDT
IniTYCK
R".S1GiLl
:10.301.0 04.
00064,3
RCGiPSP2
160h
Sensor de Nivel Ultrasónico
LOS CIRCUITOS INTEGRADOS PROGRAMABLES (PIC) Introducción Características de Algunos Procesadores PIC Algunos tipos de PIC Utilidad de un Kernel de Tiempo-Real Kernel Multitarea Sección Crítica Recursos Compartidos Interrupción de Contexto/Interrupción de Tarea Entorno No-Prioritario Entorno Prioritario Planificador en Rueda Prioritario vs. No-Prioritario Reentradas Prioridad de Tarea Inversiones de Prioridad y Prioridades Estáticas vs. Dinámicas Semáforos (banderitas) Exclusión Mutua Detención Sincronización Comunicación entre Tareas Señales de Evento Casillas de Correo para Mensajes Colas de Mensaje Interrupciones Recuperación, Respuesta y Estado latente de Interrupción Tiempo de Procesamiento ISR Interrupciones No-Ocultables Contraseña de Reloj PROGRAMAR UN PIC Estructura de un Programador de PIC Programar un PIC de Microchip Inc. Programación del PIC Transmisión de Datos a Través de un PIC Transmisión de Datos RS-232 desde el PIC Recepción de Datos RS-232 por el PIC Generación del bit de Paridad Hardware El Circuito Del Programador Instruyendo Al Micro Señales de Programación de un Pic Predisposicion de un Pic LOS MICROCONTROLADORES DE NACIONAL Y PHILIPS La Serie Cop De National Prestaciones destacables de hardware Prestaciones destacables de software 1
1
2
3
4
6
6
7
7
8
8
9
9
9
9
10
10
10
11
11
11
11
11
11
12
12
12
13
13
14
14
15
17
21
21
22
23
24
25
27
27
30
32
32
32
34
Sensor de Nivel Ultrasónico
Características Fundamentales de la Serie COP Características del CPU Características I/O Diseño CMOS Estático Completo Rangos de Temperatura Soporte de Desarrollo Arquitectura Juego de Instrucciones Herramientas Clave del Juego de Instrucciones Ejecución de Código de Ciclo Simple/Byte Simple Multifunción, Muchos Byte Simples Los Microcontroladores De Philips Memoria de Programa Memoria de Datos El Set de Instrucciones del 80051 Modos de Direccionamiento Timing de la CPU Ciclo de Máquina Estructura de Interrupciones Habilitación de Interrupciones Prioridades de Interrupción SENSOR DE DISTANCIA ULTRASÓNICO Modo 1 - Compatible con SRFO4 - Señal ce Activación y Eco Independientes Conexión Otro Conector de 5 Pines Diagrama de Tiempos Modo 2 - Pin ÚnicopPara la Señal de Activación y Eco Cálculo de la Distancia Cambiar el Patrón y el Ancho del Haz DESCRIPCIÓN GENERAL SENSOR DE TEMPERATURA LM35 Características Conexión Típica Diagrama de Conexiones Conclusiones ANEXOS Ic-Prog Elección De Idioma Configurar El Hardware Explicación De Los Menús Ajustes Programación De Un PIC Programar El Pic Otra Alternativa De Comprobación Errores Frecuentes En La Programación El Mplab Instalación Del Programa Como Empezar 36
37
37
38
38
38
39
39
40
40
40
41
43
45
47
48
53
54
55
55
55
56
56
56
57
57
57
58
59
61
61
62
63
81
82
82
82
83
83
85
86
88
88
88
91
91
95
Sensor de Nivel Ultrasónico
Nuestro Primer Proyecto El Editor La Barra De Menús Codigo Fuente Del Sensor De Nivel Ultrasonico 96
98
98
99
Desarrollo de Sensor de Nivel Ultrasónico
LOS CIRCUITOS INTEGRADOS PROGRAMABLES (PIC)
Introducción
Los circuitos integrados programables (Programmable Integrated Circuits = PIC)
son componentes sumamente útiles en la Electrónica de Consumo. Aún cuando
son conocidos desde hace más de veinte años, existen en la actualidad nuevos
tipos que cumplen con una serie de requisitos y características sumamente útiles.
13
Program Counter
1
4
POR'A
Bus
RAC:AP.0
^
Flash
Program
Memo- y
Program,
Bus
Dala
I',
^
i
Rr
Fa
Registers
8 Leve l
Stack
{13-ttt}
/
RAM
Aidr' r; •
^
7
7ireaA.dr
J
II3
direct
.^.c:dr
+
PtSR-'
1
FSR reg
^ ,^ Status reg
8
^
—I.
Power- i
imer
ns Pu, tion
7emde & -r y
C,. r -: I
Timing
-,1--;-̀ Generation `'í—
OSC1rC_Kl
OSC2:C_Kr^l
Osalllator
Start-up Timer
Power-on
Reset
Watchdo
'^
^
L
t/
\\
..y..—,%.
ALJ
8
I¡
IM
L,
51 ',
II
,
:^
,%
^
I
^=,,!;h,`
® R?^.- ^f .i
^ R?4
^ R.P.!
M^1 P.H7.rPGD'
PORTC
1M1reg
^
1
Brown-out
Rese
H-C r- ;
7eb•.4„er
cv:':c agc
Prc,ran• ^^ °a
^
R"1.^tG!GIP21
O5
1
^ RC_:C ,3=
^ R3:SC r: S C_
1
;
M¡ ..RC4f5DI:S1A
y1 RC51S77
^ Rü' P, T?' • ^ ^ '
1'1G 'RC?,Rk r..T
'
l:i
W76. V Ea
R1;:LR
I
a
gg
!
r
iA?iti\^•:'P. EF ^ :'^.' REF
RA3tAN3NREFi
^ RA4 T7Ct:IlC 10:.7
`.A_"'.d. 3.C201JT
^
.T;.odr 1AJt ^
tnst.:: ^n reg
TimerC
® RA I: A":1
1 0 {yitAiD.
Trner1
Tunes,?
11
II'
llr•
aIr
II
,Il,•
_
i}ataEEPROb.1
CCP1,2
°
^hronous
Port
Sena/
II.
C_r a:.t:
JSA.RT
II
^ la=
Reference
Device
Program Flash
Data Me
Data EEPROM
PIC:8 = 873A
P IC 18= 878A
4K words
8iK words
192 Bytes
es
128 Bytes
258 Bytes
Note 1: Higner order bits are from the Status register.
Figura 1
1
Desarrollo de Sensor de Nivel Ultrasónico
Los microcontroladores PIC son en el fondo procesadores similares a otros tipos,
como por ejemplo la familia de los microprocesadores X86, 80486, Pentium y
muchos otros que usan una arquitectura interna del tipo Von Neumann. En este
tipo de arquitectura los datos y la memoria del programa se encuentran en el
mismo espacio de direcciones.
Los PIC's son microcontroladores, es decir, una unidad que posee en su interior al
microprocesador y a los elementos indispensables para que pueda funcionar como
una minicomputadora en un solo chip.
Esta circunstancia da lugar a una gran pérdida de tiempo porque los datos tienen
que ser retirados de la memoria y llevados a la CPU (Central Processor Unit) y
viceversa. Esto significa que la computadora dedica la mayor parte del tiempo al
transporte de datos de ida (Figura 1) o de vuelta, en lugar de usar este tiempo
para trabajar sobre los datos.
Otra característica de los procesadores PIC es el uso de un conjunto de
instrucciones del tipo RISC (Reduced Instruction Set Computer). Con el RISC se
suele ejecutar la mayoría de las instrucciones con un solo pulso del reloj.
Con las instrucciones que se usan en otros equipos del tipo CISC (Complex
Instruction Set Computer), se logran instrucciones más poderosas, pero a costa de
varios ciclos del reloj. En el bien conocido procesador 68HC11 de Motorola se
requieren a veces hasta 5 ciclos del reloj para ejecutar una instrucción.
Características de Algunos Procesadores PIC
Para ilustrar mejor el concepto usado en los PIC, vemos en la figura 1 un esquema
en bloques de los procesadores de la familia PIC 16F87XA.
En este esquema se observa claramente los dos tipos de bus: un data bus (arriba
a la derecha) y un program bus (arriba a la izquierda hacia abajo). En este data
bus se observa otra característica inusitada: su capacidad es de 14 bits. Esta cifra
no es divisible por 8 y por lo tanto la CPU debe considerarse como de 8 bits, pero
las instrucciones usan palabras de 14 bits.
Este número por cierto no es único ni obligatorio: en la serie de procesadores
16C5X se usan palabras de 12 bits y en la serie PIC 17CXX se usan palabras de
16 bits. Sin embargo ambos siguen siendo microcontroladores de 8 bits.
En los procesadores PIC se usa sólo un registro de trabajo, el registro W. Esto
parece ser poco común, pero se explica por el hecho que muchas de las
operaciones que el RISC ejecuta, almacenan su resultado en la RAM o en el
registro W, lo que aumenta su capacidad.
Otros registros son el registro STATUS, el registro FSR (Feedback Shift Register)
y el contador de programas. No existe en el PIC un registro stack (registro de pila),
2
Desarrollo de Sensor de Nivel Ultrasónico
lo que limita el número de subrutinas que se pueden ejecutar. Existe sin embargo
un stack de 13 bits y de 8 niveles que funciona en conjunto con el contador de
programas.
Una consecuencia de la arquitectura RISC es la reducida cantidad de
instrucciones simples que llega sólo a 35. Estas instrucciones pueden, sin
embargo, combinarse para formar instrucciones más complejas que solucionen los
problemas satisfactoriamente.
El set de instrucciones de un PIC se compone de sólo 35 parámetros de los cuales
suelen emplearse con asiduidad solamente 15.
En el Assembler suministrado por el fabricante de los procesadores PIC se usa
una serie de macros que ayudan a crear un conjunto de instrucciones muy
abundante. Como en todas las memorias programables, el gran secreto del éxito
reside en el software de la programación que debido a la arquitectura RISC es
sumamente amplio.
El esquema de la figura 1 corresponde también a diferentes integrantes de la
familia PIC, a saber: PIC 16C83, PIC 16R83 con una capacidad de 512 x 14 bits y
PIC 16C84, PIC 16C84A y PIC 16R84 con 1k x 14 bits.
Para superar exitosamente todos los problemas eventuales que puedan surgir en
la programación de los PIC's, el fabricante provee también una herramienta
adecuada llamada MPLAB que es un /DE (Integrated Development Environment =
ambiente de desarrollo integrado). En el mismo se incluye el software para un
ensamblador, editor, simulador y programador, todo en un paquete dedicado.
Algunos tipos de PIC
Un representante típico de los PIC's es el 16C84, cuya base se observa en la
figura 2. Se trata de un procesador con una memoria de programas EEPROM de
1k x 14. Tiene 64 bytes de memoria de datos EEPROM y 36 bytes de RAM de uso
general.
PDIP, SOIC
RA2 +—►
=.A3 +—^
RF.».TOCKI
^r
f3
d^_R —►
C.S
^
RB 3ANT
•1
18
.--.
RA1
2
17
RAO
3
16
CBC1/CLKIN
4
5
n
^
15
14
CJ)
6
—^ 0.^
°C2/CLKCUT
^ Voo
13
RB7
12
+—t RB6
RB1 +--r
7
RB2 ^.
8
11
+—. RB5
R63 +—►
9
10
RB4
Á
La memoria de programa del EEPROM
puede ser programada en serie en el
circuito de aplicación. Se dispone de 13
pines de I/O con control de dirección
individual. Se dispone de 4 fuentes de
El
interno/externo.
interrupt
un
es
de
8
bits
con
temporizador/contador
pre-escalador programable. La frecuencia
de operaciones es de DC a 10MHz. El
integrado viene con una base PDIP de 18
pines o SOIC.
Figura 2
3
Desarrollo de Sensor de Nivel Ultrasónico
Una variante del anterior es el integrado PIC 16C61 con base similar y con una
memoria de programa EEPROM de 1K x 14, un stack de hardware de 8 niveles,
13 líneas bidireccionales I/O, 3 fuentes de interrupt, temporizador de 8 bits de
tiempo real con un pre-escalador programable de 8 bits y una frecuencia operativa
de DC a 20MHz. El integrado viene también en una versión de montaje en
superficie (surface mount).
Part
Number
I,
Package
I-
satures
rI'.:wsI:aulr.b:i i(-.brucncri5li'Cn8)
P1C16084 18 Lead • Unique 1K x 14 EEPROM program mernory
• 64 trytes EEPRCeil data rrernory
• 3E bytes yer>=.i I purpose RAM
• EEPROM proprarn rrienwry ran be serially
program-Ed in he application Cirwil
Timers
• 13 110 pins with Ir,droidua! direction control
• 4 irrtemallextemal irarrnrpt sources
• 8-iait timericounter with prctjrarnmable
CP+t!
pre:zaler
Cl!erat,ng hPqutnc,es DC to 111A1Mz
• Peu;kaaing ophons
FDI(',nti °:C7tC
Figura 3
El esquema básico de este procesador surge de la figura 3 y es similar al del PIC
16C84. Un procesador de mayor envergadura y mayor tamaño es el tipo PIC
16C74, cuyo esquema interno básico vemos en la figura 4.
Este procesador posee una memoria de programa del EPROM de 4 K x 14, una
RAM de uso general de192 bytes y 33 pines de I/O con dirección individual. Esta
memoria es del tipo EPROM con una ventan que deja pasar los rayos ultravioletas
y por lo tanto puede borrarse con el borrador típico de la serie 68HC11. En este
aspecto es similar a los procesadores anteriores. Se recomienda especialmente
para aplicaciones en robótica.
El PIC 16F74 tiene una base de 40 pines tipo PDIP o CERDIP (con ventana) o de
44 pines tipo PLCC o QFP.
Otros tipos de PIC salen al mercado con mucha frecuencia y ya se dispone de la
serie PIC 12CXX con base de 8 pines y la serie PIC 17CXX de instrucciones de 16
bits que es más potente aun.
Utilidad de un Kernel de Tiempo-Real
Kernel es la palabra que se utiliza para describir parte de "un sistema operativo" o
el sistema operativo completo con el que opera un microcontrolador o una
computadora. En muchos artículos, en lugar de emplear el término "Kernel"
empleo la palabra "entorno", sin embargo, aquí emplearemos el término en inglés
que no posee traducción directa.
4
Desarrollo de Sensor de Nivel Ultrasónico
Figura 4
Fea,ttqEx
4r.K„ero1
PI0110+1
40i4.1 • 4d c 14 EPROM pnxgnm ,nereory
Lcoa •
tyrtes general mpa5e 11LUu1
• 33 II_ti,{5ns vAY" ircivittlfel dreno'', calme
• 12 r,x1C7n41 bl i7 ros Ir9I Irit9Ti4i l9:taces
• i r:artrJ ár. nM:parR4i4'drt4 TOáti:.3
• C-ixt, di-iTtarritl fJL: latrycrtar
• Syrr}wcrwus Se1ri 1 or: (SSP)11w Ik°
an o 3 vlra áPI oalx partiala
• SrCz171 C.Oramu`.licdlorrSIrílClr603 [5L:',i OrUrids r.I:fiNRT 1m[linhd
w
rcr•an:l alor, Not
• 3 c]u'R9r21M e's, anotan be 18UBn tiüe 1i
ollrng SIG.; Nodo via w .•aeid dpelr
• t Feral" rejFloquenri es. LX: lu 1L7r1r1t.1uw
ionaadlaGa odien
• 1Frvc i y nrrm•:Jw4nrrrgoc Cvnmar^aL,
I c1 Vlrral eroawiarrraEve
CERdaIP
• Peal ron:: n[tl:ns: 4134e®d P DO.-)
f,nht^,.^),a4 laas V1.tX. A.tlnan cyP
11111111
n
Figura 4
En la Nota AN585 de Microchip (gran parte de la bibliografía consultada para
redactar este texto es de la empresa Microhip) se incluyen dos ejemplos
primordiales: uno basado en el PIC16C54 y otro en el más poderoso PIC16C64.
Se implementó una "Alarma Remota" con el PIC16C54 como un ejemplo de un
Kernel No Prioritario, con dos fuentes de entrada series asincrónicas capaces de
ejecutar hasta 19,200 baud junto con siete sensores que deben estar "indicados"
como entradas. Se debe manejar otra línea de entrada que cause un "reconteo"
del software interno.
Para la salida, este ejemplo tiene un LED que muestra ocho estados internos
diferentes de la "Alarma Remota", la cual titila a diferentes promedios y
secuencias. Esta salida serie y asincrónica es capaz de ejecutarse a 38,400 baud
y las entradas pasan a la siguiente estación de la alarma remota. Se incluyen
distintos temporizadores cortos y largos para cumplir con las nueve tareas
cooperativas de este ejemplo. Por si no recuerda, se denomina baud a la
transmisión de un byte por segundo.
El segundo ejemplo se implementó con un PIC16C64 para formar un Kernel Semi
Prioritario conducido por interrupción. Este ejemplo transforma las rutinas series
de entrada y salida del primer ejemplo en 'Rutinas de Servicio de Interrupción (ISR)
para obtener mayor velocidad y precisión
Las técnicas de diseño de tiempo-real permiten al "técnico" superar problemas
complicados para afrontar tareas más simples.
Estas unidades de código más simples permiten una respuesta más rápida a
eventos importantes y, a la vez, priorizan los trabajos a realizar en un formato
5
Desarrollo de Sensor de Nivel Ultrasónico
probado y estructurado. El kernel hace el trabajo de conservar el tiempo, la
armonía y una comunicación fluida entre todas las tareas. Se pueden hacer más
actividades en el mismo tiempo, ya que es posible realizar determinadas tareas
mientras que otras aguardan que ocurra un evento específico.
Las técnicas de "estado-conducido" también permiten códigos más pequeños, ya
que se condensa más información en las variables de estado y la estructura del
código.
Kernel Multitarea
Es posible "atender" varias tareas al mismo tiempo (en apariencia). Cada tarea
cree que es la propietaria de la CPU, pero esta apariencia es controlada por el
kernel. Sólo se puede ejecutar una tarea a la vez, pero otras tareas no bloqueadas
pueden estar operando mientras se esté ejecutando una determinada. Para que
sea "Multi-tareas" se ensamblan interrupciones, eventos, comunicaciones, datos
compartidos y debe existir sincronismo para realizar un trabajo. La Programación
de Tiempo-Real es un conjunto de ideas, conceptos y técnicas que permiten dividir
problemas en unidades de código basadas en unidades de tiempo, o eventos que
conducen una tarea de un estado a otro.
Sección Crítica
Una sección crítica es una estructura de datos compartidos, un recurso
compartido, una sección de tiempo crítico de código, o una sección no-reentrante
de código que sólo puede tener un "dueño" que pueda ver, cambiar o usar esta
sección en cualquier tiempo específico. Estas secciones no deben ser
interrumpidas durante el proceso de actualización.
Deben ser protegidas para que no puedan acceder a ellas otras tareas que
cambien los indicadores o los datos o modifiquen el hardware al mismo tiempo. Si
dos tareas acceden a una sección crítica al mismo tiempo, los datos cambiarán a
tal punto que se originará un "soberano desastre".
Cuando se realice una aplicación debe asegurarse que las secciones críticas sean
pequeñas, y que tengan tiempo para que sean "atendidas" las interrupciones
pendientes. Los programadores RT tendrán muchos problemas si no comprenden
las secciones críticas. Aun sin interrupciones, debe proteger las variables que
cambian fuera de tiempo, como la variable de byte conformado xmt byte. Esta
variable cambia cada vez que el ESTADO cambia para la Tarea que está fuera de
la Serie.
Para coordinar diferentes tareas que intentan controlar una sección crítica se usan
dos técnicas: "Semáforos (banderitas) e Interrupciones Inhabilitadas".
En la figura 5 se da un diagrama de transición de "tarea /proceso de estado".
6
Desarrollo de Sensor de Nivel Ultrasónico
Recursos Compartidos
Las estructuras de datos, las pantallas, el hardware I/O, y las rutinas noreentrantes son ejemplos de recursos. Si dos o más tareas usan estos recursos,
entonces se llamarán Recursos Compartidos y deberá protegerlos de posibles
corrupciones. Sólo pueden tener un dueño, una manera de indicarle a las otras
tareas que deben esperar, y posiblemente una lista de espera para futuros
usuarios del recurso. Un ejemplo raro de recurso compartido sucede en una
secuencia de sincronización crítica de operaciones de entrada y salida para
controlar un hardware determinado. Debe inhabilitar las interrupciones antes de
comenzar esta secuencia, y rehabilitarlas luego de su finalización. Tarea #1
funciona como una rutina "no-reentrante" que debe ser finalizada por su poseedor
actual antes de que otra tarea pueda usarla.
Interrupción de Contexto/Interrupción de Tarea
Cuando una tarea se hace cargo de otra tarea, los valores actuales de los
registros de la CPU para la tarea en ejecución serán guardados y los viejos
registros guardados para la nueva tarea serán realmacenados. La nueva tarea
continúa donde fue recogida. Todo esto lo realiza la parte "Interrupción de
Contexto del Kernel de Tiempo-Real". Usualmente cada tarea tiene una "área de
almacenaje para interrupción de contexto".
Cada SP de una tarea (Indicador de Acumulación que indica su propia
acumulación) se guarda allí junto con todos los otros registros importantes
guardados. El del PIC16C64 usa un concepto similar, y conserva la cantidad de
registros guardados por cada tarea que se va cumpliendo. Usamos un viejo
concepto llamado "de donde provengo". La variable "FROM" se usa para indicarle
al director que debe iniciar la tarea donde se interrumpió. Esto se debe a que no
se puede manejar la acumulación en la familia PIC16CXXX. Por esta razón
también tenemos un kernel "Semi-Prioritario" en el PIC16C64. Cuanto más rápida
sea la interrupción de contexto, mejor será su operación.
Planificador
El planificador es la parte de un kernel que decide cuál es la siguiente tarea a
ejecutarse. En esta sección nos referiremos a distintos tipos comunes de
planificadores. Es aquí donde se realiza la planificación antes de iniciar la
construcción de un nuevo dispositivo.
Al comprender los diferentes tipos de planificadores, y sus características y
problemas específicos, podrá saber cuál es el que más se ajusta a sus
necesidades.
Se pueden implementar otras técnicas más creativas, pero asegúrese de permitir
que todas las tareas se ejecuten a su debido tiempo.
7
Desarrollo de Sensor de Nivel Ultrasónico
Vea en la Figura 5 cómo cada tarea debe estar en "Estado Preparado" o "Estado
en Ejecución " para que pueda ser considerada por el planificador a fin de que
tenga el control temporario de la siguiente CPU.
Eilat+a
do
totoclo
EPOCOO4n
1.i1 l*á.CIT
to
t^^
t oto di=.n1.:1
Q 61
dar dar
Figura 5
Entorno No-Prioritario
El Kernel No-Prioritario también es llamado "Kernel Cooperativo", ya que con su
uso las tareas sólo abandonan el control cuando necesitan estar en coordinación
con otras tareas y eventos. Así se demuestra que a pesar de ser un tipo de kernel
simple, se pueden hacer muchas cosas con él. El tipo de Kernel No-Prioritario es
adecuado para los PIC16C5Xs de tipo "no-interrupción".
La pulsación central del PIC16C54 es el contador TMRO interno que atraviesa de
un valor alto a uno bajo del contador.
Use el pre escalímetro para ajustar las unidades de tiempo. Las tareas muy
rápidas leen de continuo y directamente el TMRO en comparación con el delta de
tiempo necesario para ver si se enciende.
Entorno Prioritario
En un Kernel Prioritario, una tarea en ejecución puede ser permutada para que
otra tarea prioritaria más importante se ejecute en su lugar. El Kernel Prioritario se
basa más en las interrupciones que en su fuerza de conducción. La interrupción
de contexto se encuentra en el centro de este tipo de Kernel.
Para implementar un verdadero Kernel Prioritario, debe ser capaz de manejar su
acumulación. Esta es la causa por la cual implementamos un kernel "SemiPrioritario" en el PIC16C64, con las mejores características de ambos tipos de
kernels.
En el PIC16C54 se trasladan algunas tareas a las /SRs para manejar las I/Os.
Esta técnica opera muy bien, ya que las ISRs suelen ser muy breves, y realizan la
mayor parte del trabajo. La interrupción del TIMERO es la pulsación central en el
ejemplo del PIC16C64. Debe tener una interrupción de reloj para activar un
verdadero Kernel Prioritario.
8
Desarrollo de Sensor de Nivel Ultrasónico
Planificador en Rueda
Cuando el planificador encuentra tareas que tienen las mismas prioridades en la
fila de "preparadas", usa una técnica llamada Planificación en Rueda para
asegurarse que se cumplan todas las tareas. Esta técnica requiere mucho
cuidado, y es una de las más creativas que puede usar su planificador para
ajustarse a sus necesidades, todas las tareas están programadas para ejecutarse
apenas después de su tiempo asignado. Esto implica que ninguna tarea dominará
a las otras bajo este abordaje simple. En los viejos tiempos de los sistemas
Operativos de Tiempo-Real, este término se usaba para designar "partición de
tiempo". Los actuales Kernels Prioritarios, con sus esquemas de prioridad y sus
capacidades de comunicación entre tareas, implican un desarrollo en este sentido.
Prioritario vs. No-Prioritario
El Kernel Prioritario es más difícil de desarrollar, pero más fácil de usar, a pesar de
que suele utilizarse de manera incorrecta. Le llevará más tiempo configurar el
Kernel No-Prioritario pero es mejor para los microcontroladores más contraídos.
Con el No-Prioritario obtendrá un mejor tiempo de respuesta entre una causa y la
respuesta para este evento.
El Kernel Prioritario es más predecible en sus tiempos de respuesta, y puede ser
calculado al tiempo máximo para completar un trabajo determinado. El Kernel
Prioritario es más caro.
Reentradas
En un Kernel Prioritario, dos o más tareas pueden pretender la utilización de una
misma subrutina. El problema es que no se puede controlar cuándo se remueve
una tarea para que otra tome su lugar.
Cuando una subrutina usa sólo variables locales o almacenadas en las
acumulaciones de cada tarea, este proceso se denomina reentrada o "rutina pura".
En una rutina pura no se pueden usar variables o hardware globales. Este
requerimiento de la reentrada conduce a considerar toda la subrutina como una
sección crítica.
Prioridad de Tarea
Todas las tareas no se crean de la misma manera. Ciertos trabajos deben
realizarse a tiempo para que no se pierdan determinados datos. Por lo tanto, debe
seleccionar según este criterio cuáles son las tareas de mayor prioridad para
hacer una escala de mayor a menor.
9
Desarrollo de Sensor de Nivel Ultrasónico
Algunos kernels hacen que la prioridad de cada tarea sea diferente. La
determinación de la prioridad requiere una cuidadosa planificación antes de la
codificación del trabajo de diseño.
Inversiones de Prioridad y Prioridades Estáticas vs. Dinámicas
Para los kernels de Tiempo-Real más complicados, se usan tareas y prioridades
estáticas. Algunas veces se usan prioridades dinámicas para solucionar
detenciones y otras situaciones complejas que pueden surgir de una mala
comprensión de los problemas y las técnicas de Tiempo-Real. Si llega a necesitar
prioridades dinámicas, deberá revisar cómo dividió el problema, y hacer
subdivisiones hasta incluir los recursos en cuestión bajo una "banderita". También
podría dividirlo más para tener más tareas que no necesiten dos o más recursos
para completar su trabajo, y mejorar la comunicación entre las tareas nuevas.
Con respecto a las tareas dinámicas, debería definir el problema de tal forma que
sepa, al comienzo de la codificación, el uso continuo de todas las tareas.
Necesitará más tiempo en la etapa de planificación para establecer una buena
comunicación entre las tareas, pero es un buen método para mantener las tareas
y prioridades dinámicas fuera del diseño del kernel.
La Inversión de Prioridad es un truco usado para manejar un sistema mal
diseñado, que invierte las prioridades de modo que permite la ejecución de las
tareas más bajas que pudieran estar bloqueadas. Este es un truco muy barato, y
no debiera considerarse en el diseño de un Kernel de Tiempo-Real. Use las otras
técnicas descriptas en esta sección para solucionar este tipo de problema.
Semáforos (banderitas)
Hay básicamente dos tipos de semáforos: binario y contador. El semáforo binario
permite únicamente un usuario, y todas las tareas que desean acceder a él
deberán esperar. El semáforo contador tiene una lista de usuarios que necesitan
acceso. Los semáforos se pueden usar de muchas maneras. Puede implementar
semáforos contadores con semáforos binarios.
Exclusión Mutua
La Exclusión mutua es un método para excluir tareas a partir de la ganancia del
acceso a secciones críticas. La Exclusión mutua es el proceso de excluir otras
tareas del acceso a recursos compartidos. La creación de un semáforo es un
proceso muy complicado.
Su construcción debe ser atómica. Esto implica que luego de iniciarse el proceso,
no puede ser interrumpido hasta que haya guardado el nombre del nuevo usuario.
Desde este punto en adelante, sabe que nadie podrá desalojar y cambiar a los
poseedores (usuarios).
10
Desarrollo de Sensor de Nivel Ultrasónico
Detención
La detención es una condición en la cual dos o más tareas tienen recursos que
otras tareas necesitan para completar su asignación, y éstas no liberan sus
propios recursos a menos que las primeras tareas no los liberen primero. A esto
se llama falta de cooperación. Estos problemas surgen por la falta de comprensión
del problema original.
Sincronización
Los semáforos pueden usarse para sincronizar tareas con el propósito de que se
intercambien mensajes. Los semáforos también pueden iniciar tareas, detenerlas
o comenzarlas juntas. Son los elementos fundamentales de la programación de
Tiempo-Real. Una vez que construya un semáforo binario para su kernel, podrá
construir semáforos más complejos para sincronizar lo que desee.
Comunicación entre Tareas
En los kernels más grandes se pueden incluir métodos de comunicación más
complejos para intercambiar datos entre tareas. La mayor parte de la
comunicación se realiza dentro del kernel. Se requiere mucho más espacio y
velocidad de ejecución para implementar estos métodos en un sistema operativo.
Señales de Evento
Normalmente se implementan bits simples en dos estados (on y off) como Señales
de Evento. Se puede almacenar más información por cada Señal de Evento de
acuerdo al tiempo en que fue grabada, quién la grabó, a quién pertenece el evento
y cuales fueron los datos perdidos.
Casillas de Correo para Mensajes
Esta es una característica útil si tiene espacio RAM. Las casillas de correo le
permiten al diseñador intercambiar mensajes entre tareas, revisar los mensajes
cuando la tarea está preparada y responderle al remitente que el mensaje ha sido
recibido. Se puede enviar un mensaje a varias tareas al mismo tiempo.
Colas de Mensaje
Esta característica también es muy buena si tiene tiempo de ejecución y RAM para
implementarla. Las colas están relacionadas con las Casillas de Correo. Pueden
guardar distintos mensajes, aun después de su lectura, para procesarlos más
tarde. También puede operar en los mensajes de mayor prioridad antes de
manejar el resto. Puede crear varias opciones con las Casillas de Correo y las
Colas.
11
Desarrollo de Sensor de Nivel Ultrasónico
Interrupciones
Las interrupciones son uno de los mejores "inventos" para solucionar problemas
de Tiempo-Real. Con ellas puede obtener una respuesta muy rápida a sus
necesidades y retornar a lo que estaba haciendo. El único problema es que
pueden ocurrir en los peores momentos. Esto implica que deberá aprender a
activarlas y desactivarlas para proteger sus secciones críticas. Advierta que antes
de manejar una interrupción, deberá guardar todos los registros importantes para
que pueda restaurarlos a fin de que el kernel pueda reiniciar la tarea donde fue
interrumpida. Este proceso se asemeja a la interrupción de contexto, pero en estas
interrupciones (interrupts), siempre deberá guardar y restaurar. En el PIC16C64,
los registros Status, W y FSR se guardan en RAM debido a la interrupción. El
registro PC se guarda en la acumulación por el hardware.
Recuperación, Respuesta y Estado latente de Interrupción
El Estado latente de Interrupción se define como el período de tiempo más largo
en el que las interrupciones son desactivadas, más el tiempo que le lleva a la ISR
iniciar su ejecución.
Para un sistema No-Prioritario, el Tiempo de Respuesta de Interrupción se define
como Estado latente de Interrupción más el "tiempo de guardado del contexto".
Para un sistema Prioritario, debe agregar el tiempo de ejecución en el cual el
kernel graba la interrupción. Para un sistema No-Prioritario, el Tiempo de
Recuperación de Interrupción se define como el tiempo que lleva restaurar el
contexto guardado más el reinicio de la tarea interrumpida.
Para un sistema Prioritario, la Recuperación es similar a la del sistema NoPrioritario más el tiempo que le lleva al kernel en el planificador la decisión de cual
será la siguiente tarea a ejecutarse. Estas mediciones sirven para comparar la
mayoría de los kernels.
Tiempo de Procesamiento ISR
El Tiempo de Procesamiento ISR (Rutina de Servicio de Interrupción) se define
como el tiempo en el cual una ISR controla la CPU. El tiempo debiera ser breve, y
si necesitara realizar un procesamiento extenso en una ISR, debería quebrar la
ISR. La nueva ISR almacenará los datos nuevos y el retorno. Luego debería crear
una nueva tarea y trasladar el código extra de la vieja ISR a la nueva tarea.
Recuerde que cuanto más tiempo le demande una interrupción, más tiempo
tardará en responder a otra interrupción apremiante.
El "alojamiento de interrupciones" es el espacio donde una interrupción de alta
prioridad puede interrumpir a otra de prioridad más baja. Debe ser cuidadoso al
hacer esta operación, ya que distintas interrupciones también pueden tener
secciones críticas, y debiera desactivar interrupciones para proteger estas
12
Desarrollo de Sensor de Nivel Ultrasónico
secciones. Muchos microcontroladores no tienen este alojamiento de
interrupciones, entre ellos la familia PICI6CXXX.
Interrupciones No-Ocultables
En algunos microprocesadores, como en los de la familia PlCmicro, puede activar
y desactivar interrupciones seleccionadas. Esta es una herramienta muy útil para
controlar la corriente de datos dentro y fuera del sistema. Algunos sistemas tienen
Interrupciones No-Ocultables (enmascarables). En este caso no las puede
desactivar mediante un ocultamiento de software. Estas NMIs (abreviatura de
Interrupciones No-Enmascarables) se usan como contraseñas de reloj, para evitar
problemas con las secciones criticas de una interrupción que no pueda desactivar.
La familia PICI6CXXX no tiene NM/s. Estas interrupciones no son tan útiles como
las ocultables.
Contraseña de Reloj
La Contraseña de Reloj es la pulsación central del sistema. Es la forma en la que
el Kernel controla el tiempo (relativo y absoluto). También determina cómo el
Kernel se reinicia para ver si ha finalizado una demora, a fin de que la tarea pueda
ser trasladada al estado preparado. En nuestros ejemplos se usó el reloj Timer O.
Debe tener una interrupción de reloj para crear un verdadero Kernel Prioritario.
Esta es otra razón por la cual implementamos un Kernel No-Prioritario en el
PIC16C54, ya que no tiene interrupción de reloj.
13
Desarrollo de Sensor de Nivel Ultrasónico
PROGRAMAR UN PIC
Estructura de un Programador de PIC
Es muy fácil construir productos electrónicos con bajo costo, espacio reducido y
con características multifuncionales; de hecho, son muchos los circuitos
decodificadores de señales de TV construidos con pequeños controladores
programables integrados que contienen programas sencillos. El objetivo es que se
pueda programar un PIC con la ayuda de una computadora, sin que para ello se
necesiten complicados circuitos adicionales. Se necesita un dispositivo de
programación para incorporar el software de los chips que venimos describiendo,
los PIC's. El costo de un dispositivo de estas características suele ser muy alto,
razón por la cual se prefiere omitir para el diseño de sistemas electrónicos con
estos componentes. Obviamente, el programador PIC necesita algunos
componentes accesorios para ser construido pero resulta una solución ideal para
quienes poseen computadora. El rasgo más importante de esta unidad es que no
necesita partes especializadas y es un circuito muy simple.
Luego de armado se lo conecta al po rt (puerto) de la impresora de cualquier PC (el
puerto no necesita ser bidireccional), y ejecutar un software (programa) para iniciar
la programación de los microcontroladores. Se hará referencia a la serie PIC
16F84, 16F83 y 16C84, por ser componentes de que se consiguen con facilidad.
Se puede considerar el microcontrolador como un circuito integrado que puede
ser "personalizado" si se escribe un programa en lenguaje de máquina
(assembly). Dicho de otra manera, cargando el programa en el área ROM del
microcontrolador, obtendremos un circuito integrado específico para nuestras
necesidades. Algunas veces el programa está diseñado para ser algo más que un
oscilador o una llave lógica, pero lo importante es que el PIC realizará
exactamente lo que se le indique.
La familia PIC de la empresa Microchip Inc. es muy simple de operar, es de bajo
costo y gran parte del software utilizado para crear el código de programa
necesario para la programación del PIC está disponible en el website de
Microchip.
De los tipos de PIC's disponibles, los más fáciles para trabajar, son el 16F83, el
16F84 y el 16C84. Su ROM es eléctricamente borrable, de modo que no necesita
una luz ultravioleta para borrar y reprogramar los dispositivos. El 16F84 es el más
empleado, tiene 68 bytes de RAM y 1.024 palabras de memoria de programa. La
memoria de programa es un EEPROM tipo flash, que puede ser reescrito más de
un millón de veces. Cualquier información almacenada será preservada por más
de cuarenta años, sin alimentación alguna o señal de refresco.
El 16C84 es muy similar, pero utiliza un tipo de EEPROM más viejo.
El 16F83 puede ser considerado "e/ hermano menor", ya que tiene sólo la mitad
de memoria; aunque tiene a su favor que es el de costo más bajo costo. Estos
14
Desarrollo de Sensor de Nivel Ultrasónico
PIC's requieren de un cristal de cuarzo o un resonador para los circuitos de reloj,
También se puede emplear un resistor o un capacitor para fijar la frecuencia de
oscilación.
La tensión de alimentación para el 16F84 puede ser de 4 a 6V pero existe una
versión de este integrado que puede operar inclusive, con 2V. Tiene 13 pines de
entrada/salida, cada uno de los cuales puede ser configurado individualmente para
que sea una salida o una entrada.
Programar un PIC de Microchip Inc.
Programar los chips PIC mencionados es muy sencillo:
1. Se debe aplicar 5V a la pata 14 (con la pata 5 conectada a tierra).
2. Eleve la tensión de la pata 4 a 12V).
3. Coloque los datos en la pata 13; dichos datos serán enviados a la ROM de
a un bit por vez en concordancia con la señal de reloj. Los datos serán
enviados al conector 13 y en el momento de ser grabado, se eleva la
tensión de la pata 12 a 5V durante al menos 0,1ps antes de ser bajado de
nuevo a nivel tierra.
Los datos que se dirigen al chip contienen comandos que especifican los
numerosos pasos del proceso de programación y los datos que serán guardados
en la ROM del chip.
Para verificar que el PIC ha sido programado correctamente, compruebe que el
PIC también pueda enviar los datos contenidos hacia el exterior a través de la pata
13.
El diagrama esquemático del Programador para PIC que se ha venido
mencionando, se muestra en la figura 6. El circuito está diseñado para adaptarse
al port de la impresora de cualquier PC.
1
AII
I
'.
Va. llt A M`
I
Il. o IM
90GKC1
Boom A)'.'•.YWCi PON/FA
TO PC
AAIV.IiCL
FORT
Figura 6
15
Desarrollo de Sensor de Nivel Ultrasónico
Los datos de programación y las señales de sincronismo se aplican al PIC a través
de R2 y R3. Los diodos D1, D2 y el resistor R1 dejan que el pin 13 del PIC pueda
ser utilizado como una entrada para la programación y una salida para la
verificación (Una misma pata de I/O puede ser empleado tanto como entrada o
salida). Cuando la pata 17 del conector en el po rt de la impresora está en estado
alto, la PC puede leer los datos desde la pata 13 del PIC a través de la pata 11 del
conector de la impresora. De este modo, R1 y D2 se encargan de detener la señal
de datos.
Cuando la pata 11 del conector de la impresora está bajo, D1 conduce. El ánodo
de D2 es bajado a tierra para bloquear la señal de datos. El chip PIC estará libre
para recibir datos desde la pata 14 del po rt de la impresora. La conexión que crea
D1 entre las patas 11 y 17 del conector de la impresora permite que el software de
programación detecte si el programador está conectado al port de la impresora.
Los capacitores Cl y C2 eliminan el ruido que pueden producir los cables que
llevan la corriente DC. La tensión necesaria para que se produzca la programación
es comandada por Q1 a través del pin 2 del po rt de la impresora. Se requieren
dos suministros de tensión para poner en marcha el Programador PIC; 5V para la
pata 14 y 12V para la pata 4.
Estas tensiones pueden ser tomadas desde la misma PC o desde una fuente
externa. La tensión a aplicar en la pata 4 debe estar comprendida entre 12V y
14V. Asegúrese de que la línea de 12V tenga realmente 12V como mínimo. Si
desea emplear fuentes externas puede utilizar el esquema de suministro de
tensión mostrado en la figura 7.
Figura 7
El circuito del programador es tan simple que puede ser construido fácilmente en
una pequeña placa de circuito impreso con uso de técnicas de construcción
estandarizadas. El montaje por separado del conector del cable hace que el
Programador PIC sea más fácil de utilizar, simplemente se lo conecta al po rt de la
impresora de la PC con un multicable.
16
Desarrollo de Sensor de Nivel Ultrasónico
Programación del PIC
La manera más fácil de aprender a utilizar el Programador PIC es escribir un
programa simple e incorporarlo a un chip. Este modo de aprender las
características del programador, también le brindará la oportunidad de verificar su
hardware y software.
Figura 8
Si embargo, también podemos hacer el circuito con un PIC, tal como se muestra
en la figura 8.
Si bien este circuito puede costar más caro que un circuito digital tradicional, es
más pequeño y no necesita tanto espacio físico para contener todos sus
componentes. De todos modos, hay otro argumento para utilizar el PIC en una
tarea de estas características: su inteligencia. Se pueden generar diferentes
modelos o seleccionar múltiples modelos con la adición de un simple mecanismo
interruptor. Con componentes discretos, el circuito debiera ser descartado y
rediseñado para adaptarse a este tipo de cambios. Con un PIC, sólo es cuestión
de modificar el programa, borrar el PIC y reprogramarlo. Para programar un PIC
desde una PC hace falta un programa y conocer el set de instrucciones de
microcontrolador.
De esta manera, el programa, escrito en lenguaje Assembly PIC, se muestra en la
Tabla 1. La parte más importante de cualquier programa es la documentación. Si
deja notas en el programa, recordará qué es lo que estaba intentando hacer
cuando revise el programa, la vez siguiente. En el programa, estas notas aparecen
en cualquier renglón que se inicie con punto y coma. Estos renglones serán
ignorados por el software, mediante un montador que convierte el texto del
programa en números binarios que el PIC reconoce como instrucciones.
Las primeras tres instrucciones son:
processor, 16f84
17
Desarrollo de Sensor de Nivel Ultrasónico
include <p16f84.inc>L _config.
:COdigo kssembly para mio`roo>ntrolador PIC16 84 como
:circuito secuencia'.
.Encendido de Led en secuencia rotativa.
.Con una frecuencia de 75kHz, cada led permanecerá
;encen:iolo durante 0.5segundos,
Conflgr.rracitA de la CPU
(se trata de un 16F84 con oscilador RC
y grabado con tension positiva durante
el pulso en estadr, alto )
procesor 1034
include- <p16f84.lnc:r
_config _RC_cs. & t^I}I OFF & P+4RTE _ON
sea, variables las dos direcciones cle memoria
equ
equ
= dlre:clán hexa 1 F
= dirección hexa lE
H'1F
H'1E
Ptopfama
org
0
; comienzo en la olueo:hon
Elijo al Port B corno salida y la inJclalizo
mroEdu•B'00000000'
t^is
PORTB
Bl100 0 000 1'
n,oVwf
F'OF'TE,
w:= 00000' ii bina nog
;porte. ctrl register '_ w
w:= 00000))1 binario
port B itself
w
Pote el bit del port B hacia la izquierda
mlaol n •rif
PpkTP.f
Espere un tiempo para ejecutar nuevamente la subrutina o
loop
J1oop:
kocp
moclw
movxf
movwf
decfsz
godo
•Jectsz.
goto
Estas son instrucciones para
el técnico. La primera
instrucción le indica al técnico
que utilice las instrucciones
del 16F84. La segunda le
indica que debe incluir un
constantes
conjunto
de
un
en
predeterminadas
archivo llamado p16F84.INC.
Finalmente, la tercera
establece varios bits de
configuración en el PIC para
activar o desactivar
determinadas características
del hardware.
En este ejemplo, el chip
utilizará su oscilador RC, su
WDT (cronómetro "vigilante")
será desactivado y el PWRTE
(reloj automático de
reseteado) será activado. De
este modo, el PIC
"rebooteará" (se pondrá en
marcha) con cualquier tensión
que se le aplique, pero no
"rebooteará" automáticamente
muchas veces por segundo.
d'50'
w = 50 en decimal
J
K
J:= w
kf';f
kk,op
ji
jlc•:ip
':lo hace' +?s nuevamente
gano
mloop
K := w
:K= K-1. salte
stK =0
J=J1, salte siJ =^
Es importante darle uso a la
instrucción _config en todos
los programas utilizados con
el Programador PIC. El
programa del técnico no
realizará la programación
real, sólo creará un archivo
con los números que serán
transferidos al chip PIC como
un segundo paso.
end
Tabla 1
18
Desarrollo de Sensor de Nivel Ultrasónico
Las dos instrucciones que reservan espacio de memoria en el RAM de los PIC's
para dos variables, que se llamarán "J" y "K". El proceso es similar a estipular
variables en BASIC, con la diferencia de que se deben determinar las ubicaciones
físicas de RAM que se utilizarán. En este caso, las ubicaciones (en una
numeración hexadecimal) son 1E y 1 F. Estas ubicaciones serán utilizadas para
almacenar calculadores que registren la cantidad de veces que una subrutina
(loop) ha sido repetida.
La instrucción org le indica al montador que el programa se inicia en la ubicación O
de la memoria de programa y que el programa real será el próximo.
La primera instrucción real del PIC es una instrucción movlw que borra el
contenido del registro W. Ese número es luego copiado en el registrador de
control TRIS para el Po rt B y establece que las patas 6 a13 (que son manejadas
por el Po rt B) sean terminales de salida en vez de serlo de entrada. Si hubiese
querido que todas fuesen entradas debiera haber copiado en el po rt B la palabra
"11111111"
Volviendo a nuestro programa, seguidamente se introduce el número binario
00000001 en el registrador W y lo copia al Po rt B. Esta acción enciende el LED
conectado a la pata 6, dado que ahora, el terminal Pata O pin 6, que es de salida,
tiene un nivel "1", es decir, un nivel alto. Pero antes de que tenga tiempo de
visualizar la llegada del pulso al LED, el programa ejecutará una instrucción rlf que
rota los contenidos del Po rt B a la izquierda y cambia los datos a 000000-10. Esta
acción encenderá el segundo LED conectado al conector 7. La repetición de la
instrucción producirá 00000100, luego 00001000, y así sucesivamente, esto hará
que los diferentes leds se enciendan en secuencia.
Entre rotaciones, el programa necesita esperar 1/2 segundo aproximadamente, de
modo que la acción no es tan rápida como para que no se la pueda apreciar. Esa
es la causa por la cual aparece en el programa una subrutina de demora. El
programa almacena el número decimal 50 en las ubicaciones de memoria "J" y
"K", utilizando la instrucción decfsz para la cuenta regresiva de 50 a 0.
Las instrucciones condicionales del PIC son inusuales, y el descfsz no es una
excepción. Esta instrucción significa: "Decrementar y omitir la instrucción siguiente
si la variable es igual a cero".
Normalmente, el resultado no es cero y la parte "ir a" de la instrucción no es
omitida. De tal modo, la subrutina (loop) se ejecuta repetidamente hasta que K
llega a cero.
El programa real utiliza dos loops (subrutina), una incrustada dentro de la otra.
19
Desarrollo de Sensor de Nivel Ultrasónico
Finalmente, ir a mloop envía la ejecución al comienzo del programa. La instrucción
end no es una instrucción para el microcontrolador (CPU); sólo le indica al
montador que el programa ha finalizado.
El 16F84 tiene 35 instrucciones CPU diferentes. Como puede ver a partir del
programa simple que hemos creado, no debe dominarlas a todas para escribir
programas útiles.
20
Desarrollo de Sensor de Nivel Ultrasónico
Transmisión de Datos a Través de un PlC
Tal como lo dice MICROCHIP en sus páginas Web, los microcontroladores
PIC16CXXX son de alto rendimiento y están basados en EPROM de 8 bits.
Algunos de los miembros de esta serie (como PIC16C71 y PIC16C84) no tienen
un port (puerto) serie asincrónico. A continuación describiremos la implementación
del software que permite la comunicación con el exterior por medio de las
interrupciones de la I/O Serie Asincrónicas (Half Duplex RS-232 Communications).
Los PIC's pueden operar a altas velocidades con un mínimo de 250ns de tiempo
de ciclo (con una frecuencia de reloj de entrada de 16MHz).
Figura 9
Transmisión de Datos RS-232 desde el PIC
El modo de transmisión se puede implementar en forma directa a través del
software.
Una vez que se conocen la frecuencia de reloj de entrada y el promedio de
información a transmitir (baud), se puede calcular la cantidad de ciclos de reloj por
bit. El cronómetro del chip TimerO, con su pre-escalímetro, puede ser usado para
generar una interrupción en el desbordamiento de TMRO. Esta interrupción del
desbordamiento TMRO puede ser usada como regulación de tiempo para enviar
cada bit. La frecuencia de reloj de entrada (_Clkln) y el Promedio Baud
LBaudRate) pueden ser programados por el usuario y el valor de tiempo límite de
TMRO (el período para cada bit) es calculado en el tiempo de ensamble. En el
tiempo de ensamble también se determina si debe asignarse o no el preescalímetro aTimerO. Este cálculo se realiza en el archivo de encabezado rs232.h.
Se pueden obtener transmisiones de muy alta velocidad si se realiza con
"demoras de software" en lugar de ser conducida "a cada interrupción"; de
cualquier modo, el procesador se dedicará totalmente a cumplir con este trabajo.
La transmisión de un byte se realiza apelando a la función PutChar y luego se
transmite el byte de datos en el TxReg. Antes de apelar a esta función (PutChar),
los datos deben cargarse en TxReg, y debe asegurarse que el puerto serie esté
21
Desarrollo de Sensor de Nivel Ultrasónico
libre. El puerto serie está libre cuando los bits _txmtProgress y _rcvOver se
encuentran despejados.
La función PutChar permite lo siguiente:
Asegurarse que los bits _txmtProgress & _rcvOver estén despejados.
Cargar TxReg con datos a ser transmitidos.
Llamar a la función PutChar.
Recepción de Datos RS-232 por el PIC
La implementación del modo de recepción difiere poco del modo de transmisión.
A diferencia del pin de transmisión (TX en el código del ejemplo es RB7, pero
podría ser cualquier pin I/O), el pin de recepción (RX) debe conectarse al pin
RA4/TOC-KI. Esto se debe a que en la recepción, el Bit de Inicio, que es
asincrónico por naturaleza, debe ser detectado. Para detectar el bit de Inicio,
cuando se coloca en el modo Recepción, el módulo TimerO es configurado en el
modo Contador.
El registro OPTION es configurado de modo que el módulo TimerO sea colocado
en el modo Contador (incremento en el reloj externo del Pin RA4/TOCKI) y
ajustado para que aumente en el extremo de caída del pin RA4/TOCKI sin
asignarle el pre-escalímetro. Luego de realizar esta configuración, TMRO (Archivo
Reg 1) es cargado con OxFF. Un cambio de nivel en TOCKI hace que TMRO gire
desde OxFF hasta Ox00, así genera una interrupción que produce un Bit de Inicio.
El pin RA4/TOCKI es probado nuevamente para asegurar que la transición en
TMRO sea la correcta. Luego de detectar el bit de inicio, se reconfigura el módulo
TimerO para que se incremente en el reloj interno y se le asigna un preescalímetro de acuerdo a la frecuencia de reloj y al promedio del "baud"
(configurados de la misma manera que en el modo transmisión).
El puerto serie de software es colocado en el modo recepción cuando se hace un
llamado a la función GetChar
Antes de llamar a esta función, asegúrese que el puerto serie esté libre (por
ejemplo, los bits de status _txmtProgress y _rc-vOver deben estar en "O"). Para
concluir la recepción de un byte, deben guardarse los datos en RxREg y
despejarse el bit rcvOver.
Resumen de la función GetChar:
1. Asegurarse que los bits _txmtProgress & _rcvOver estén despejados.
2. Llamar a la función GetChar.
3. El Byte recibido debe estar en TxReg luego de despejarse el bit _rcvOver.
22
Desarrollo de Sensor de Nivel Ultrasónico
Generación del bit de Paridad
Se puede activar la paridad en el tiempo de ensamble, si se configura la señal
"_PARITY-ENABLE" a TRUE. Si se activa, la paridad puede configurarse en
paridad PAR o IMPAR. En el modo de transmisión, si se activa la paridad, el bit de
paridad es calculado y transmitido como el noveno bit. En recepción, la paridad es
calculada y comparada con el noveno bit recibido. Si no son iguales, se debe
ajustar el bit de error de paridad en el Registro de Status/Control del RS-232 (el bit
ParityErr del SerialStatus reg). El bit de paridad se calcula usando el algoritmo
mostrado en la figura 10. Este algoritmo es altamente eficiente usando las
instrucciones SWAPF y XORWF del PIC16CXXX (con capacidad de llevar al
destino, como así también al mismo registro de archivo o al registro W). La
subrutina (llamada GenParity) se encuentra en el archivo txmtr.asm.
Brt
^
Paridad
Figura 10
Opciones de Tiempo de Ensamble
El "firmware" está escrito como una rutina de propósito general, y el usuario debe
especificar los parámetros que se muestran en la Tabla 2 antes de ensamblar el
programa. El registro Status/Control se describe en la Tabla 3.
Tabla 2
LISTAQ DE OPCIONES DE
TIEMPO DE ENSAMBLE
_Clkln: Frecuencia de reloj de
entrada del procesador
_Baud Rate: Promedio de
información a transmitir (baud)
deseado. Puede usar cualquier
valor válido. El máximo promedio
"baud" posible dependerá de la
frecuencia de reloj de entrada. Se
debe probar de 600 a 4800 Baud
cuando se usa un Reloj de Entrada
de 4MHz. Se puede emplear un
valor entre 600 a 19.200 Baud
cuando la frecuencia del reloj de
entrada es de 10MHz. Se pueden
emplear promedios más altos
usando frecuencias de reloj de
Tabla 3
ASIGNACION DE BITS DE STATUS
SERIE/
REGISTRO DE CONTROL
Bit #: O
Nombre: _txmtProgress
Descripción: 1 = Transmisión en progreso - O =
Transmisión por línea libre
Bit #: 1
Nombre: txmtEnable
Descripción: Configure este bit en inicialización
para permitir la transmisión. Este bit se usa para
abortar la transmisión. Se debe abortar la
transmisión si en medio de ella (por ejemplo,
cuando el bit _txmtProgress es "1") el bit
_txmtEnable se encuentra despejado. Este bit se
ajusta automáticamente cuando se llama a la
función PutChar.
Bit #: 2
Nombre: _rcvProgress
23
Desarrollo de Sensor de Nivel Ultrasónico
entrada más altas.
Luego de especificar _BaudRate &
_CIKin, el programa seleccionará
automáticamente todos los registros
de tiempo apropiados.
_DataBits: Puede especificar de 1 a
8 bits de datos.
_StopBits: Limitado a 1 Bit de
Detención. Debe ser configurado.
_PARITY_ENABLE:
Señal de
activación de paridad. Configúrela
en VERDADERA o FALSA. Si usa
PARIDAD, configúrela a
VERDADERA, de otro modo en
FALSA. Vea la descripción siguiente
de la señal "_IMPAR_PARIDAD".
_ODD_PARITY: Configúrela en
VERDADERA o FALSA. Si lo hace
en VERDADERA, entonces usará la
PARIDAD IMPAR, de otro modo
usará el Esquema de Paridad PAR.
Esta señal se omitirá si
_PARITY_ENABLE se configura en
FALSA.
USE RTSCTS: Señales de
Hardware RTS & CTS. Si las
configura en FALSO, no usará
hardware. Si las configura en
VERDADERO, RTS & CTS usarán
hasta 2 Pins I/O del PORTB.
Descripción: 1 = Mitad de una recepción de byte;
O = Se ha completado la recepción de un byte (en
RxReg) y se ajusta cuando se detecta un bit de
inicio válido en el modo recepción.
Bit #: 3
Nombre: _rcv0ver
Descripción: O = Culminación de la recepción de
un byte. El código del usuario puede registrar este
bit luego de llamar a la función GetChar y verificar
su configuración. Luego de hacerlo, el byte
recibido estará en RxReg. Otros bits de status
también deberían revisarse por si aparecen
errores en la recepción.
Bit #: 4
Nombre: _ParityErr
Descripción: 1 = Error de paridad en la recepción
(no relacionado con el tipo de paridad elegido).
No es aplicable si no usa la Paridad.
Bit #: 5
Nombre: FrameErr
Descripción: 1 = Error de composición en la
recepción.
Bit #: 6 : No se usa.
Bit #: 7
Nombre: _parityBit
Descripción: El noveno bit de transmisión o
recepción. En el modo transmisión, el bit de
paridad del byte a ser transmitido se guarda en el
mismo bit. En el modo recepción, el noveno bit (o
bit de paridad) recibido se guarda en el mismo bit.
No es aplicable si no usa la Paridad.
Hardware
El hardware está primariamente relacionado con la transmisión de tensiones
según el protocolo RS-232 con niveles CMOS y viceversa.
Microchip sugiere tres circuitos entre los cuales el usuario puede elegir el que
mejor se aplique a su equipamiento.
La diferencia fundamental entre cada solución es el costo en relación a la cantidad
de componentes. Los circuitos de las figuras 11 y 12 son más económicos pero
tienen más componentes que el circuito de la figura 1. Este circuito transmite y
recibe datos por medio de una línea RS-232, que usa un chip simple (MAX-232A)
alimentado con una tensión simple de +5V. El circuito de la Figura 11 es una
24
Desarrollo de Sensor de Nivel Ultrasónico
interfase RS-232 de bajo costo pero requiere dos chips y una fuente de tensión
simple de +5V.
a:c
n 743•2121
ITd
Itch
C^T g 1Nc.,¡.32"I
4
--^-
,CTS
Figura 11
La Figura 12 muestra una interfase muy económica RS-232 que permite la
comunicación con una PC-AT sin requerimientos de potencia externa. El circuito
se alimenta desde una línea RS-232 (DTR) y requiere una corriente menor que
5mA. De este modo, para comunicarse, el anfitrión deberá mantener.la línea DTR
alta y la RTS baja. La tensión se obtiene de la línea DTR, y se requiere que la
DTR se mantenga alta y sea de por lo menos 7V.
La negativa -5 a -10V requerida por LM301 se obtiene desde la línea RTS y, por
consiguiente, el anfitrión debe mantener la RTS baja. Este circuito es posible por
el bajo consumo de corriente del PIC16C71 (típicamente 2mA).
Figura 12
El Circuito Del Programador
Un circuito con PIC siempre se compone de dos secciones. El circuito del
dispositivo deseado y los componentes periféricos necesarios imprescindibles
para que el PIC funcione, a saber clock y reset (la primer sección cambia con cada
proyecto, en tanto que la segunda puede ser común a muchos proyectos). Ambos
circuitos periféricos tienen diferentes opciones: el clock puede ser a cristal cuando
se requiera precisión, o a RC cuando sólo se requiere que la secuencia de
25
Desarrollo de Sensor de Nivel Ultrasónico
encendido tenga un tiempo aproximado. En cuanto al reset, éste puede ser
externo con un pulsador o interno y automático, cada vez que se conecta la
alimentación de 5V. Una vez definidas estas cosas se puede dibujar el circuito
completo, tal como lo mostramos en la figura 13.
Figura 13
Observemos primero la sección periférica imprescindible. El clock está generado
por un oscilador RC realizado con el PIC, R1 y C1, en tanto que el reset se realiza
en forma automática, cada vez que se enciende el equipo, por intermedio de R6.
Nuestro circuito de aplicación no puede ser más sencillo, sólo utilizamos cuatro
LEDs sobre las patas RAO a RA3 (puerto "A" tomado parcialmente) y sus
correspondientes resistores de pull up (resistores a fuente). Nada más simple y
fácil de armar en un panel protoboard. Si se armara el circuito y se probara
directamente no va a funcionar porque como el PIC no está instruido para realizar
ninguna función y los LEDs van a permanecer todos encendidos. El PIC tiene una
memoria interna que debe cargarse con números binarios de 8 dígitos;
exactamente tiene 48 posiciones de memoria (numeradas desde el O hasta el 2F
en números hexadecimales), en donde se le indicará que tarea debe realizar o qué
datos fijos debe cargar para ejecutar esas
tareas.
En nuestro caso activar transistores internos en
algunas patas del puerto "A" (predispuestas
como salidas) de modo de generar cortocircuitos
momentáneos a masa en forma secuencia!.
Figura 14
26
Desarrollo de Sensor de Nivel Ultrasónico
Instruyendo Al Micro
El maestro de nuestro PIC recién comprado es nuestra PC, ella le va a enseñar a
realizar su trabajo. Pero la PC no tiene un zócalo para PIC, entonces como la pc
no cuenta con esta conexión prevista para el PIC se debe construir. El dispositivo
con un zócalo para conectar el PIC e instruirlo se llama genéricamente
"Programador de PIC's", y es como un accesorio mas de nuestra PC, conectado
con un cable al puerto paralelo o serial de la misma.
En algunos casos se necesitan dos programas, a saber: el driver del dispositivo y
un programa de aplicación que utilice dicho dispositivo. En el caso de dispositivos
que se conectan en el puerto paralelo o serial, el programa driver no es necesario
porque dicho puerto ya está debidamente habilitado para usar la impresora. Lo
que sí se requiere obligatoriamente, es un software de aplicación del programador.
Programadores y software de aplicación de los mismos hay muchos. Algunos son
muy simples y económicos y otros son muy complejos y caros. La diferencia entre
unos y otros suele ser la posibilidad de aceptar más tipos de PIC's e inclusive
microprocesadores o memorias de otras marcas. También se diferencian en la
velocidad a la cual cargan el PIC; los hay de alta productividad que trabajan con
un elevado flujo de datos y otros más lentos que sólo sirven para tareas de
aprendizaje.
En nuestro caso vamos a trabajar, con un software que se llama NOPPP, que es
absolutamente gratuito y se puede bajar desde Internet. Este software está
previsto para ser usado sólo con los PIC16C84, PIC16C83 y PIC16F84 que son
los más utilizados
El NOPPP es suficientemente sencillo como para implementarlo en un panel
protoboard.
Señales de Programación de un Pic
Si se está acostumbrado a trabajar con memorias serie, no se va a tener
inconvenientes para entender cómo se programa un PIC.
El PIC, como una memoria, tiene una pata que predispone el dispositivo para leer
o para escribir. Si la pata 4 del PIC está a un potencial comprendido entre 13 y
14V, el PIC está preparado para escribir los datos que provienen de la PC. Si la
pata 4 está por debajo de 6V, el dispositivo está previsto para ser leído. Los datos
a leer o escribir se ponen/obtienen de la pata 13 del PIC con la pata 12 del mismo
que opera como clock.
Un PIC se lee/escribe accediendo a las diferentes posiciones de memoria por la
misma pata por la que se obtienen/ingresan los datos (la pata 13). La señal
primero elige la posición de memoria a ser leída/escrita, y luego que esa posición
está accesible se escriben/leen los datos. El clock que se coloca en la pata 12
27
Desarrollo de Sensor de Nivel Ultrasónico
sirve para indicar en qué momento se debe transferir la información. Los datos
pueden estar sobre la pata 13 todo el tiempo que desee, ya que no serán ni leídos
ni escritos por la PC hasta que se produzca un cambio de estado (de alto para
bajo) en la pata 12.
Figura 15
En la figura 15 mostramos las formas de señal indicadas por Microchip para
leer/grabar un PIC.
Se observa que dentro del comando existe una primera sección de 6 bits que
indica la posición de memoria a ser leída/escrita y luego la línea de datos
permanece en estado de alta impedancia por un intervalo de tiempo que depende
de la operación (durante ese tiempo el clock está apagado). Por último
ingresan/egresan los datos.
Las conexiones de fuente y las señales deben ser aplicadas según una secuencia
predeterminada que debe respetarse invariablemente. Los nombres de las señales
se aclaran en la figura 16.
Figura 16
28
Desarrollo de Sensor de Nivel Ultrasónico
•
•
•
•
•
•
•
•
•
•
•
El primer paso es colocar el P/C en e/ zócalo del programador con señales
y fuentes a potencial de masa.
Levantar la tensión de fuente VDD a un potencial de 5V ± 0,2V por la pata
14 (VDD).
Levantarla tensión de fuente VPP a un potencial de 13V ± 0,3V por la pata
4 (MCLR NEGADO).
Esperar en esas condiciones un tiempo superior a 1 mS.
Posicionar el primer dato en la pata 13 (R87) con un potencial alto (mayor a
4 V) o bajo (menor a 1V).
Cuando la pata 12 (R86) pase a un estado bajo, inferior a 1V, el dato se
carga en la memoria.
Continuar cargando los datos con el mismo criterio a un ritmo tal que el dato
esté presente por lo menos durante 100nS.
Cuando todos los datos fueron cargados se debe esperar 1 segundo.
Desconectarla fuente de 13V.
Desconectarla fuente de 5V.
Retirar el micro grabado.
Por sobre todas las cosas debe respetarse el criterio de no sacar un PIC de su
zócalo con las fuentes conectadas, porque puede desprogramarse o, peor aun,
dañarse definitivamente.
También es muy importante respetar las tensiones de fuente y no demorar la
llegada de datos, luego conectar VPP (porque podrían cargarse datos falsos por
interferencias electromagnéticas).
Como se puede entender de la descripción anterior la entrada RB6 es utilizada
como clock y la RB7 como entrada de datos en una clásica operación de
transferencia de datos en serie.
Observe que hay un tiempo entre el momento en que MCLR NEGADO sale de la
condición de reset hasta que aparece el primer dato o el primer pulso de clock.
También hay un tiempo mínimo para la permanencia de un dato en la entrada (la
representación usada para un dato significa que el mismo puede ser alto o bajo,
depende del bit que se esté grabando). Lo que no hay es un tiempo máximo pero
evidentemente cuando mayor es este tiempo más lenta será la carga del
programa.
El tiempo más adecuado depende de factores tales como el largo del cable
utilizado para conectar el programador a la PC. Si el cable es largo, los pulsos
tienden a deformarse y atenuarse, sobre todo cuando son de corta duración
(100nS equivalen a una frecuencia de 10MHz). Para evitar problemas, todos los
programadores trabajan a velocidades inferiores a la máxima, sobre todo
considerando que la capacidad de memoria no es muy grande y para el uso no
comercial no son imprescindibles grandes velocidades de grabación.
29
Desarrollo de Sensor de Nivel Ultrasónico
Predisposicion de un Pic
Un cargador de PIC debe permitir también una operación de verificación para
cuando el usuario tiene dudas respecto de la condición de un determinado PIC
(vacío o lleno). Solo que el programa almacenado debe ser inviolable en caso de
que la persona que lo cargó así lo haya dispuesto. Esto se llama predisponer el
PIC y no sólo se lo predispone para hacerlo inviolable, sino que además se
determinan otros importantes parámetros de funcionamiento como por ejemplo
que esté predispuesto para un clock a RC o que contenga un temporizador de
reset interno.
Las predisposiciones no forman parte del programa del PIC aunque pueden
incluirse junto con éste. Algunos cargadores de PIC's preguntan sobre la
predisposición antes de grabar el PIC. La pregunta sobre la predisposición
deseada aparece en la pantalla de la PC y uno elige de un menú de opciones. En
otros casos, las predisposiciones se escriben antes del programa en una
secuencia perfectamente predeterminada que debe respetarse a ultranza. Las
predisposiciones son tres y las vamos a analizar por orden:
a) La prohibición de lectura. El PIC se programa pero el programa no puede
ser leído.
b) Habilitación del timer de reset. En el pin up del PIC se puede observar que
la pata llamada MCLR negado (4) tiene un doble uso. En principio sirve
para predisponer el PIC en grabación o lectura, como ya fuera comentado;
pero cuando su tensión cae por debajo de 1V, el PIC se resetea y comienza
la lectura del programa por el principio. Este tipo de reset se llama reset a
pulsador y se utiliza para provocar alguna acción como, por ejemplo,
comenzar una secuencia de encendidos de LEDS o encender un LED por
un tiempo predeterminado. Este modo de funcionamiento requiere una
acción externa de reset (apretar un pulsador). La misma acción de reset se
puede conseguir en forma automática cada vez que se conecta la fuente de
5V. Este modo de trabajar sólo requiere que la pata MCLR (pata 4) esté
permanentemente conectada a 5V (con un puente o un resistor de 1K0) y
que el PIC esté predispuesto con el Power-up Timer en ON (temporizador
de encendido conectado). Cuando el temporizador está habilitado, luego de
conectar la fuente de 5V, comienza un conteo interno (que dura 72ms)
durante el cual el PIC pone todas sus compuertas internas en cero (reset) y
recién después comienza a efectuar los pasos que le indica el programa. A
propósito, el nombre MCLR proviene de MASTER CLEAR (literalmente,
limpiador maestro).
c) Circuito de vigilancia (perro guardián). En realidad el PIC tiene un reset
extra que opera luego de un cierto tiempo si no se realiza la operación final
del programa. Es como una especie de rutina automática de
descongelamiento que opera en caso de falla del programa. Eventualmente
puede ingresar algún pulso de energía al sistema que envíe al programa a
un loop (rizo) eterno (una derivación o camino cerrado sobre sí mismo).
Una vez que el programa ingresó en ese camino no puede salir de él salvo
30
Desarrollo de Sensor de Nivel Ultrasónico
que se produzca un reset. Si pasa un tiempo considerable sin que se llegue
a la última sentencia del programa, el PIC analiza su predisposición y si el
Watchdog timer (literalmente perro guardián) está habilitado provoca un
reset programado. En los programas más simples y donde se producen
loops infinitos a propósito (de los que sólo se sale tocando un pulsador), se
suele dejar el perro guardián desconectado para evitar un funcionamiento
errático.
31
Desarrollo de Sensor de Nivel Ultrasónico
LOS MICROCONTROLADORES DE NACIONAL Y PHILIPS
La Serie Cop De National
Los microcontroladores COPSAx7 OTP son miembros de la familia de los COP8 y
utilizan como "corazón" una arquitectura con un chip de 8 bits. Estos dispositivos
fueron fabricados bajo el proceso EPROM de alta densidad, de la National
Semiconductor, y ofrecen una gran variedad de chips, con amplia gama de
temperatura y rangos de tensión de trabajo, con la finalidad de satisfacer un vasto
número de aplicaciones.
Las características "clave" incluyen arquitectura mapeada de memoria de 8 bits,
un contador y un timer de 16 bits con dos registros de 16 bits que se vinculan con
tres selectores (Generación PWM de Procesador Independiente, Contador Externo
de Eventos y Disponibilidad de Captura de Entradas), dos selectores HALT/IDLE
con capacidad para guardar y con la posibilidad de la presencia de un interruptor
multimedia para despertarse, un oscilador R/C tipo chip, salidas de corriente
elevadas, opciones seleccionables para el usuario, tales como WATCHDOG,
configuración del Oscilador y potencia de reseteo.
Prestaciones destacables de hardware
La línea COP ofrece varios elementos destacables de hardware, tanto en lo que
hace a la arquitectura interna del núcleo de CPU como en los periféricos
incorporados en el chip.
• La línea COP emplea una arquitectura interna tipo Harvard (con buses de
instrucciones y datos separados), que permite que la mayor parte de las
instrucciones (el 77%) puedan ser ejecutadas en un único ciclo de
instrucción de un microsegundo, al realizarse simultáneamente el acceso al
espacio de instrucciones (EPROM) y al espacio de datos (memoria RAM y
periféricos), determinan con ello una performance estadística próxima a 1
MIPS (un millón de instrucciones por segundo). A diferencia entre la línea
COP y otros microcontroladores obtenibles en plaza que también presentan
arquitectura Harvard, la complejidad propia de este tipo de arquitectura ha
sido adoptada sin limitar, por ello, la cantidad y versatilidad de las
instrucciones disponibles, ni eliminar periféricos.
32
Desarrollo de Sensor de Nivel Ultrasónico
•
Dentro de todos los COP, incluso los más pequeños, existen dos timers,
llamados TO y T1: el timer TO es un contador simple de 12 bits que opera en
modo libre y descendente y es usado sólo para la salida controlada de los
modos de bajo consumo, y operación del Watch-Dog-Clock; el timer T1, de
16 bits, ofrece en cambio una versatilidad realmente destacable, al poder
ser operado en 8 modos distintos, que en sus variaciones permiten el
conteo de eventos externos (External Event Counter), detección de flancos
(Input Capture) y un modo de generación de señales de PWM que opera en
forma independiente al procesador.
Figura 18
•
•
•
•
•
•
•
Los COP (figuras 17 y 18) vienen en versiones con EPROM borrable
(encapsulado cerámico con ventana) y en versiones OTP de bajo costo, y
ofrecen desde 1K de EPROM y 64 bytes de RAM (COP8SAA7), hasta 4K
de EPROM y 128 bytes de RAM (COP8SAC7).
El empleo de tecnología CMOS estática le permite operar en frecuencias
que van desde continua hasta 1MIPS, con tensiones desde 2,7V a 5,5V y
ofrecer un modo de consumo reducido (IDDLE) y un modo de muy bajo
consumo (HALT).
La salida de los modos de bajo consumo (WAKE UP) puede ser activada
desde múltiples patas, o desde el timer TO y generará, si así se lo desea,
las interrupciones consiguientes.
Los COP incorporan en forma estándar una interfase de entrada/salida
serie sincrónica Microwire PLUS (SPI compatible) que les permite su fácil
conexión con periféricos serie, tales como conversores A/D, conversores
D/A, etc.
Los COP poseen un monitor de operación (Watch dog) y un monitor de
clock.
Poseen abundantes pines de entrada/salida paralela (16 I/O en los chips de
20 patas y 24 I/O en los de 28 patas), donde ciertas entradas son de tipo
SCHMITT Trigger y pueden ser programadas para incorporar internamente
una resistencia de pullup y operarán como salidas; ciertas patas poseen
una capacidad importante de manejo de corriente de hasta 10mA.
Posee varias opciones de oscilador que van desde una fuente externa, un
oscilador RC interno al que se le puede alterar la frecuencia mediante un
33
Desarrollo de Sensor de Nivel Ultrasónico
•
capacitor externo, hasta un oscilador a cristal/resonador en donde la
inclusión o no de la resistencia de polarización es programable.
Finalmente, el diseño total de los COP ha sido realizado con un control de
velocidad de transistores (slew rate) y niveles de señal internos al chip,
orientados a la generación de bajos niveles de irradiación electromagnética
(EMI: electro magnetic inte rference), lo que lo hace ideal para su uso en el
área de comunicaciones e instrumentación.
Esta tecnología permite hablar de reducciones en el nivel de generación de
interferencias en el orden de 20dB respecto a procesadores similares que operan
en la misma frecuencia.
Prestaciones destacables de software
Los pequeños COP no sólo ofrecen recursos notables de hardware, sino que
también tienen características de software propias de procesadores más
elaborados, que permiten generar fácilmente estructuras de código propias de
lenguajes de alto nivel.
• Manejo de RAM como registros a través de dos registros de indirección B y
X: la disponibilidad de dos registros que pueden ser operados como índices
y programados para su post incremento o su post decremento automático
permite el manejo de tablas en RAM en forma eficiente.
• Carga inmediata de memoria: esta capacidad permite la carga de datos
constante en memoria sin necesidad de pasar por el acumulador y la
memoria.
• Exchange: esta instrucción permite el intercambio de valores entre el
acumulador y la memoria, sin necesidad de pasos intermedios.
• Con instrucciones especiales para uso de la indirección en el espacio de
memoria de programa: a) JID (Jump Indirect): salto indexado ideal para
crear estructuras tipo SWITCH o CASE. b) VIS (Vector Interrupt Select):
ideal para la realización de Interrupt Dispatchers. c) LAID (Load Acumulator
Indirect): para el acceso indexado a tablas en EPROM.
• Swap nibbles y Ajuste decimal: (operación en BCD): estas instrucciones
son de gran utilidad para operar con números en BCD.
• Manejo del stack (PUSH y POP): para la salvaguarda de valores
intermedios sin necesidad de definir áreas de almacenamiento estático y
para el pasaje de parámetros y devolución de resultados de subrutinas.
• Manejo de bits (set reset test): para el manejo de los po rt s y registros
internos a nivel de bit.
• Comparación de los COP con otros procesadores de plaza de costo similar
Quizás, quien analice las prestaciones de los COPS, si ha trabajado previamente
con microprocontroladores de mayor performance y costo, no resulte sorprendido,
pues encontrará en los COP lo que parecía natural en aquellos. Lo sorprendente
de las prestaciones de los COP surge cuando se los compara con
microcontroladores de similar pinout y costo.
34
Desarrollo de Sensor de Nivel Ultrasónico
•
Diferencias más notables con e/ MC68HC705K1: este microcontrolador de
16 patas y arquitectura Von Neumann ofrece la mitad de EPROM (504
bytes) y la mitad de RAM (32 bytes) que el COP más pequeño (COP8SAA7
de 20 pines). Tiene sólo 10 pines de I/O frene a los 16 del COP y, aunque
su ciclo de instrucción más rápido es de 2 MIPS para algunas instrucciones,
la mayor parte de ellas requiere 2 ciclos de reloj, con lo que su máxima
performance está también alrededor de 1 MIPS; asimismo, el hecho de que
la mayor parte de las instrucciones sea de 2 bytes hace que el
aprovechamiento de su escasa
EPROM sea aun menor. El Timer del MC68HC705K1 es uno elemental, de tipo
free-run y de lectura solamente, siendo su única fuente de reloj el oscilador interno
del chip, y sólo puede generar interrupciones por Ove rflow y cuatro opciones de
división adicionales (llamadas Real Time Interrupt). Cualquier señal de PWM o
captura de eventos que se desee realizar debe ser por software, con dedicación
casi total de la CPU. El acceso a periféricos serie debe simular la interfase SPI por
software. En cuanto al software, sólo posee un registro índice sin opciones de
autoincremento o decremento, no permite el uso del Stack, la carga inmediata de
datos en memoria, el intercambio entre acumulador y memoria, ni posee
instrucciones para manejo de datos BCD.
•
Diferencias más notables con el MC68HC705J1A: este microcontrolador de
20 patas y arquitectura Von Neumann posee EPROM (1.240 bytes) y Ram
(64 bytes) en cantidad comparable al COP más pequeño (COP8SAA7 de
20 pines), y tiene 14 pines de I/O (frente a los 16 del COP). En el resto de
sus características es idéntico al MC68HC705K1.
•
Diferencias más notables con el PIC16C54: este microcontrolador de 18
patas posee arquitectura RISC tipo Harvard, 512 palabras de EPROM y 25
bytes de RAM, en cantidad comparable al COP más pequeño (COP8SAA7
de 20 pines), sólo 12 pines de I/O (frente a los 16 del COP) y un costo
similar. Su subsistema de Timer es algo más elaborado que el de los chips
de Motorola, aunque más elemental que el de los COP; en él, el contador
es legible y la escritura se hace por software, puede recibir su señal de
clock reloj del reloj interno o de una pata externa, y posee un prescaler
programable. Sin embargo, al igual que los procesadores de Motorola,
cualquier generación de señales de PWM, o acceso a periféricos serie
(donde debe simularse la interfase SPI) deba ser realizada por software,
con dedicación casi total de la CPU. No tiene mecanismos de interrupción
(ni internos, ni externos), posee un único registro de indirección (FSR) y un
Stack mínimo de sólo dos niveles sin posibilidad de accesos tipo
PUSH/POP que limita seriamente la posibilidad de anidamiento de
subrutinas. La velocidad de los PIC es notable (5 MIPS), pero la ausencia
de interrupciones, y el reducido set de instrucciones disponible (33
instrucciones) hacen que su performance neta sea comparable a la de los
35
Desarrollo de Sensor de Nivel Ultrasónico
otros microcontroladores analizados; la ausencia de interrupciones, por su
parte, hace que la detección de eventos sólo pueda ser realizada a costa de
ocupar totalmente la CPU, o con inclusión de test "salpicados" en el código,
con una pésima latencia de atención y disminución en la eficiencia del
código.
Otras serias diferencias de hardware con los COP y los chips de Motorola es la
inexistencia de pullup/down, programables en las patas de I/O y un modo de bajo
consumo (SLIIP) del que sólo se sale por RESET.
•
•
Diferencias más notables con el P/C16C56: es totalmente similar al PIC
16C54, sólo que posee 1K palabras de programa.
Diferencias más notables con el P/C16C58: es totalmente similar al PIC
16C54, sólo que posee 2K palabras de programa y 72 bytes de RAM.
Características Fundamentales de la Serie COP
Damos a continuación las características más "atractivas" que suelen darse sobre
esta familia.
Tenga en cuenta que algunos conceptos ya fueron vertidos en el informe que
hemos dado al comienzo; reseñamos, en este caso, la "versión" del fabricante.
•
•
•
•
•
•
•
•
•
•
•
•
•
Son microcontrolador tipo OTP de 8 bits y bajo costo.
Poseen espacios de programa OTP con protección para lectura y escritura.
Son diseñados para que tengan emisiones de poca radiación.
El kit se provee con conectores Multi-po rt para "despertar" (permiten su
funcionamiento en forma versátil), con interruptores opcionales de 4 a 8
pines.
Tienen 8 bits de espacio de almacenamiento en EFROM.
El operador puede optar por relojes seleccionables por el usuario:
Reloj controlado por Cristal/Resonador
Opción Cristal/Resonador con resistencia sobre chip.
Oscilador Externo
Oscilador R/C Interno
Poseen Reseteo Interno, seleccionable por el usuario.
Están provistos con la posibilidad WATCHDOG y Lógica de Reloj de
Monitor.
Tienen 12 salidas altas de corriente.
36
Desarrollo de Sensor de Nivel Ultrasónico
El cuadro 1 resume algunas características a tener en cuenta.
Características del CPU
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Versatilidad en las instrucciones de configuración, las cuales son de muy
fácil utilización.
Tiempo cíclico de instrucciones.
Posee ocho Interruptores de servicio de fuentes múltiples con vector:
Interruptor Externo
Timer de inactividad TO
Un timer con dos interruptores.
Interfaz Serial MICROWIRE/PLUSTM.
Despertador de puertos múltiples.
Trampa de Software
VIS de fábrica (interruptor de fábrica).
El puntero SP es de 8 bits (en RAM).
Tiene dos Punteros Indirectos de Memoria de Datos, 8 bits.
Manejo de Bit Real.
Mapeo de Memoria I/O.
Instrucciones aritméticas BCD.
Características Periféricas
Lógica de Despertador de Entradas Múltiples.
Posee un timer de 16 bits con dos registros de 16 bits que soportan:
Un selector PWM de Procesador Independiente.
Un contador para eventos externos.
Un selector contador de Captura de Entrada.
Posee un timer de inactividad
La interfaz es Serial MICROWIRE/PLUS (Compatible con SPI)
Características I/O
•
•
•
Opciones I/O de software seleccionable:
Salida TRI-STATE
Salida para tirar y presionar
37
Desarrollo de Sensor de Nivel Ultrasónico
•
•
•
•
•
Entrada Débil para tirar
Entrada de Impedancia Alta
Entradas Schmi tt en puertos G y L
Hasta 12 salidas de corriente elevada.
Eficiencia de Pin (ej. En un paquete de 44 pines, 40 son destinados a I/O).
Diseño CMOS Estático Completo
• Drenaje Bajo de Corriente (normalmente <4 pA).
• Operación simple de abastecimiento: 2
.7V a 5.5V.
• Dos selectores para guardar: HALT y IDLE.
Rangos de Temperatura
• 0°C a +70°C, -40°C a +85°C, y de -40°C a +125°C
Soporte de Desarrollo
Paquete con ventanas para DIP y PLCC
Emulación en tiempo real y eliminación de funciones erróneas, por completo, de
programa ofrecido por MetalLink Development System.
En la figura 19 se da el diagrama en bloques del integrado COP8SAx7.
Figura 19
La familia COPSAx7 de dispositivos incorpora circuitos que brindan protección
contra interferencias electromagnéticas, es decir, un problema que se incrementa
en los diseños de los microcontroladores, de hoy en día.
La tecnología de reducción, patentada por EMI, de National, ofrece circuitos de
reloj EMI, drivers de salida de encendido gradual (GTO) y filtros internos, que
ayudan a circunscribir muchas de las ediciones EMI que influencian los diseños de
control incorporados.
National logró la reducción 15dB-20dB en las transmisiones EMI, cuando los
diseños ya incorporaron su circuito de reducción de patente EMI.
38
Desarrollo de Sensor de Nivel Ultrasónico
Arquitectura
La familia COPSAx7 está basada en una arquitectura de hardware, que permite a
las tablas de datos tener un acceso directo hacia la memoria de programas. Esto
es realmente importante para las aplicaciones modernas que se ubicaban en los
microcontroladores, ya que la memoria de programa, usualmente, es ROM o
EPROM, mientras que la memoria de datos, normalmente, es RAM. Como
consecuencia, las tablas de datos regularmente, deben ser contenidas en ROM o
EPROM, en consecuencia, no se pierden cuando el microcontrolador tiene un
corte de electricidad.
En una arquitectura modificada de Hardware, tanto la ida y venida de instrucciones
como la transferencia de datos de memoria pueden extenderse, con dos líneas de
escenario, lo cual permite que la próxima instrucción se desplace de la memoria
de programa mientras la instrucción actual está siendo ejecutada, por medio de la
utilización de la memoria de datos. Esto no es posible con una arquitectura de
dirección simple tipo Von Neumann.
La familia COPSAx7 soporta un esquema de multitudes de software que permite al
usuario incorporar muchos llamados de subrutinas.
Esta capacidad es importante cuando se utilizan Lenguajes de Nivel Elevado. Con
una pila de hardware, el usuario está limitado a un número pequeño y fijo de
niveles de pilas.
Juego de Instrucciones
En el terreno vinculado al costo/beneficio, de los microcontroladores de 8 bits, de
hoy en día, la flexibilidad y el tiempo son varios de los temas claves, para el
mercado, que los diseñadores de sistemas enfrentan al tratar de construir un
producto de muy buena ingeniería que pueda competir perfectamente en el
mercado. Muchos de estos temas pueden tratarse de manera tal que el juego de
instrucciones del microcontrolador se ocupe de las tareas de procesamiento. Y
esa es la razón por la cual la familia del COPS ofrece un conjunto de instrucciones
único y una eficiencia de código que requieren los microcontroladores de hoy día,
para suministrar flexibilidad, funcionalidad, costos reducidos y tiempo rápido para
su arribo al mercado.
La eficiencia de código es importante ya que permite a los diseñadores empacar,
en chip, de una forma más funcional en menos espacio de memoria de programa
(ROM/OTP). Seleccionando un microcontrolador con menos tamaño de memoria
de programa, podemos obtener costos más bajos de sistema, como así también,
la seguridad de saber que se pueden empaquetar más en el espacio de memoria
de programa disponible.
39
Desarrollo de Sensor de Nivel Ultrasónico
Herramientas Clave del Juego de Instrucciones
La familia del COPSAx7 incorpora una combinación única de herramientas
vinculada al juego de instrucciones, las cuales proveen a los diseñadores,
eficiencia de código óptima y, también, utilización de memoria de programa.
Ejecución de Código de Ciclo Simple/Byte Simple
La eficiencia se debe al hecho de que la mayoría de las instrucciones pertenecen
a la variedad de byte simple. Debido a que el código compacto no ocupa una
suma sustancial de espacio de memoria de programa, los diseñadores pueden
integrarle atracciones adicionales, así como funcionalidad en el espacio de
memoria de programa del microcontrolador. Además, la mayoría de las
instrucciones ejecutadas por el dispositivo son de ciclo simple, lo cual conduce a
un tiempo mínimo de ejecución de programa. En realidad, el 77% de las
instrucciones son de byte simple, ciclo simple, y proveen un código mayor, así
también, como eficiencia de tipo I/O, además de una ejecución de código más
veloz.
Multifunción, Muchos Byte Simples
El juego de instrucciones COPSAx7 utiliza muchas instrucciones multifunción, byte
simples. Esto permite que una instrucción simple logre realizar funciones múltiples,
tales, como DRXZ, DCOR, JIK y Carga/Cambio, con post incremento y post
decremento, para nombrar algunos ejemplos. En muchos de los casos, el conjunto
de instrucciones puede ejecutar, en forma simultánea, tres funciones con la misma
instrucción de bite simple.
JID: (Salto Indirecto). Instrucción de byte simple, eventos externos de
decodificación y saltos a rutinas de servicios correspondientes (frases simples
hasta otros niveles de lenguaje más elevados).
LAID: (Carga de Acumulación Indirecta) Tabla de instrucción de Byte simple
provee un sendero de datos eficiente desde la memoria de programa hasta el
CPU. Esta instrucción puede ser utilizada para la búsqueda de tabla y para leer la
memoria de programa completa, en caso de necesitar verificación de cálculos.
RETSK: (Salto de Retorno) La instrucción de byte simple permite retornar desde la
rutina y, así, saltar a la próxima instrucción, la decisión puede ser realizada en la
subrutina misma y guardar el código.
AUTOINC/DEC: (Auto Incremento/Auto Decremento). Estas instrucciones utilizan
los dos punteros de memoria B y X para hacer procesar, de modo más eficiente, el
bloque de datos.
40
Desarrollo de Sensor de Nivel Ultrasónico
Los Microcontroladores De Philips
La familia de microcontroladores y periféricos que tienen por base el 8051 está
basada totalmente en el patrón industrial para 8 bits, de alta performance, que
tienen una arquitectura optimizada para aplicaciones en control secuencia) en
tiempo real.
Los componentes de esta familia encuentran aplicaciones que van desde el
control de máquinas industriales y de instrumentación hasta el control automotriz.
Los dispositivos de la serie pueden obtenerse en versiones con ROM o EPROM
internas o, solamente, con la CPU.
Con excepción de la 83C751, todos los dispositivos de esta familia pueden
manejar hasta 64 bytes, tanto de programa como de memoria de datos.
En la tabla 4 tenemos los dispositivos que componen esta familia de
microcontroladores.
El 8051, que es el elemento básico,
•
•
•
•
•
•
•
•
•
•
•
•
contiene las siguientes funciones:
CPU de 8 bits optimizada para aplicaciones de control.
Capacidad de procesamiento "Booleana extensiva" (álgebra de Boole),
lógica de bit único.
32 líneas bidireccionales e individualmente dirigibles de entrada y salida
(I/O).
RAM de datos de 128 bytes on-chip.
Dos temporizadores / contadores de 16 bits.
UART dúplex completa.
5 entradas de interrupciones con dos niveles de prioridad.
Oscilador de clock on-chip.
Memoria de programa de 4K bytes on-chip.
programa en la memoria de 64
Espacio para direccionamiento de
bytes.
Espacio para direccionamiento de la memoria de datos de 64K bytes
Disponible tanto en cubierta DIL de 40 pines como en cubierta PLC de 44
pines.
El microcontrolador 80051 es la versión CMOS del 8051, siendo totalmente
compatible con el 8051 en términos de funcionamiento.
Sin embargo, como se trata de un dispositivo CMOS (a diferencia del 8051, que es
NMOS) el consumo es mucho menor. En la figura 20 tenemos el diagrama en
bloques del 80051, a partir del cual haremos el análisis. Todos los miembros de
esta serie poseen espacios separados para direccionamiento y programa de
datos, según muestra el diagrama de estructuras de la memoria en la figura 21.
41
Desarrollo de Sensor de Nivel Ultrasónico
8051 Familia de microcontroladores
Nombre
Versión sin
ROM
8051
8031
80051
80C31
8052
8032
80052
800O53
83C1.410
83C451
80C32
830528:
830550.
83C552
830562
830652
830654
830751
830752
83C851
Versión con
EPROM
87C'51
^
87C52
87CO54
87C451
87C528
87C550
87C552
870652
87C654
87C751
87C762
800851
BYTES
RAM
4k
4k
8k
8k
8k
128
128
2k
2K
4K
^
2
3
^
2
2
128
128
512
32k
4k
16k
^
192
4k
8k
8k
8k
Tipo de
Circuito
TIMERS
16 bits
256
256
4k
80C1A410
80C451
800528
800550.
800532
800526
800652
^
BYTES
ROM
3 + WD
2+ WD
3 WD
3 WD
2
128
256
^^256
256 64
64
128
+
^
2
2
CMOS
NMOS
CMOS
CMOS
CMOS
CMOS
CMOS
C.MOS
CAOS
+
256
NMOS
CMOS
CMOS
^^ CMOS
CMOS
CMOS
CMOS
Tabla 4
NREMCPDICNES
EXTERNAS
OSEN
Figura 21
Esta separación permite que los datos de la memoria sean accesados por una
dirección de 8 bits, lo que da como resultado un almacenamiento y manipulación
más rápidos que los efectuados por una CPU de 8 bits.
Sin embargo, direcciones de 16 bits también pueden ser usadas, generadas por el
registrador DPTR. La memoria de programa (ROM o EPROM) puede ser leída,
pero no grabada. Tenemos disponibles 64K bytes de espacio para la memoria de
programa.
En el 80051, los 4K bytes inferiores están on-chip.
En las versiones sin ROM, toda la memoria de programa es externa.
El "strobe" para la lectura de la memoria es el PSEN (Program Store Enable).
42
Desarrollo de Sensor de Nivel Ultrasónico
La memoria de datos (RAM) ocupa un espacio separado para el direccionamiento,
a partir del programa de memoria.
En el 80051, los 128 bytes de la memoria de datos están sobre el chip. El espacio
de la memoria de datos externa puede dirigir hasta 64K bytes de una RAM
externa).
En la versión sin ROM, los 128 bytes inferiores son on-chip. Una CPU genera las
señales de lectura y grabación (RD y WR), según se necesite, durante los accesos
a la memoria externa.
Las memorias de datos externa pueden combinarse con memorias de programas,
si se lo desea, a través de la aplicación de señales RD y PSEN en las entradas de
una puerta AND, se utilizará su salida como "strobe" de lectura para la memoria de
datos / programa externa.
Memoria de Programa
En la figura 22 tenemos el diagrama en bloques de la memoria de programa.
DIRECCIONES DE INSTRUCCIONES
8 BYTES
0023k
0011311 -
.-^
0013k
CQCeh I
0003k
0000h
Figura 22
Después de reseteada, la CPU inicia la ejecución del programa a partir de la
dirección 0000h.
Tal como se muestra en la figura 22, cada interrupción es designada por una
dirección fija en la memoria de programa.
La interrupción se origina cuando la CPU salta hacia la dirección correspondiente,
donde tiene su inicio la rutina de servicio (rutina de tratamiento de interrupción).
Una interrupción O externa, por ejemplo, determina una dirección 0003h.
43
Desarrollo de Sensor de Nivel Ultrasónico
Si se usara una interrupción O externa, la rutina de servicio debería comenzar por
la dirección 0003h. Si la interrupción no se usara, la dirección estaría disponible
como memoria de programa de uso general.
Las direcciones de las subrutinas de tratamiento de interrupción están separadas
por intervalos de 8 bytes: 0003h para la interrupción externa 0; 000Bh para el timer
0; 0013h para la interrupción externa 1; 001 Bh para el timer 1, etc.
Si una rutina de tratamiento de interrupción fuera lo suficientemente corta (como
en el caso de aplicaciones para control), puede permanecer totalmente en el
intervalo disponible de 8 bytes. Rutinas de servicio más largas pueden usar una
instrucción de salto para evitar direcciones de interrupciones subsiguientes, si
otras interrupciones no estuvieran en uso. Los 4K bytes inferiores de la memoria
de programa pueden estar tanto en la ROM on-chip como es una ROM externa. El
pin EA (External Access) permite hacer la selección.
En el 80051, si el pin EA fuera conectado al Vcc, el programa iría a buscar las
direcciones de 0000h hasta OFFFh en la ROM interna, y de 1000h hasta FFFFh
en la ROM externa.
Si el pin EA fuera conectado al Vss, entonces el programa trabajaría como las
direcciones de la ROM externa.
La figura 23 muestra el hardware pone la ejecución de trabajos externos.
60E51
PO
A
\
\
\\
\
\
\
\
\
\
\
\
^
`\
^`^,^_
. .^
.^
_
\
^ ^\
:\\.
\ /
EP
lE
! ^\
Figura 23
Observe que las 16 líneas de I/O (po rts O y 2) están dedicadas a la cancelación de
instrucciones durante las acciones externas de la memoria de programa.
El port O (PO, en la figura 23) sirve como multiplexor de direcciones y datos.
Ella emite el byte inferior del contador de programa (PCL) como una dirección y,
entonces, permanece en un estado fluctuante en espera de la llegada del byte de
código de la memoria de programa.
Durante el intervalo en el que el byte inferior del contador de programa fue válido
en el port 0, la señal ALE (Address Latch Enable) juega este byte en un latch
(cerrojo) de direccionamiento.
44
Desarrollo de Sensor de Nivel Ultrasónico
Mientras tanto, el po rt 2 (P2 en la figura 23) emite un byte superior del contador de
programa (PCH). Entonces, PSEN, a través del "strobe" permite que el
microcontrolador lea el byte del código en la EPROM. Las direcciones de memoria
de programa son siempre 16 bits, aun cuando se use un espacio real de menos de
64 bytes. En estas condiciones, la ejecución del programa externo sacrifica dos
po rt s de 8 bits, PO y P2, para funcionar en la dirección de la memoria de
programa.
Memoria de Datos
La mitad derecha de la figura 21 muestra los espacios internos y externos de la
memoria de datos disponible en el 80051.
En la figura 24 tenemos una configuración de hardware que permite accesar hasta
2K bytes de una memoria RAM externa.
En
este caso, la CPU opera a partir de la ROM interna.
La CPU genera las señales RD y WR, a medida que sean necesarias durante el
acceso a RAM externa.
Pueden usarse hasta 64K bytes de memoria externa.
Las direcciones para accesar los datos de la memoria externa pueden utilizar tanto
1 como 2 bytes de extensión.
Las direcciones de 1 byte también son usadas en conjunto con una o más líneas
de I/O para paginar la RAM, según muestra la misma figura 24.
Figura 24
En el caso de que la parte más alta sea emitida por el po rt 2, pueden usarse
direcciones de dos bytes.
45
Desarrollo de Sensor de Nivel Ultrasónico
La memoria interna de datos está graficada en la
figura 25. El espacio de la memoria está dividido en 3
bloques que son referidos como: 128 inferiores, 128
superiores y espacio del SFR (Special Function
Register).
ACCESIBLE POR
DiRECCIONAMIENTO
DIRECTOS INDIRECTO
ACCESIBLE SOLAMENTE POR
DIRECCIONAMIENTO INDIRECTO
FFH
SFR
80b
BOA t
DF
ACCESIBLE POR
DIREC. DIRECTO
Las direcciones de la memoria de datos interna son
siempre de 1 byte de extensión, lo que implica un
direccionamiento de sólo 256 bytes.
00A 128 BYTES INFERIORES REGISTROS ESPECIALES
DE FUNCION
.-128 BYTES SUPERIORES
i
PUERTAS. STATUS. B ITS DE CONTROL.
TIMERS. REGISTROS; PUNTERO DE
PILA. CONTADOR. ETC.
Además de eso, los modos de direccionamiento de la Figura 25
RAM interna pueden, de hecho, acomodar 384 bytes,
utilizan un truco simple: las direcciones directas, por encima de 7Fh, accesan un
espacio de memoria y las direcciones superiores a 7Fh accesan un espacio
diferente.
La figura 25 muestra los 128 superiores y el SFR ocupados por el mismo bloque
de direcciones: de 80h hasta FFh, mientras que, en realidad, son entidades
físicamente diferentes.
Los 128 bytes inferiores de la RAM están presentes en todos los dispositivos
80051, como se grafica en la figura 26.
NINGUN ESPACIO
DIRECCIONABtE
POR BITS
Los 32 bytes inferiores están agrupados en 4
bancos de 8 registradores. Las instrucciones del
programa llaman a estos registradores
externamente de RO a R7. Dos bits del PSW
(Program Status Word) seleccionan del banco de
registradores cuál va a ser usado.
Figura 26
B ITS DE
SEtEC. DE BANCO NA PSW
}
ESPACIO DIREC.
POR BITS
(00a7F)
n{
10{ j^j¡z^1:AM#
01
1
4 BANCOS DE
S REGISTROS
00
VALOR DE RESET DEL PUNTERO DE PILA
Figura 27
Este procedimiento permite una utilización más
eficiente del espacio para código, ya que las
instrucciones son más cortas que las que usan
direccionamiento directo.
Los 16 bytes siguientes, por encima de los
bancos de registradores, forman un bloque de
espacio de memoria dirigible por bit.
El set de instrucciones del 80051 incluye una
amplia selección de instrucciones de bit único, y
los 128 bits de esta área pueden ser
directamente dirigidos por estas instrucciones.
Las direcciones de bits en esta área van de OOh
a 7Fh. Todos los bytes en los 128 - inferiores
46
Desarrollo de Sensor de Nivel Ultrasónico
resultan accesibles tanto por direccionamiento directo como indirecto.
Los 128 - superiores, tal como muestra la figura 27, sólo son
accesibles por direccionamiento indirecto.
En la figura 28 tenemos una visión del Special Function
Register (SFR) y del espacio que ocupa.
LOB RECOSTAOS
Oh
oeE
LASOWECONJNFBTERMNNMBENPN
SONT LBNBiSE1LGG0'üBLESPN16R6
Esta estructura incluye latches (cerrojos) de puertas, timers, Figura 26
controles, periféricos, etc. Estos registradores pueden ser
accesibles, solamente, por direccionamiento directo. Dieciséis direcciones en el
espacio SFR son accesibles tanto por byte como por bit. Los SCF pueden
accesarse por bit y son los que tienen direcciones terminados en Oh u 8h.
A través de la segunda parte de esta nota, los proyectistas podrán tener una mejor
visión de cómo y dónde usar el microcontrolador 80051 y sus periféricos.
El Set de Instrucciones del 80051
El Set de Instrucciones del 80051 está especialmente confeccionado para su
utilización en aplicaciones de control con 8 bits.
Proporciona gran variedad de modos de direccionamiento rápido para acceder a
la RAM interna, con lo que se facilitan las operaciones con bytes en pequeñas
estructuras de datos.
El Set de Instrucciones prevé, además, un soporte extensivo para variables de 1
bit, como los del tipo de datos separados, así permite la manipulación directa del
bit en sistemas lógicos y de control que requieran un procesamiento booleano.
Program Status Word (PSW)
El Program Status Word (PSW) contiene diversos bits de status que indican el
estado corriente de la CPU. El PSW, que se muestra en la figura 29, reside en el
espacio de la SFR.
• PEW? •
FLAG DE CARAY QUE RECIBE
EL CARRY OUT DEL BITS DE
LOS OPERANDOS DE LA ALU
1
PMSDAD CG. ACUMULADOR
SESEADO POR HARDWARE
PSWB
CARRY AUMUAR QUE RECIBE
EL CARAY OVt DEL BIS 3 DE
LOS OPERANJOS DE LA SUMA
FLAG DE USO DETERMINADO
POR ELUSUAWO
PSWE
FLAG CE STATUS DE
USO GEWRAL
FLAG DE OVRFLOW OPERADO
POR OPERADORES ANIMEMOS
PSWS$
o
err DE BANCO DE SELECCION
DEL REGISTRADOR
SR 1 DEL BANCO DE SELECCION
DEL REGISTRADOR
Figura 27
47
Desarrollo de Sensor de Nivel Ultrasónico
El PSW contiene el bit de carry , o carry auxiliar (para operaciones en BCD), los
dos bancos de registradores para selección de bits, el aviso de overflow, un bit de
paridad y dos flags de uso que puede ser definido por el usuario.
El bit de carry, además de servir para su función específica, también actúa como
acumulador para un cierto número de operaciones booleanas.
El bit de paridad indica el número de "uns" no acumulados. Si P=1, entonces el
acumulador contiene un número impar de "uns". Si P=O, el acumulador contiene
un número par de "uns".
Vemos así que si tenemos en cuenta el número de "uns" en el acumulador
sumado al valor de P, tendremos siempre un resultado par.
Modos de Direccionamiento
En el 80051 tenemos los siguientes modos de direccionamiento:
a) Modo Directo:
En esta modalidad de direccionamiento, el operando está especificado por una
dirección de 8 bits en la instrucción. Sólo la RAM interna de datos y la SFR
pueden ser directamente direccionadas.
b) Modo Indirecto
En el direccionamiento indirecto, la instrucción especifica un registrador que
contiene una dirección del operando. Tanto la RAM interna como la externa
pueden ser indirectamente direccionadas.
c) Instrucciones del Registrador:
Los bancos de registradores que contienen los registradores de RO a R7 pueden
ser accedidos por ciertas instrucciones que lleven una especificación de
registrador de 3 bits conjuntamente con el código de la instrucción (opcode).
Las instrucciones que acceden los registradores en esta forma son "code
efficient", ya que así se elimina la
necesidad de un byte de dirección.
7^
1
X
X
A. A+ +byt +
X
X
ADD ibyá.r
Cuando la instrucción es ejecutada,
A . A++byte+ + C
X
ADOC A.+Dyte+
X
1
X
X
uno de los ocho registradores del
A . A • +by1++ - C
8Ue8 A.+byta+
X
,
X
X
,
X
_
AaemN.tor ony
1
A. A ♦ 1
INC A
banco seleccionado es accedido
myte+ .cbyta+.1
INC.byte+
X
1
I
X
mientras que uno de los cuatro
DMe Polnter only
DPTR . OPTA + 1
tNC DPTR
y
Aoounutatur only
,.
A. A•,
OEC A
bancos es seleccionado en el
,
d^yte+ .^ 1
ar^ .byr.+
x
x
x
T
I
I
tiempo de ejecución por los dos bits
4
ACC and B only
B'A • BXA
MUt. A8
ACC and a only
d
ON AB
10:tá 401
de selección de bancos en el PSW
1
AtxrerwWor only
DA A
O.tirn.t Adust
(Tabla 5).
MODOS DE DIRECGOtiAAiIENTO
4N8AONC0
CM
11E4tPOWy
OPERAgON
INO.
REO
e+
Tabla 5
48
Desarrollo de Sensor de Nivel Ultrasónico
d) Instrucciones Específicas de Registradores:
Algunas instrucciones son específicas para ciertos registradores como, por
ejemplo, las que siempre operan en el Acumulador o en el Data Pointer, de modo
que para ellas no se necesita bit alguno de direccionamiento para su uso. El
opcode lo hace por sí solo.
e) Constante Inmediata:
El valor de una constante puede seguir el opcode en la Memoria de Programa. Por
ejemplo:
MOV A, 100
Carga el acumulador con el número decimal 100.EI mismo número puede
especificarse en dígitos hexadecimales como 64 h.
f) Direccionamiento Indexado:
Sólo la Memoria de Programa puede ser accedida con direccionamiento indexado,
siendo, después, sólo posible la lectura. Este modo de direccionamiento está
destinado a la lectura de tablas de consulta en la Memoria de Programa. Otro tipo
de direccionamiento indexado se usa para el caso de una instrucción JUMP. En
este caso, el direccionamiento de destino de una instrucción JUMP es computado
como la suma de los datos del acumulador con el Data Pointer.
g) Instrucciones Aritméticas:
El menú de las instrucciones aritméticas del 80051 está listado en la tabla 6,
donde están indicados los modos de direccionamiento que pueden usarse con
cada instrucción para acceder el <byte> operando. Los tiempos de ejecución en la
lista de la tabla 1 son para una frecuencia de clock de 12MHz. Todas las
instrucciones aritméticas son ejecutadas en 1 ps, excepto la INC DPTR, que lleva
2ps, y las instrucciones de multiplicación y división, que llevan 4ps.Obsérvese que
cualquier byte en el espacio interno de la Memoria de Datos puede ser
incrementado sin pasar por el Acumulador.
1111111n11115". ,..._..
...
......:...: ....
. :...... ............ . ..
.
.MÓnoso ....
^fl>;cáqwm .o.:
ADD sbytas
A . A + abyjaas
ADDCA.<bytar
A..A+ •cbyho+
S1)68 A abytas
A. A - <bytaa -C
1NC A
A.A
INC <byte.
<byte,. • <byte> +
INC DPTR
DPTR . DATA r
DEC A
A . A -1
DEC .bytes
sbytas .
MULAS
8v1 . BitA
a • ¡la wa
DV
AB
DA A
C
x
x
x
x
x
x
x
Aoc srwtataa only
+1
1
X
I
1
X
X
x
1
x
1
1
I
1
s
Dala Pointer any
Aatmwtatar only
alta> -1
IX
ACC
x
I
and B any
li-atol Mlal
ACC
antl
Decimal Ad'jw,t
Aavoadator
x
B col
I
d
4
only
s-391111•1111MIZI
n
Tabla 6
49
Desarrollo de Sensor de Nivel Ultrasónico
h) Instrucciones Lógicas:
La tabla 7 muestra la lista de instrucciones lógicas disponibles en el 80051. Las
instrucciones que realizan operaciones booleanas (AND, OR, Exclusive OR, NOT)
con bytes utilizan bit por bit. Los modos de direccionamiento que pueden usarse
para acceder el operando están listados en la misma tabla.
Todas las instrucciones lógicas que están en el Acumulador son ejecutadas en
1 ps, con base en un clock de 12MHz. Las otras demoran 2ps.
Si la operación se origina como respuesta a una interrupción, el hecho de no
utilizarse el Acumulador economiza tiempo y esfuerzo en el sentido de la
introducción de datos en la pila de ejecución de la rutina de servicio.
ftnleeMer.;.:•A1011111MM=e,
....... ....:: ......:...:.:.. ............ ...
.. .....
^us a^ »^^tc^r^►win^.^r^
,orca
Y
^^
cbytg .
^yta> ANP.A ^^^n^
_
•
.
.
111=111111111
SWAP A
_
.
Ruleta Right th ro ugh
^
Cary
^
Aocunulator ooy
AOGaYY1laLir
Swap Nibbles in A
®
only
A ,,,.,.^^:^-^^
Tabla 7
i) Transferidores de Datos:
La tabla 8 muestra el menú de instrucciones que están disponibles para el
movimiento de datos por los espacios disponibles en la Memoria Interna.
En ella también tenemos los modos de direccionamiento que pueden utilizarse con
cada instrucción. Con un clock de 12MHz, todas estas instrucciones son
ejecutadas tanto en 1 ps como en 2ps. La instrucción MOV <dest>, <src> permite
la transferencia de datos entre cualquier locación de la RAM o SFR, sin pasar por
el Acumulador. Recuérdese que hasta 128 bytes de datos de la RAM pueden
accederse sólo por direccionamiento indirecto, y que el espacio de la SFR
solamente puede ser accedido por direccionamiento directo.
50
Desarrollo de Sensor de Nivel Ultrasónico
iroñc
a
ean.4466
MOV A, oro
MOV cdesD,A
MOV cdest>, cares
MOV OPTA ,#data 16
PUSH cero>
INC SP:MOV•/I/SP.,csrd
POP cdosb
MOV •dosb, • @SP•.DEC SP
XCH A, cbtrs>
ACC and cbylea exchange data
XCHO A, @RI
ACC and A RI exchanoo low nibbles
011111111111111111111111
Tabla 8
En la tabla 9 puede observarse una lista de instrucciones para transferencia de
datos accediendo la Memoria Externa de Datos. Sólo pueden utilizarse
direccionamientos indirectos, y la elección puede recaer tanto por
direccionamientos de 1 bit, tipo Ri, donde Ri puede ser RO o R1 del banco
seleccionado, como también de dos bits, del tipo DPTR.
1strui :,:kov-^:.W" b:,
^Q^l+â .
..
.DÉ ^
;.,
, ., l^^^GG..;
^
C
TRMIt. 4+s7
UPl9}il
11 bit s
MOV A, (áJ Ri
Read axioma] RAM e
n bits
MOVX Idi Ri, A
Wnite oriental RAM 0
MOVX A. f$ DP7R
Read external RAM
I 6 bib
16 bits
T
MOVX
e
DPrR A
RI
2
Ri
2
e DP71i
2
White axlemal RAM Qa? I7PTR
2
Tabla 9
La desventaja de la utilización de direccionamientos de 16 bits, en caso de que
pocos k bytes de la RAM externa estén comprometidos en un solo control, es que
los direccionamientos de 16 bits usan todos los 8 bits del po rt 2 y, también, el
barrido de direccionamientos.
Por otro lado, direccionamientos de 8 bits permiten el direccionamiento de pocos
bytes de la RAM sin sacrificar todo el port 2. Todas estas instrucciones son
ejecutadas en 2ps con un clock de 12MHz.
Nótese que en todos los accesos a la RAM externa el Acumulador está
funcionando como origen y destino de los datos.
La tabla 10 muestra las dos instrucciones que están disponibles para la lectura de
tablas de consulta en la Memoria de Programa.
51
Desarrollo de Sensor de Nivel Ultrasónico
0~11111112.1-'3 .,_
*Z1,:k
.^,^`-
O; E
lvtOVC A.A+DPiR
Asad program rnomo,y at (A + DP B)
MOVC i,,DA+PC
Head pecgnrn msrnay at (A + PC)
:i;{li^^'
2
2
Tabla 10
Como estas instrucciones acceden solamente la Memoria de Programa, las tablas
de consulta sólo pueden ser consultadas y no actualizadas.
j) Instrucciones Booleanas:
Los dispositivos 80051 contienen un procesador completo para instrucciones
booleanas (bit único).
La RAM interna contiene 128 bits direccionables, y el espacio SFR puede aceptar
hasta 128 bits direccionables. Todas las líneas de po rt s son direccionables por bit,
y cada una puede ser tratada como un po rt de bit único.
Las instrucciones que acceden estos bits no tienen una única función: también
pueden operar un menú completo de opciones, tales como descolocación, fijación,
apagado, complementación, puerta OR, AND, etc.
Estas operaciones de bit único no se obtienen fácilmente en otras arquitecturas sin
la ayuda de una buena cantidad de software orientado para esta finalidad.
El Set de Instrucciones para el procesador booleano se observa en la tabla 11.
n,
,121111111111111111WW.,s2. _ -.....
411111=a,
N£lditilli
AML
C.bk
:..
0PEEAC1O
t;;~ EJEC.OS1
G = C.ANO.b:t
JWL Cr`st
C . C.AND..NCT.bít
2
CRL C,bR
C . C.OR.bi
2
ORL GJ4Et
C = C.OR.
.NOT .bil
2
A1OV C,blt
C = bit
MOV bit,C
DI
CLR C
c.
2
O
CLR bM
bB=O
SETS C
C
SEi6 bit
bt.1
CPL C
C . .NCT.0
1
CPL bit
bit
JC nt
Jump it C.,
2
JNC td
JunpifC.o
2
Ja
Jump it bit . 1
2
JNB bit rai
Ju+ttpNbR.O
2
JBC btt,ret
Jump H bit . 1: CLR bit
2
ti+Lrel
^HSJkt^.^.I-... •
T.
ü
-
Tabla 11
52
Desarrollo de Sensor de Nivel Ultrasónico
Los direccionamientos de los bits de OOh hasta 7Fh están en los 128 inferiores, y
los de 80h hasta FFh se encuentran en el espacio SFR. Nótese que el Set de
Instrucciones booleanas incluye operaciones ANL y ORL, pero no la operación
XRL (Exclusive OR).
Una operación XRL resulta fácil de implementar mediante el software.
Offset relativo: Los direccionamientos de destino para estos saltos están
especificados al dispositivo por medio de un archivo o por un direccionamiento real
en la Memoria de Programa.
k) Instrucciones de Salto (JUMP):
En la tabla 12 vemos una lista de jumps incondicionales al tiempo de ejecución
para un clock de 12 MHz. La distancia del salto está limitada a la banda de -128 a
+127 bytes relativos a la instrucción que sigue el JMP. JMP es el modo
mnemónico de la instrucción. La tabla 13 muestra la lista de jumps disponibles en
el 80051. Todos estos jumps especifican el direccionamiento de destino por el
método de offset relativo, y, por eso, están limitados a una distancia de -128 a
+127 bytes a partir de la instrucción que determina el salto. Es importante
observar que el usuario especifica el assembler (ensamblador) o direccionamiento
real de destino de la misma forma que en los jumps comunes: como un archivo de
constantes de 16 bits. Otra aplicación para esta instrucción está en las
comparaciones del tipo "menor que".
-^
¡
M M
E ►x
o
:teExACKLN
JNP aa
@AfOPT
Jura te
NI*
,
,
oE
ES; InSt
^c
.1010íA
uaPIaxIcO _
2
09133AnoE
^
0.
ẁ^°i` ^ r
row
^
Jun-is to A• OPTA
2
JZ ul
Jump a A. 0
*rumia« only
2
GALL .dar
Can auh.wMa
2
JNZ rM
Junp w A i 0
A.aarxrl.tor
only
2
RET
Rotura PAN
2
DJNZ<hyY>M
O.N.m.M And yanPwnM yore
x
REll
RaNm han Inhnupt
2
CENE A myb>.ral
JunP
a
No aprtticn
t
CENE PoYI»,lW.yrN
AA* a •u/la>/faala
JNP
NOP
I
I
al
.ddr
w
AweON.s
iNyxyNep u,
x
2
a
1
x
x
2
2
w...... ..
Tabla 12
Tabla 13
Timing de la CPU
53
Desarrollo de Sensor de Nivel Ultrasónico
Todos los microcontroladores 80051 poseen un
oscilador on-chip que puede utilizarse como fuente de
señal de clock para la CPU.
Figura 28
Para usar el oscilador on-chip conecte un cristal al
resonador cerámico entre los pines XTAL1 y XTAL2 del
microcontrolador y capacitores a tierra, tal como
muestra la figura 30
En la figura 31 tenemos ejemplos de cómo utilizar un
oscilador externo como generador de clock.
Figura 29
Ciclo de Máquina
Un ciclo de máquina consiste en una secuencia de 6 estados, numerados desde
S1 hasta S6.
Cada estado exige, por lo menos, dos períodos del oscilador, lo que significa que
un ciclo de máquina demora 12 ciclos del oscilador, correspondientes a 1 ps si la
frecuencia del clock fuera de 12 MHz. Cada estado está dividido en mitades que
corresponden a Fase 1 y Fase 2. La figura 32 muestra la secuencia de estados y
fases para diversos tipos de instrucciones. Las secuencias descriptas son las
mismas tanto para la utilización de una Memoria de Programa interna como
externa. El tiempo de ejecución también es independiente del uso de las memorias
usadas.
^ SS t S. , SS
¡nPO^nPOJTPH¡nPO' AO
1 51 1 SY
CSC
''TALO
f, , 1 S:
S] : S. 1 tH 1 H. E HT
^mm ^P2 14T P E^n P E'PEPO^nPO}nP S yOP F'
1 fH ,
AL[
LEONM
CE
L^
OE
USL PgO1C
GPC00
Hal0312112141®
1
An VOS epLp OF WBTRYttWN. INCA
"flM4^
oPCOO
.
{FCIORA ^
r Ven
1E0TVN111EL Nqlo•Nl pPCOp
121l0012®itl/
0-00000, CMLOOFwHfIWCCgµACOA. (TAU
PRD%AM
LECTURA OH
OPC00
IKt,HMOC
.GOD
OUfVIEe1CRA
A
DEL^
smosa N
[^
^y
Il^
IMiMaI®Ili^1®1®
®®.:S.S ..)H
C- 1
BYTE 1OCLODEINSON000M,
NC OPTO
Np AL[OOIIN
D PpW'Np
SFM
-PFTCN'
LECTORADE
plá
Op•
LOC
OAO00
'PÉTCN'
L ECTURA DEL
rSCMALE
1
I
ES®lMI®CO®®ENCIUMICA
L
1p 0O ^
amorNO•RTIEiC1C L01
DAT.
ACCEN0A MEN0IMDITFWU
Figura 30
54
Desarrollo de Sensor de Nivel Ultrasónico
Estructura de Interrupciones
El 80051, en su versión sin ROM y con EPROM, posee 5 fuentes de interrupción:
2 externas, 2 por timer y el po rt serial de interrupción. A continuación damos una
visión general de la estructura de interrupciones del dispositivo, ya que una
profundización mayor sólo sería posible con un análisis más detallado del manual
del componente.
Habilitación de Interrupciones
Cada fuente de interrupción puede ser habilitada o inhabilitada individualmente por
la colocación o el retiro de un bit en la parte de la SFR denominada IE (Interrupt
Enable). Este registro contiene, también, un bit de inhabilitación global que permite
la habilitación o inhabilitación de todas las interrupciones al mismo tiempo.
Prioridades de Interrupción
Cada fuente de interrupción puede programarse individualmente para presentar
uno o dos niveles de prioridad por la utilización de un bit en la SFR denominado IP
(Interruptor Priority). Una interrupción de baja prioridad puede detenerse por una
interrupción de alta prioridad pero NO por otra de baja prioridad. En caso de
recibirse dos pedidos de interrupción al mismo tiempo, será atendido el de mayor
nivel de prioridad.
Si fueran recibidas dos instrucciones de interrupción de igual prioridad al mismo
tiempo, una secuencia interna de evaluación determina cuál es la que deberá ser
atendida.
Simulando un Tercer Nivel de Prioridad Vía Software: Algunas aplicaciones exigen
más que los dos niveles de prioridad disponibles en el 80051. En estos casos, un
software relativamente simple puede utilizarse para tener el mismo efecto de un
tercer nivel de prioridad. Este software aumenta un tiempo de 10ps (con 12MHz)
para las interrupciones de prioridad 1.
55
Desarrollo de Sensor de Nivel Ultrasónico
SENSOR DE DISTANCIA ULTRASÓNICO
SRFO5 es un sensor de distancias pensado
para ser una actualización del clásico SRFO4
con el que es compatible, pero además
añadiendo nuevas funciones y características.
En el modo estándar, el SRFO5 se comporta
igual que el SRFO4 con la diferencia de que el
rango de trabajo se ha aumentado de 3 a 4
metros. Esto significa que todo el software que
funciona con el SRF04, funciona con el
SRF05. Por otro lado, el SRFO5 cuenta con un
nuevo modo de trabajo que emplea un solo pin
para controlar el sensor y hacer la lectura de la medida. Lo que se hace es mandar
un impulso para iniciar la lectura y luego poner el pin en modo entrada. Después
basta con leer la longitud del pulso devuelto por el sensor, que es proporcional a la
distancia medida por el sensor. El SRFO5 es mecánicamente igual al SRF04, por
lo que puede ser un sustituto de este.
El sensor SRFO5 incluye un breve retardo después del pulso de eco para dar a los
controladores más lentos como Basic Stamp y Picaxe el tiempo necesario para
ejecutar sus pulsos en los comandos. El sensor SRFO5 tiene dos modos de
funcionamiento, según se realicen las conexiones.
Modo 1 - Compatible con SRFO4 - Señal ce Activación y Eco Independientes
Este modo utiliza pines independientes para la señal de inicio de la medición y
para retorno del eco, siendo el modo más sencillo de utilizar. Todos los ejemplos
de códigos para el sensor SRFO4 funcionarán para SRFO5 en este modo. Para
utilizar este modo, simplemente deberá dejar sin conectar el pin de modo - el
SRFO5 integra una resistencia pull-up en este pin.
Conexión
El módulo emplea tan sólo 5 conexiones que se pueden realizar soldando
directamente 5 cables o bien mediante un conector de 5 vías con paso de
2.54mm. Estas se muestran en la figura siguiente.
+5Vcc
ECO
Tensión positiva de
alimentación
Salida del pulso cuya
anchura determina el
tiempo del recorrido de
la señal ultrasónica
Disparo
Modo (N.C.)
Entrada de inicio de
una nueva medida. Se
aplica un pulso con una
duración mínima de
1 Ops
se
conexión
Sin
selecciona el modo 1
de compatibilidad con
56
Desarrollo de Sensor de Nivel Ultrasónico
SRF04. Conectado a
GND se selecciona el
modo 2 de trabajo
Tierra de alimentación.
GND
Entradas utilizada
para la programación en fabrica.
NO CONECTAR
OV
No conectar
Entrada Eco
Salida Eco
*5V
Otro Conector de 5 Pines
Los 5 pines marcados como
"programming pins" (pines de
programación) se utilizan sólo una vez
durante el proceso de fabricación para programar la memoria Flash en el chip del
PIC16F630. Los pines de programación de PIC16F630 se utilizan también para
realizar otras funciones en el SRF05, por lo que deberá asegurarse de que nada
esté conectado a ellos o se interrumpirá el funcionamiento de los módulos.
El módulo SRF05 viene perfectamente ajustado y calibrado de fábrica, por lo que
no necesita de ningún tipo de ajuste. Su funcionamiento se puede verificar
aplicando una serie de pulsos por la entrada de disparo. Con ayuda de un
osciloscopio se puede medir la anchura de la señal eco de salida. Esta anchura,
representada en pS y dividida entre 58.30 nos permite calcular la distancia del
objeto.
Diagrama de Tiempos
A continuación se muestra el funcionamiento del sensor a través de un diagrama
de tiempos.
Diagrama de Tiempos del SRFO5 en Modo 1
Pu ls o de inicic
10 uS
Entrada Pulso
de Inicio ebISRF05
J
Mínimo
L
Tren de impulsos
de8 ciclos
Secuencia de Pulsa
URrassoniccs emifidcs
pa
el S RF 05
Pulso de Eco- 1 00u5 a25 mS, Espera mcíctma
de 30 mS si nose dete ct a un objeta
Pulso de sacia del
SRF05
Modo 2 - Pin ÚnicopPara la Señal de Activación y Eco
Este modo utiliza un único pin para las señales de activación y eco, y está
diseñado para reducir el número de pines en los microcontroladores. Para utilizar
este modo, conecte el pin de modo al pin de tierra de Ov. La señal de eco
aparecerá en el mismo pin que la señal de activación. El SRF05 no elevará el nivel
57
Desarrollo de Sensor de Nivel Ultrasónico
lógico de la línea del eco hasta 700uS después del final de la señal de activación.
Dispone de ese tiempo para cambiar el pin del disparador y convertirlo en una
entrada para preparar el código de medición de pulsos. El comando PULSIN
integrado en la mayor parte de los controladores del mercado lo hace
automáticamente.
Entradas utilizadas
para la programación en fábrica.
NO CONECTAR
Diagrama de tiempos del SRFO5 en Modo 2
d:;. !
Pulso de Eco . I.'+i.r u 25rrsS, Tle r r;r cus espera
rrrdtrrrro de 3U mi s sl no se c:k:Hecrr; u:
d.: xsiCiO
. ir,5 r if
"f CS
:r';lracia de p.bCF3 :7C;
Inicio y' s•:.71 C;1 y rr p UIaÚ
de i)c'._ ; .. uarÍo.,
Tierra . ; t_r. • ..
de 8 C:cS?,.
s.
Secue7G..J ,i ;J;JIsos
ult asor.c i..; ernllidos
por el Sltr';5
{. , C1,417 a!, Cn,., ..'S
Azul : El usuario cantrda d pin de entrada salida
Rcija El iRF ccrrtrda d pin cje entrada salida
Cálculo de la Distancia
A continuación, se muestran todos los diagramas de tiempo para el sensor de
distancias por ultrasonido SRFO5 para cada modo. Deberá suministrar un breve
pulso de al menos 10uS para disparar la entrada de comienzo del cálculo de
distancia. El SRFO5 transmitirá una ráfaga de 8 ciclos de ultrasonidos a 40khz
elevando el nivel lógico de la señal del eco (o la línea de activación en el modo 2).
Entonces el sensor "escucha" un eco, y en cuanto lo detecta, vuelve a bajar el
nivel lógico de la línea de eco. La línea de eco es por lo tanto un pulso, cuyo
ancho es proporcional a la distancia respecto al objeto. Registrando la duración
del pulso es posible calcular la distancia en pulgadas/centímetros o en cualquier
58
Desarrollo de Sensor de Nivel Ultrasónico
otra unidad de medida. Si no se detectase nada, entonces el SRFO5 baja el nivel
lógico de su línea de eco después de 30mS.
El SRFO5 proporciona un pulso de eco proporcional a la distancia. Si el ancho del
pulso se mide en uS, el resultado se debe dividir entre 58 para saber el
equivalente en centímetros, y entre 148 para saber el equivalente en pulgadas.
uS/58=cm o uS/148=pulgadas.
El SRFO5 puede activarse cada 50mS, o 20 veces por segundo. Debería esperar
50ms antes de la siguiente activación, incluso si el SRFO5 detecta un objeto cerca
y el pulso del eco es más corto. De esta manera se asegura que el "bip"
ultrasónico ha desaparecido completamente y no provocará un falso eco en la
siguiente medición de distancia.
43.3
22,85
Cambiar el Patrón y el Ancho del Haz
No puede hacerlo. Los usuarios de este sensor nos plantean esta consulta muy
frecuentemente; sin embargo no existe ninguna manera sencilla de reducir o
cambiar el ancho del haz. El patrón del haz del sensor SRFO5 es cónico mientras
que el ancho del haz es una función del área de la superficie de los transductores
y es fijo. El patrón del haz de los transductores utilizados en el SRF05, según la
hoja de datos de los fabricantes, es la siguiente:
59
Desarrollo de Sensor de Nivel Ultrasónico
Diagrama de bloques del funcionamiento de sensor de distancias.
Ln
-ÍI
^
W
T
T
_ f(d)
^
-n
ó
-4 n•
Interface de
salida
Juego de display's
La entrada al PIC pueden ser: teclados, señales de red, señales de otros
sensores, etc.
Para iniciar el sensado se envía al sensor un voltaje en alto en un lapso mínimo de
10 microsegundos. Una vez enviado el sensor hace su parte correspondiente y
entregando un voltaje en alto, el ancho de este pulso depende directamente del la
distancia sensada por el sensor. Una vez recibida esta señal el PIC hará lo que se
deseé por el usuario para mostrar la distancia sensada por el sensor o bien alguna
otra operación que se deseé y este previamente programada en el PIC.
Para este caso particular se utiliza el Modo de operación 1 antes ya explicado en
este documento, El PIC se dedicará a estar activando el sensor ultrasónico cada
cierto tiempo necesario, a su vez el resultado que el PIC reciba lo va a enviar al
puerto B, donde habrá en cada pin del puerto un LED, esta barra de led's que
forma a la salida del puerto se encenderá dependiendo de la distancia sensada.
60
Desarrollo de Sensor de Nivel Ultrasónico
DESCRIPCIÓN GENERAL SENSOR DE TEMPERATURA LM35
La serie LM35 son circuitos integrados; sensores de temperatura de precisión,
que el voltaje de salida es lineal proporcional a la temperatura en grados
centígrados. El LM35 tiene la ventaja de que la temperatura es lineal calibrado en
grados Celsius. El LM35 no requiere ninguna calibración o ajuste externa
proporciona exactitudes típicas de ± 1/4 °C en la temperatura ambiente. El rango
de temperaturas censadas va de -55 a 150°C. La impedancia baja de la salida de
LM35, la salida lineal, y la calibración inherente exacta hacen la interconexión del
control del circuito especialmente fácil. Puede ser utilizado con una sola fuente de
alimentación, o con más. El LM35 se clasifica para funcionar sobre un rango de
temperaturas de -55°C a 150°C, mientras que el LM35C es clasificado para un
rango de -40°C a 110aC. La serie LM35 está disponible en encapsulado de tipo
transistor TO-46, mientras que los LM35C, los LM35CA, y los LM35D están
disponibles en el encapsulado tipo transistor de plástico TO-92. El LM35D está
también disponible en un paquete pequeño de montaje superficial de 8 pines y un
paquete del plástico TO-220.
TO-46
Metal Can Package'
SO-8
Small Outline Molded Package
y our
t
B
.y5
N.C.
N.C.
GND
5
4
N.C.
BOTTOMVIEW ;
'Case is connected to negoc n Oo (GNDI
N.C. = No Connection
Order Number LM35H, LM36AH, LM36CH, LM35CAH or
LM36DH
See NS Package Number H03H
Top View
Order Number LMSSDM
See NS Package Number MOSA
TO-92
Plastic Package
10-220
Plastic Package '
35Dr
Order Number LM36CZ,
LM35CAZ or LMSSDZ
See NS Package Number Z03A
sol)
`Tab is connected to the nega tivo pin (GND).
Note: The LM35DT pinout is different than the áscsttinued LM35DP
Order Number LM36DT
See NS Package Number TA03F
Características
•
•
•
•
•
•
Calibrado directamente en Centígrados
Factor de de conversión Lineal +10 mV/°C
Conveniente para lo usos alejados
Bajo costo debido a que no requiere calibración
Funciona a partir de 4 a 30 volts
Baja salida de Impedancia, 0.1 S2 por 1 mA de carga
61
Desarrollo de Sensor de Nivel Ultrasónico
Conexión Típica
+vs
(4V TO 20
.
OUTPUT
O
mV+10,0 mV/°C
F
Las conexiones para este componente son
relativamente simples, solo basta con energizar el pin
Vs con un voltaje que va de los 4 hasta los 20 volts,
aterrizar GND y esperar el voltaje de salida por Vout,
que es equivalente a la siguiente regla de
correspondencia:
D6G0551&2
Order Number LM35CZ,
LM35CAZ or LM35DZ
See NS Package Number ZO3A
Vout =10 ^
62
Desarrollo de Sensor de Nivel Ultrasónico
Diagrama de Conexiones
Los componentes utilizados para la construcción del circuito electrónico para el
sensor de nivel ultrasónico son los siguientes
Microcontrolador PIC16F877A
Sensor Ultrasónico SRFO5
Sensor de Temperatura LM35
Pantalla de Cristal Liquido JHD-162ASTN
Potenciómetro de 10 KC)
Oscilador de cristal de cuarzo de 4 MHz.
U 7
J1-10-16244714
000
G
WM
II
-C
115
01
ItiLRIVpp
Key -
.`+^.:3-=e
R44 4Nn
re 4111
R,-^-?<
1
1 0EI;L_CR4'ST?L
RBT1it.6
REFRY_
ftFFi
5R6
RM41741
.
RE1
RENINf
'DO
„ge
I ..
.. .
`JCC
%TlL1
Key , d
0K L 1N
RFL15
VCC
_L_
U0
IN1
IN'
IN='
114
0034 C1UT3
0UT2 0071
P3
^ JW VCC.
470 Ohre
P.+7.
140611
24016
El funcionamiento de este circuito se basa principalmente en el microcontrolador
PIC16F77A, ya que es este componente el que se encarga de hacer y dirigir todas
las operaciones de control, como lo son el convertir el voltaje analógico de la
salida del sensor de temperatura LM35 a una señal digital para poder ser
procesada y ser mostrada en el LCD, también de controlar el sensor ultrasónico
SRFO5 en los tiempos para emitir y recibir la señal ultrasónica, convertir o
procesar de manera digital el tiempo que tarda en ir y regresar dicha señal, para
poder ser mostrada también en el LCD, hasta el momento en lo que se lleva de
avance en este proyecto todas las lecturas hechas por el sensor ultrasónico son
almacenadas en una memoria EEPROM 24C16 de 16K a través del bus PC del
microcontrolador a la memoria; los datos almacenados se leen a través del puerto
paralelo de la PC mediante un pequeño software que se desarrollo para dicho fin,
63
Desarrollo de Sensor de Nivel Ultrasónico
todas las operaciones de lectura y escritura de los datos sensados se hacen al
ritmo o a la velocidad del oscilador o cristal, en este caso es un cristal de 4 MHz, el
potenciómetro tiene como única función la de regular el contraste del LCD.
El diagrama de la derecha es la interfaz
para la conexión de la memoria con la PC,
es el utilizado para la recuperación de los
datos almacenados en la memoria
EEPROM 24C16
La siguiente figura corresponde al software desarrollado para la adquisición de los
datos almacenados en la memoria, estos datos son almacenados en un archivo
con extensión .txt para poder ser manipulados o procesados en Excel o algún otro
software.
nsor SRF•
Grafica de distancias almacenadas en memoria eeprour24c16
utilizando el sensor ulaasonico srf05
60
E
20
0
300
100
Mediclon Nun.
Gralicai
Bloque ,0
Bbque ,0 : Du:
SALIR
Adquiere
Decimal
3
Dist '61.05
En la siguiente sección se muestra el procesamiento de la información recolectada
por el sensor, las primeras tres graficas son pruebas que se hicieron en distancias
menores a un metro, y por cuestiones prácticas, solo se considero el primer bogue
de almacenamiento de la memoria es decir solo los primeros 250 datos
almacenados, la última prueba muestra un análisis en la cual se sensaron y
almacenaron 2000 datos, en las todas las graficas se observa que el dispositivo
construido se mantiene estable y es consistente en cuanto a la misma distancia
sensada, con solo unos pequeños saltos o irregularidades.
64
Desarrollo de Sensor de Nivel Ultrasónico
Estas irregularidades están relacionadas con el programa instalado en el
microcontrolador, al cual le hace falta afinarlo más en cuestiones de dejar más
espacio entre medida y media y algunas rutinas que procesan la información
proveniente del sensor ultrasónico, otra causa de estas irregularidades están
ligadas muy estrechamente con las características físicas de los dispositivos
electrónicos en el procesamiento de la información ya que solo se pueden hacer
operaciones a 8 bits.
Todos los datos que se muestran más adelante fueron leídos y almacenados a
una velocidad de 4 datos por segundo en una memoria EEPROM 24C16 de 16K,
esta velocidad es controlada a través del programa instalado en el
microcontrolador.
65
Desarrollo de Sensor de Nivel Ultrasónico
Tabla de datos de la p rueba No.1
Dato No.
Dato
Error con
respecto a
ala Media
0.000400
201
24.75
0.000400
0.000400
202
24.75
0.000400
24.75
0.000400
203
24.75
0.000400
154
24.75
0.000400
204
24.75
0.000400
0.000400
155
24.75
0.000400
205
24.75
0.000400
24.75
0.000400
156
24.75
0.000400
206
24.75
0.000400
107
24.75
0.000400
157
24.75
0.000400
207
24.75
0.000400
0.000400
108
24.75
0.000400
158
24.75
0.000400
208
24.75
0.000400
24.75
0.000400
109
24.75
0.000400
159
24.75
0.000400 209
24.75
0.000400
60
24.75
0.000400
110
24.75
0.000400
160
24.75
0.000400
210
24.75
0.000400
24.75
0.000400 " 61
24.75
0.000400
111
24.75
0.000400
161
24.75
0.000400
211
24.75
0.000400
12
24:75
0.000400
62
24.75
0:000400
112
2475
0.000400
162
24.75
0.000400
212
2415
0.000400
13
24.75
0.000400
63
24.75
0.000400
113
24.75
0.000400
163
24.75
0.000400
213
24.75
0.000400
14
2475
0.000400
64
24.75
0.000400' 114
2475
0.000400
164
24.75
0.000400
214
2475
0.000400
15
24.75
0.000400
65
24.75
0.000400
115
24.75
0.000400
165
24.75
0.000400
215
24.75
0.000400
16
24.75
0.000400
66
24.75
0.000400
116
24.75
0.000400
166
24.75
0.000400
216
24.75
0.000400
17
24.75
0.000400 67
24.75
0.000400
117
24.75
0.000400 167
24.75
0.000400 217
24.75
0.000400
18
24.75
0.000400
68
24.75
0.000400
118
24.75
0.000400 ` 168
24.75
0.000400
218
24.75
0.000400
19
24.75
0.000400
69
24.75
0.000400
119
24.75
0.000400 169
24.75
0.000400
219
24.75
0.000400
20
24.75
0.000400
70
24.75
0.000400
120
24.75
0.000400
170
24.75
0.000400
220
24.75
0.000400
21
24.75
0.000400
71
24.75
0.000400
121
24.75
0.000400 171
24.75
0.000400
221
24.75
0.000400
22
24.75
0.000400
72
24.75
0.000400
122
24.75
0.000400
172
24.75
0.000400
222
24.75
0.000400
23
24.75
0.000400 73
24.75
0.000400
123
24.75
0.000400
173
24.75
0.000400
223
24.75
0.000400
24
2415
0.000400
74
24.75
0.000400
124
24.75
0.000400
174
2475
0.000400 224
2475
0.000400
25
24.75
0.000400
75
24.75
0.000400
125
24.75
0.000400
175
24.75
0.000400
225
24.75
0.000400-
26
2475
0.000400
76
24.75
0.000400
126
24.75
0.000400
176
2475
0.000400
226
24.75
0.000400
27
24.75
0.000400
77
24.75
0.000400
127
24.75
0.000400
177
24.75
0.000400
227
2475
0.000400`
28
24.75
0.000400
78
24.75
0.000400
128
24.75
0.000400
178
24.75
0.000400
228
24.75
0.000400
29
24.75
0.000400
79
24.75
0.000400
129
24.75
0.000400
179
24.75
0.000400
229
24.75
0.000400
30
24.75
0.000400
80
24.75
0.000400
130
24.75
0.000400
180
24.75
0.000400
230
24.75
0.000400
31
24.75
0.000400
81
24.75
0.000400
131
24.75
0.000400
181
24.75
0.000400
231
24.75
0.000400
32
24.75
0:000400
82
24.75
0.000400
132
2475
0.000400
182
24.75
0.000400
232
2475
0.000400'
33
24.75
0.000400
83
24.75
0.000400
133
24.75
0.000400 183
24.75
0.000400
233
24.75
0.000400'
34
24.75
0.000400
84
24.75
0.000400
134
24.75
0.000400
184
24.75
0.000400
234
24.75
0.000400
35
24.75
0.000400
85
24.75
0.000400
135
24.75
0.000400
185
24.75
0.000400
235
24.75
0.000400
36
24.75
0.000400
86
24.75
0.000400
136
24.75
0.000400
186
24.75
0.000400
236
24.75
0.000400
37
24.75
0.000400
87
24.75
0.000400
137
24.75
0.000400
187
24.75
0.000400
237
24.75
0.000400
38
24.75
0.000400
88
24.75
0.000400 138
24.75
0.000400
188
24.75
0.000400
238
24.75
0.000400
39
24.75
0.000400
89
24.75
0.000400
139
24.75
0.000400
189
24.75
0.000400
239
24.75
0.000400
40
24.75
0.000400
90
24.75
0.000400
140
24.75
0.000400
190
24.75
0.000400
240
24.75
0.000400
41
24.75
0.000400
91
24.75
0.000400
141
24.75
0.000400
191
24.75
0.000400 241
24.65
-0.099600
42
24.75
0.000400
92
24.75
0.000400
142
24.75
0.000400
192
24.75
0.000400
242
24.75
0.000400
43
24.75
0.000400
93
24.75
0.000400
143
24.75
0.000400
193
24.75
0.000400
243
24.75
0.000400
44
24.75
0.000400
94
24.75
0.000400
144
24.75
0.000400
194
24.75
0.000400
244
24.75
0.000400
45
24.75
0.000400
95
24.75
0.000400
145
24.75
0.000400
195
24.75
0.000400
245
24.75
0.000400
46
24.75
0.000400
96
24.75
0.000400
146
24.75
0.000400
196
24.75
0.000400
246
24.75
0.000400
47
24.75
0.000400
97
24.75
0.000400
147
24.75
0.000400
197
24.75
0.000400
247
24.75
0.000400
48
24.75
0.000400 98
24.75
0.000400
148
24.75
0.000400
198
24,75
0.000400
248
24.75
0.000400
49
2475
0.000400 99
24.75
0.000400
149
2415 0.000400
199
2475
0.000400
249
2415
0.000400
50
24.75
0.000400
24.75
0.000400
150
24.75
200
24.75
0.000400
250
24.75
0.000400
Dato
Error con
respecto a
ala Media
151
24.75
0.000400
152
24.75
24.75
0.000400
153
104
24.75
0.000400
0.000400
105
24.75
24.75
0.000400
106
57
24.75
0.000400
0.000400
58
24.75
24.75
0.000400
59
10
24.75
0.000400
11
Dato No.
Dato
Error con
respecto a
ala Media
1
24.75
2
Error con
respecto a
ala Media
Dato No.
Dato
Error con
respecto a
ala Media
0.000400
51
24.75
0.000400
101
24.75
0.000400
24.75
0.000400
52
24.75
0.000400
102
24.75
3
24.75
0.000400
53
24.75
0.000400
103
4
24.75
0.000400
54
24.75
0.000400
5
24.75
0.000400
55
24.75
6
24.75
0.000400
56
7
24.75
0.000400
8
24.75
9
100
Dato
Dato
N0 '
0.000400
Dato
N0'
66
Desarrollo de Sensor de Nivel Ultrasónico
24.76
24.74
24.72
24.7
24.68
24,66
24.64
24.62
24.6
Valores en centímetros
Datos
Media
Desv. Est.
Val. Max.
Val. Min.
24.7496
0.00632456
24.75
24.65
Error con respecto
a la Media
2.6148E-15
0.00632456
0.0004
-0.0996
67
Desarrollo de Sensor de Nivel Ultrasónico
Tabla de datos de la p rueba No. 2
Dato
Error con
respecto a
ala Media
0.004297 201
61.05
0,004297
0.004297
202
61.05
0.004297
61.05
0.004297
203
61.05
0.004297
154
61.05
0.004297
204
61.05
0.004297
0.004297
155
61.05
0.004297
205
61.05
0.004297
61.05
0.004297
156
61.05
0.004297
206
61.05
0.004297
107
61.05
0.004297
157
61.05
0.004297
207
61.05
0.004297
0.004297
108
61.05
0.004297
158
61.05
0.004297
208
61.05
0.004297<
61. 05
0.004297
109
61.05
0.004297
159
61.05
0.004297
209
61.05
0.004297
60
61.05
0.004297
110
61.05
0.004297
160
61.05
0.004297
210
61.05
0.004297
0.004297
61
61.05
0.004297
111
61.05
0.004297
161
61.05
0.004297
211
61.05
0.004297
61.05
0.004297
62
61.05
0.004297
112
61.05
0.004297
162
61.05
0.004297. 212
61.05
0.004297
13
61.05
0.004297
63
61.05
0.004297
113
61.05
0.004297
163
61.05
0.004297
213
61.05
0.004297
14
61.05
0.004297
64
61.05
0.004297
114
61. 05
0.004297 164
61.05
0.004297
214
61.05
0.004297
15
61.05
0.004297
65
61.05
0.004297
115
61.05
0.004297
165
61.05
0.004297
215
61.05
0.004297
16
61.05
0.004297
66
61.05
0.004297
116
61. 05
0.004297
166
61.05
0.004297
216
61.05
0.004297
17
61.05
0.004297
67
61.05
0.004297
117
61.05
0.004297
167
61.05
0.004297
217
61.05
0.004297
18
61.05
0.004297
68
61.05
0.004297
118
61.05
0.004297 168
61.05
0.004297
218
61.05
0.004297
19
61.05
0.004297
69
61.05
0.004297
119
61.05
0.004297
169
61.05
0.004297
219
61.05
0.004297
20
61.05
0.004297
70
61.05
0.004297
120
61.05
0.004297
170
61.05
0.004297
220
61.05
0.004297
21
61.05
0:004297
71
61.05
0.004297
121
61.05
0.004297
171
61.05
0.004297
221
61.05
0.004297
22
61.05
0.004297
72
61.05
0.004297
122
61.05
0.004297
172
61.05
0.004297
222
61.05
0.004297
23
61.05
0.004297
73
61.05
0.004297
123
61.05
0.004297
173
61.05
0.004297
223
61.05
0.004297
24
61.05
0.004297
74
61.05
0.004297' 124
61.05
0.004297
174
61.05
0.004297
224
61.05
0.004297
25
61.05
0.004297
75
61.05
0.004297
125
61.05
0.004297
175
61.05
0.004297 225
61.05
0.004297
26
61.05
0.004297
76
61.05
0.004297
126
61.05
0.004297
176
61.05
0.004297
226
61.05
0.004297
27
61.05
0.004297
77
61.05
0.004297
127
61.05
0.004297
177
61.05
0.004297
227
61.05
0.004297
28
61.05
0.004297
78
61.05
0.004297 128
61.05
0.004297
178
61.05
0.004297
228
61.05
0.004297
29
61.05
0.004297
79
61.05
0.004297
129
61.05
0.004297
179
61.05
0.004297
229
61.05
0.004297
30
61.05
0.004297
80
61.05
0.004297
130
61.05
0,004297
180
61.05
0.004297
230
61.05
0.004297
31
60.5
-0.545703: 81
61,05
0.004297
131
61.05
0.004297
181
61.05
0.004297
231
61.05
0.004297 '.
32
61.05
0.004297 ` 82
61.05
0.004297
132
61.05
0.004297
182
61.05
0.004297
232
61.05
0.004297
33
61.05
0.004297
83
61.05
0.004297
133
61.05
0.004297
183
61.05
0.004297
233
61.05
0.004297
34
61.05
0.004297
84
61.05
0.004297
134
61.05
0.004297
184
61.05
0.004297
234
61.05
0.004297
35
61.05
0.004297
85
61.05
0.004297 135
61.05
0.004297
185
61.05
0.004297
235
61.05
0,004297
36
61.05
0.004297
86
61.05
0.004297
136
61.05
0.004297
186
61.05
0.004297
236
61.05
0.004297
37
61.05
0.004297
87
61.05
0.004297
137
61.05
0.004297
187
61.05
0.004297
237
61.05
0.004297
38
61.05
0.004297
88
61.05
0.004297
138
61.05
0.004297
188
61.05
0.004297
238
61.05
0.004297
39
61.05
0.004297
89
61.05
0.004297
139
61.05
0.004297
189
61.05
0.004297
239
61.05
0.004297
40
61.05
0.004297
90
61.05
0.004297
140
61.05
0.004297
190
61.05
0.004297
240
61.05
0.004297
41
61.05
0.004297
91
61.05
0.004297
141
61.05
0.004297
191
61.05
0.004297
241
61.05
0.004297
42
61.05
0.004297
92
61.05
0.004297
142
61.05
0.004297
192
61.05
0.004297
242
61.05
0.004297
43
61.05
0.004297
93
61.05
0.004297
143
61.05
0.004297
193
61.05
0.004297
243
61.05
0.004297
44
61.05
0.004297
94
61.05
0.004297
144
61.05
0.004297
194
61.05
0.004297
244
61.05
0.004297
45
61.05
0.004297
95
61.05
0.004297' 145
61.05
0.004297`- 195
61,05
0.004297
245
61.05
0.004297
46
60.5
-0.545703
96
61.05
0.004297
146
61.05
0.004297
196
61.05
0.004297
246
61.05
0.004297
47
61.05
0.004297
97
61.05
0.004297
147
61.05
0.004297
197
61.05
0.004297
247
61.05
0.004297
48
61.05
0.004297
98
61.05
0.004297
148
61.05
0.004297
198
61.05
0.004297
248
61.05
0.004297
49
61.05
' 0.004297
99
61.05
0.004297
149
61.05
0.004297
199
61.05
0.004297
249
61.05
0.004297
50
61.05
0.004297
100
61.05
0.004297
150
61.05
0.004297
200
61.05
0.004297
250
61.05
0.004297
Dato No.
Dato
Error con
respecto a
ala Media
1
61.05
2
Error con
respecto a
ala Media
Dato
Error con
respecto a
ala Media
Dato No.
Dato
0.004297
151
61.05
0.004297
152
61.05
61.05
0.004297
153
104
61.05
0.004297
0.004297
105
61.05
61.05
0.004297
106
57
61.05
0.004297
0.004297
58
61.05
61.05
0.004297
59
10
61.05
0.004297
11
61.05
12
Dato No.
Dato
Dato
0.004297
51
61.05
0.004297
101
61.05
61.05
0.004297
52
61.05
0.004297
102
61,05
3
61.05
0.004297
53
61.05
0.004297
103
4
61.05
0.004297
54
61.05
0.004297
5
61.05
0.004297
55
61.05
6
61.05
0.004297 56
7
61.05
0.004297
8
61.05
9
No '
Error con
respecto a
ala Media
Dato No.
68
Desarrollo de Sensor de Nivel Ultrasónico
61.1
61
60.9
60.8
60.7
60.6
60.5
60.4
60.3
60.2
Hi HI Hi Hi HI H
<1.
Lr)
H
co
HI
Hi HI HI
HI HI
0
m •<(
(N
HI Hi
H
LÇ
ÇO
H
H.1
N
00
Hi
HI
CF,
H
(N
Hi
r,.1
rsi M
NNNN
Series1
Valores en
centímetros.
Datos
Media
Desv. Est.
Val. Max.
Val. Min.
61.0456
0.04909461
61.05
60.5
Error con respecto a
la Media
2.6688E-13
0.04909461
0.0044
-0.5456
Histograma
300
200
1,0
F eClICOCI.
100
50
69
Desarrollo de Sensor de Nivel Ultrasónico
Tabla de datos de la p rueba No. 3
Dato No.
Dato
Error con
respecto a
ala Media
Dato No.
Dato
Error con
respecto a
ala Media
Dato
Dato
Error con
respecto a
ala Media
N0 '
Dato No.
Dato
Error con
respecto a
ala Media
Dato No.
Dato
Error con
respecto a
ala Media
1
69.3
0.005469
51
69.3
0.005469
101
69.3
0.005469
151
69.3
0.005469
201
69.3
0.005469
2
69.3
0.005469
52
69.3
0.005469
102
69.3
0.005469
152
69.3
0.005469
202
69.3
0.005469
3
69.3
0.005469
53
69.3
0.005469
103
69.3
0.005469
153
69.3
0.005469
203
69.3
0.005469
4
69.3
0.005469 54
69.3
0.005469 104
69.3
0.005469
154
69.3
0.005469
204
69.3
0.005469
5
69.3
0.005469
55
69.3
0.005469
105
69.3
0.005469
155
69.3
0.005469
205
69.3
0.005469
6
69.3
0.005469
56
69.3
0.005469
106
69.3
0.005469
156
69.3
0.005469
206
69.3
0.005469
157
69.3
0.005469
207
69.3
0.005469
7
69.3
0.005469
57
69.3
0.005469
107
69.3
0.005469
8
69.3
0.005469
58
69.3
0.005469
108
69.3
0.005469 158
69.3
0.005469
208
69.3
0.005469
9
69.3
0.005469
59
69.3
0.005469
109
69.3
0.005469
159
69.3
0.005469
209
69.3
0.005469
10
69.3
0.005469
60
69.3
0.005469
110
69.3
0.005469
160
69.3
0.005469
210
69.3
0.005469
11
69.3
0.005469
61
69.3
0.005469
111
69.3
0.005469
161
69.3
0.005469
211
69.3
0.005469
12
693
0.005469
62
693
0.005469
112
693
0.005469
162
693
0.005469
212
693
0.005469
13
69.3
0.005469
63
69.3
0.005469
113
69.3
0.005469
163
69.3
0.005469
213
69.3
0.005469
114
693
0.005469
164
693
0.005469 214
693
0.005469
14
693
0.005469
64
69.3
0.005469
15
69.3
0.005469 65
69.3
0.005469
115
69.3
0.005469
165
69.3
0.005469
215
69.3
0.005469
16
69.3
0.005469
66
69.3
0.005469
116
69.3
0.005469
166
69.3
0.005469
216
69.3
0.005469
17
69.3
0.005469
67
69.3
0.005469
117
69.3
0.005469
167
69.3
0.005469
217
69.3
0.005469
18
693
0.005469
68
693
0.005469
118
693
0.005469
168
693
0.005469
218
693
0.005469:
19
69.3
0.005469
69
69.3
0.005469
119
69.3
0.005469
169
69.3
0.005469 219
69.3
0.005469"
69.3
0.005469
220
69.3
0.005469
20
69.3
0.005469
70
69.3
0.005469
120
69.3
0.005469
170
21
69.3
0.005469
71
69.3
0.005469
121
69.3
0.005469
171
69.3
0.005469
221
69.3
0.005469'
22
69.3
0.005469
72
69.3
0.005469
122
69.3
0.005469
172
69.3
0.005469
222
69.3
0.005469
23
69.3
0.005469
73
69.3
0.005469
123
69.3
0.005469
173
69.3
0.005469 223
69.3
0.005469
24
69.3
0.005469
74
69.3
0.005469
124
69.3
0.005469
174
69.3
0.005469
224
69.3
0.005469
25
69.3
0.005469
75
69.3
0.005469
125
69.3
0.005469
175
69.3
0.005469
225
69.3
0.005469
0.005469
226
69.3
0.005469
26
69.3
0.005469
76
69.3
0.005469
126
69.3
0.005469
176
69.3
69.3
0.005469
177
69.3
0.005469
227
69.3
0.005469
27
69.3
0.005469
77
69.3
0.005469
127
28
69.3
0.005469
78
69.3
0.005469
128
69.3
0.005469
178
69.3
0.005469
228
69.3
0.005469
29
69.3
0.005469
79
69.3
0.005469
129
69.3
0.005469
179
69.3
0.005469 229
69.3
0.005469
30
69.3
0.005469
80
69.3
0.005469
130
69.3
0.005469
180
69.3
0.005469
230
69.3
0.005469
31
69.3
0.005469
81
69.3
0.005469
131
69.3
0.005469
181
69.3
0.005469
231
69.3
0.005469
32
69.3
0.005469
82
69.3
0.005469
132
69.3
0.005469
182
69.3
0.005469
232
69.3
0.005469
69.3
0.005469
233
69.3
0.005469
33
69.3
0.005469
83
69.3
0.005469
133
69.3
0.005469
183
34
69.3
0.005469
84
69.3
0.005469
134
69.3
0.005469
184
69.3
0.005469
234
69.3
0.005469
35
69.3
0.005469 85
69.3
0.005469
135
69.3
0.005469
185
69.3
0.005469 235
69.3
0.005469
36
69.3
0.005469
86
69.3
0.005469
136
69.3
0.005469
186
69.3
0.005469
236
69.3
0.005469
37
69.3
0.005469
87
69.3
0.005469 137
69.3
0.005469
187
69.3
0.005469
237
69.3
0.005469
38
69.3
0.005469
88
69.3
0.005469
138
69.3
0.005469
188
69.3
0.005469
238
69.3
0.005469
39
693
0.005469
89
69.3
0.005469
139
693
0.005469
189
693
0.005469 239
693
0.005469
69.3
0.005469
240
69.3
0.005469
40
69.3
0.005469
90
69.3
0.005469 140
69.3
0.005469 190
41
69.3
0.005469
91
69.3
0.005469
141
69.3
0.005469
191
69.3
0.005469
241
69.3
0.005469
42
69.3
0.005469 92
69.3
0.005469
142
69.3
0.005469
192
69.3
0.005469
242
69.3
0.005469
43
69.3
0.005469
93
69.3
0.005469
143
69.3
0.005469 193
69.3
0.005469
243
69.3
0.005469
44
69.3
0.005469
94
69.3
0.005469
144
69.3
0.005469
194
69.3
0.005469 244
69.3
0.005469
45
69.3
0.005469
95
69.3
0.005469
145
69.3
0.005469
195
69.3
0.005469
245
69.3
0.005469
69.3
0.005469
246
69.3
0.005469
46
69.3
0.005469
96
69.3
0.005469
146
69.3
0.005469 196
47
68.65
-0.644531
97
69.3
0.005469, 147
69.3
0.005469
197
68.55
-0.744531
247
69.3
0.005469
48
69.3
0.005469
98
69.3
0.005469 148
69.3
0.005469
198
69.3
0.005469
248
69.3
0.005469.
49
69.3
0.005469
99
69.3
0.005469
149
69.3
0.005469
199
69.3
0.005469
249
69.3
0.005469'
50
69.3
0.005469
100
69.3
0.005469
150
69.3
0.005469
200
69.3
0.005469. 250
69.3
0.005469
70
Desarrollo de Sensor de Nivel Ultrasónico
69.4
69.2
69
68.8
68.6
68.4
68.2
68
•-, c-+
.--i
.
^ 4 -1 .-i
N M
Yfl lp
..-1 •1
ri
.1
ti ti .'-,
.-1 .-1
4-1
C1 O ti (N M w7 t!1 l> t` IX) G1 O rl .i n •1 .-i .-9 .r1 1-1 e-1
.••, .-i .-1 r-1
M C%
N (N
NNN
Series'
Valores
en centímetros.
Datos
Media
Desv. Est.
Val. Max.
Val. Min.
69.2944
0.06264453
69.3
68.55
Error con respecto
a la Media
3.2804E-13
0.06264453
0.0056
-0.7444
Histograma
71
Desarrollo de Sensor de Nivel Ultrasónico
Tabla de datos de la p rueba No 4 (1/8
Dato No.
Dato
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
Dato
Dato
N0'
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
1
265.65
0.04372
51
265.65
0.04372
101
265.65
0.04372
151
265.65
0.04372
201
265.65
0.04372'
2
265.65
0.04372
52
265.65
0.04372
102
265.65
0.04372
152
265.65
0.04372
202
265.65
0.04372
3
265.65
0.04372
53
265.65
0.04372
103
265.65
0.04372
153
265.65
0.04372
203
265.65
0.04372
4
265.65
0.04372
54
265.65
0.04372
104
265.65
0.04372
154
265.65
0.04372
204
265.65
0.04372
5
265.65
0.04372
55
265.65
0.04372
105
265.65
0.04372
155
265.65
0.04372 205
265.65
0.04372
6
265.65
0.04372
56
265.65
0.04372
106
265.65
0.04372
156
265.65
0.04372
206
265.65
0.04372
7
265.65
0.04372
57
265.65
0.04372
107
265.65
0.04372
157
265.65
0.04372
207
265.65
0.04372
8
265.65
0.04372 58
265.65
0.04372
108
265.65
0.04372
158
265.65
0.04372
208
265.65
0.04372"
9
265.65
0.04372
59
265.65
0.04372
109
265.65
0.04372
159
265.65
0.04372
209
265.65
0.04372
10
265.65
0.04372
60
265.65
0.04372
110
265.65
0.04372
160
265.65
0.04372
210
265.65
0.04372
11
265.65
0.04372
61
265.65
0.04372
111
265.65
0.04372
161
265.65
0.04372
211
265.65
0.04372
12
265.65
0.04372 62
265.65
0.04372
112
265.65
0.04372
162
265.65
0.04372
212
265.65
0.04372
13
265.65
0.04372
63
265.65
0.04372
113
265.65
0.04372
163
265.65
0.04372
213
265.65
0.04372
14
265.65
0.04372
64
265.65
0.04372
114
265.65
0.04372
164
265.65
0.04372
214
265.65
0.04372
15
265.65
0.04372
65
265.65
0.04372
115
265.65
0.04372 165
265.65
0.04372
215
265.65
0.04372
16
265.65
0.04372
66
265.65
0.04372
116
265.65
0.04372
166
265.65
0.04372
216
265.65
0.04372
17
265.65
0.04372
67
265.65
0.04372
117
265.65
0.04372
167
265.65
0.04372
217
265.65
0.04372
18
265.65
0.04372
68
265.65
0.04372
118
265.65
0.04372
168
265.65
0.04372
218
265.65
0.04372
19
265.65
0.04372
69
265.65
0.04372
119
265.65
0.04372
169
265.65
0.04372
219
265.65
0.04372
20
265.65
0.04372
70
265.65
0.04372
120
265.65
0.04372
170
265.65
0.04372
220
265.65
0.04372
21
265.65
0.04372
71
265.65
0.04372
121
265.65
0.04372
171
265.65
0.04372
221
265.65
0.04372'
22
265.65
0.04372
72
265.65
0.04372
122
265.65
0.04372
172
265.65
0.04372
222
265.65
0.04372
23
265.65
0.04372
73
265.65
0.04372
123
265.65
0.04372
173
265.65
0.04372
223
265.65
0.04372
24
265.65
0.04372 74
265.65
0.04372
124
265.65
0.04372
174
265.65
0.04372
224
265.65
0.04372
25
265.65
0.04372
75
265.65
0.04372
125
265.65
0.04372
175
265.65
0.04372
225
265.65
0.04372
26
265.65
0.04372 76
265.65
0.04372
126
265.65
0.04372
176
265.65
0.04372
226
265.65
0.04372
27
265.65
0.04372
265.65
0.04372
127
265.65
0.04372
177
265.65
0.04372
227
265.65
0.04372
28
265.65
0.04372
78
265.65
0.04372
128
265.65
0.04372
178
265.65
0.04372
228
265.65
0.04372
29
265.65
0.04372
79
265.65
0.04372
129
265.65
0.04372
179
265.65
0.04372
229
265.65
0.04372
30
265.65
0.04372
80
265.65
0.04372
130
265.65
0.04372
180
265.65
0.04372
230
265.65
0.04372
31
265.65
0.04372
81
265.65
0.04372
131
265.65
0.04372
181
265.65
0.04372
231
265.65
0.04372
32
265.65
0.04372
82
265.65
0.04372
132
265.65
0.04372
182
265.65
0.04372
232
265.65
0.04372
33
265.65
0.04372 83
265.65
0.04372
133
265.65
0.04372
183
265.65
0.04372
233
265.65
0.04372
34
265.65
' ' 0.04372
265.65
0.04372
134
265.65
0.04372 ' 184
265.65
0.04372
234
265.65
0.04372;
35
265.65
0.04372
85
265.65
0.04372
135
265.65
0.04372
185
265.65
0.04372
235
265.65
0.04372
36
265.65
0.04372
86
265.65
0.04372
136
265.65
0.04372
186
265.65
0.04372
236
265.65
0.04372
37
265.65
0.04372
87
265.65
0.04372
137
265.65
0.04372
187
265.65
0.04372
237
265.65
0.04372
38
265.65
0.04372
88
265.65
0.04372
138
265.65
0.04372
188
265.65
0.04372 238
265.65
0.04372
39
265.65
0.04372
89
265.65
0.04372
139
265.65
0.04372
189
265.65
0.04372
239
265.65
0.04372
40
265.65
0.04372
90
265.65
0.04372
140
265.65
0.04372
190
265.65
0.04372
240
265.65
0.04372
41
265.65
0.04372 91
265.65
0.04372
141
265.65
0.04372
191
265.65
0.04372
241
265.65
0.04372
42
265.65
0.04372
92
265.65
0.04372
142
265.65
0.04372
192
265.65
0.04372
242
265.65
0.04372
43
265.65
0.04372
93
265.65
0.04372
143
265.65
0.04372
193
265.65
0.04372 243
265.65
0.04372
44
265.65
0.04372
94
265.65
0.04372
144
265.65
0.04372
194
265.65
0.04372
244
265.65
0.04372
45
265.65
0.04372
95
265.65
0.04372
145
265.65
0.04372
195
265.65
0.04372
245
265.65
0.04372
46
265.65
0.04372
96
265.65
0.04372
146
265.65
0.04372 196
265.65
0.04372
246
265.65
0.04372
47
265.65
0.04372
97
265.65
0.04372
147
265.65
0.04372
197
265.65
0.04372
247
265.65
0.04372
48
265.65
0.04372' 98
265.65
0.04372
148
265.65
0.04372 198
265.65
0.04372
248
265.65
0.04372
49
265.65
0:04372: 99
265.65
0.04372
149
265.65
0.04372
199
265.65
0.04372
249
265.65
0.04372
50
265.65
0.04372
265.65
0.04372
150
265.65
0.04372
200
265.65
0.04372
250
265.65
0.04372
77
84
100
72
Desarrollo de Sensor de Nivel Ultrasónico
Tabla de datos de la p rueba No 4 (2/8
Dato No.
Dato
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
Dato
Dato
N0'
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto
la Media
Dato No.
Dato
Error con
respecto a
la Media
251
265.65
0.04372
301
265.65
0.04372 351
265.65
0.04372
401
265.65
0.04372
451
265.65
0.04372
252
265.65
0.04372
302
265.65
0.04372
352
265.65
0.04372
402
265.65
0.04372
452
265.65
0.04372
265.65
0.04372
453
265.65
0.04372
253
265.65
0.04372
303
265.65
0.04372
353
161.7
-103.90628 403
254
265.65
0.04372
304
265.65
0.04372
354
161.7
-103.90628
404
265.65
0.04372 454
265.65
0.04372
255
265.65
0.04372
305
265.65
0.04372
355
265.65
0.04372
405
265.65
0.04372
455
265.65
0.04372
256
265.65
0.04372
306
265.65
0.04372
356
265.65
0.04372
406
265.65
0.04372
456
265.65
0.04372
257
265.65
0.04372
307
265.65
0.04372
357
265.65
0.04372
407
265.65
0.04372
457
265.65
0.04372
258
265.65
0.04372 308
265.65
0.04372
358
265.65
0.04372
408
265.65
0.04372 458
265.65
0.04372'
259
265.65
0.04372
309
265.65
0.04372
359
265.65
0.04372
409
265.65
0.04372
459
265.65
0.04372
260
265.65
0.04372
310
265.65
0.04372
360
265.65
0.04372
410
265.65
0.04372
460
265.65
0.04372
261
265.65
0.04372
311
265.65
0.04372
361
265.65
0.04372
411
265.65
0.04372
461
265.65
0.04372
262
265.65
0.04372
312
265.65
0.04372 362
265.65
0.04372
412
265.65
0.04372
462
265.65
0.04372
263
265.65
0.04372
313
265.65
0.04372
363
265.65
0.04372 413
265.65
0.04372
463
265.65
0.04372
264
265.65
0.04372
314
265.65
0.04372
364
265.65
0.04372
414
265.65
0.04372
464
265.65
0.04372
265
265.65
0.04372
315
265.65
0.04372
365
265.65
0.04372
415
265.65
0.04372
465
265.65
0.04372
266
265.65
0.04372
316
265.65
0.04372
366
265.65
0.04372
416
265.65
0.04372
466
265.65
0.04372
267
265.65
0.04372
317
265.65
0.04372
367
265.65
0.04372
417
265.65
0.04372
467
265.65
0.04372
268
265.65
0.04372
318
265.65
0.04372
368
265.65
0.04372 418
265.65
0.04372 468
265.65
0.04372
269
265.65
0.04372
319
265.65
0.04372
369
265.65
0.04372
419
265.65
0.04372
469
265.65
0.04372
270
265.65
0.04372
320
265.65
0.04372 370
265.65
0.04372
420
265.65
0.04372 470
265.65
0.04372
271
265.65
0.04372
321
265.65
0.04372
371
265.65
0.04372
421
265.65
0.04372
471
265.65
0.04372
272
265:65
0.04372
322
265.65
0:04372
372
265.65
0.04372
422
265.65
0.04372
472
265.65
0.04372
273
265.65
0.04372
323
265.65
0.04372
373
265.65
0.04372
423
265.65
0.04372
473
265.65
0.04372
274
265.65
0.04372
324
265.65
0.04372
374
265.65
0.04372
424
265.65
0.04372
474
265.65
0.04372
275
265.65
0.04372
325
265.65
0.04372
375
265.65
0.04372
425
265.65
0.04372
475
265.65
0.04372
276
265.65
0.04372
326
265.65
0.04372
376
265.65
0.04372
426
265.65
0.04372
476
265.65
0.04372
277
265.65
0.04372
327
265.65
0.04372
377
265.65
0.04372
427
265.65
0.04372
477
265.65
0.04372
278
265.65
0.04372
328
265.65
0.04372
378
265.65
0.04372
428
265.65
0.04372
478
265.65
0.04372
279
371.25
105.64372
329
265.65
0.04372
379
265.65
0.04372
429
265.65
0.04372
479
265.65
0.04372
280
265.65
0.04372
330
267.3
1.69372
380
265.65
0.04372
430
265.65
0.04372
480
265.65
0.04372
281
265.65
0.04372
331
265.65
0.04372
381
265.65
0.04372 431
265.65
0.04372
481
265.65
0.04372
282
265.65
0.04372
332
265.65
0.04372
382
265.65
0.04372
432
265.65
0.04372
482
265.65
0.04372
283
265.65
0.04372
333
265.65
0.04372
383
265.65
0.04372
433
265.65
0.04372
483
265.65
0.04372
284
265.65
0.04372, 334
265.65
0.04372
384
265.65
0.04372 434
265.65
0.04372 484
265.65
0.04372
285
265.65
0.04372
335
265.65
0.04372
385
265.65
0.04372
435
265.65
0.04372
485
265.65
0.04372
286
265.65
0.04372
336
265.65
0.04372
386
265.65
0.04372
436
265.65
0.04372
486
265.65
0.04372
287
265.65
0.04372
337
265.65
0.04372
387
265.65
0.04372
437
265.65
0.04372
487
265.65
0.04372
288
265.65
0.04372
338
265.65
0.04372 388
265.65
0.04372
438
265.65
0.04372
488
265.65
0.04372
289
265.65
0.04372
339
265.65
0.04372
389
265.65
0.04372
439
265.65
0.04372
489
265.65
0.04372
290
265.65
0.04372
340
267.3
1.69372
390
265.65
0.04372
440
265.65
0.04372
490
265.65
0.04372
291
265.65
0.04372
341
267.3
1.69372
391
265.65
0.04372
441
265.65
0.04372
491
265.65
0.04372
292
265.65
0.04372
342
265.65
0.04372
392
265.65
0.04372
442
265.65
0.04372
492
265.65
0.04372
293
265.65
0.04372
343
265.65
0.04372
393
265.65
0.04372
443
265.65
0.04372
493
265.65
0.04372
294
265.65
0.04372
344
265.65
0.04372
394
265.65
0.04372' 444
265.65
0.04372
494
265.65
0.04372
295
265.65
0.04372
345
265.65
0.04372
395
265.65-
0.04372
445
265.65
0:04372
495
265.65
0.04372
296
265.65
0.04372
346
265.65
0:04372
396
265.65
0:04372 446
265.65
0.04372' 496
265.65
0.04372
297
265.65
0.04372
347
265.65
0.04372
397
265.65
0.04372
447
265.65
0.04372
497
265.65
0.04372
298
265.65
0.04372
348
265.65
0.04372' 398
265.65
0.04372
448
265.65
0.04372 498
265.65
0:04372
299
265.65
0:04372
349
265.65
0.04372
399
265.65 °
0.04372
449
265.65
0.04372: 499
265.65
0.04372:
300
265.65
0.04372
350
265.65
0.04372
400
265.65'
0.04372
450
265.65
0.04372' 500
265.65
0.04372
73
Desarrollo de Sensor de Nivel Ultrasónico
Tabla de datos de la Drueba No 4 (3/8
Dato No.
Dato
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
Dato
Dato
N0'
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
0.043725 ` 701
265.65
0.043725
0.04372
702
265.65
0.04372
265.65
0.04372
703
265.65
0.04372
654
265.65
0.04372
704
265.65
0.04372
0.04372
655
265.65
0.04372
705
265.65
0.04372
265.65
0.04372
656
265.65
0.04372
706
265.65
0.04372
607
265.65
0.04372
657
265.65
0.04372
707
265.65
0.04372
0.04372
608
265.65
0.04372
658
265.65
0.04372
708
265.65
0.04372'
265.65
0.04372
609
265.65
0.04372
659
265.65
0.04372 709
265.65
0.04372
0.04372 560
265.65
0.04372
610
265.65
0.04372
660
265.65
0.04372
710
265.65
0. 04372
265.65
0.04372
561
265.65
0.04372
611
265.65
0.04372
661
265.65
0.04372
711
265.65
0. 04372
512
265.65
0.04372
562
265.65
0.04372
612
265.65
0.04372
662
265.65
0.04372
712
265,65
0.04372
513
265.65
0.04372
563
265.65
0.04372
613
265.65
0.04372
663
265.65
0.04372
713
265.65
0. 04372
514
265.65
0.04372
564
265.65
0.04372
614
265.65
0.04372
664
265.65
0.04372
714
265.65
0.04372
515
265.65
0.04372
565
265.65
0.04372
615
265.65
0.04372
665
265.65
0.04372
715
265.65
0.04372
516
265.65
: ` 0.04372
566
265.65
0.04372
616
265.65
0.04372
666
265.65
0.04372
716
265.65
0.04372
517
265.65
0.04372
567
265.65
0.04372
617
265.65
0.04372
667
265.65
0.04372
717
265.65
0.04372
518
265.65
0.04372
568
265.65
0.04372
618
265.65
0.04372
668
265.65
0.04372
718
265.65
0.04372
519
265.65
0.04372
569
265.65
0.04372
619
265.65
0.04372
669
265.65
0.04372
719
265.65
0.04372
265.65
0.04372
720
265.65
0.04372
501
265.65
0.043725
551
265.65
0.043725
601
265.65
0.043725
651
265.65
502
265.65
0.04372
552
265.65
0.04372
602
265.65
0.04372
652
265.65
503
265.65
0.04372 553
265.65
0.04372
603
265.65
0.04372
653
504
265.65
0.04372
554
265.65
0.04372
604
265.65
0.04372
505
265.65
0.04372
555
265.65
0.04372
605
265.65
506
265.65
0.04372
556
265.65
0.04372
606
507
265.65
0.04372
557
265,65
0.04372
508
265.65
0.04372
558
265.65
509
265.65
0.04372
559
510
265.65
511
520
265.65
0.04372
570
265.65
0.04372
620
265.65
0.04372
670
521
265.65
0.04372
571
265.65
0.04372
621
265.65
0.04372
671
265.65
0.04372
721
265.65
0.04372
522
265.65
0.04372
572
265.65
0.04372
622
265.65
0.04372 672
265.65
0.04372' 722
265.65
0.04372
523
265.65
0.04372
573
265.65
0.04372
623
265.65
0.04372
673
265.65
0.04372
723
265.65
0.04372
524
265.65
0.04372
574
265.65
0.04372
624
265.65
0.04372
674
265.65
0.04372
724
265.65
0.04372
525
265.65
0.04372
575
265.65
0.04372
625
265.65
0.04372
675
265.65
0.04372 725
265.65
0.04372
526
265.65
0.04372
576
265.65
0.04372
626
265.65
0.04372 676
265.65
0.04372 726
265.65
0.04372
527
265.65
0.04372
577
265.65
0.04372
627
265.65
0.04372
677
265.65
0.04372
727
265.65
0.04372
528
265.65
0.04372
578
265.65
0.04372
628
265.65
0.04372
678
265.65
0.04372
728
265.65
0.04372
529
265.65
0.04372
579
265.65
0.04372
629
265.65
0.04372
679
265.65
0.04372
729
265.65
0.04372
530
265.65
0.04372
580
265.65
0.04372
630
265.65
0.04372
680
265.65
0.04372
730
265.65
0.04372
531
265.65
0.04372
581
265.65
0.04372
631
265.65
0.04372
681
265.65
0.04372
731
265.65
0.04372
532
265.65
0.04372
582
265.65
0.04372
632
265.65
0.04372
682
265.65
0.04372
732
265.65
0.04372'
533
265.65
0.04372 583
265.65
0.04372
633
265.65
0.04372
683
265.65
0.04372
733
265.65
0.04372
534
265.65
0.04372
584
265.65
0.04372
634
265.65
0.04372
684
265.65
0.04372 734
265.65
0.04372
535
265.65
0.04372
585
265.65
0.04372
635
265.65
0.04372
685
265.65
0.04372
735
265.65
0.04372
536
265.65
0.04372
586
265,65
0.04372
636
265.65
0.04372
686
265.65
0.04372
736
265.65
0.04372
537
265.65
0.04372
587
265.65
0.04372
637
265.65
0.04372
687
265.65
0.04372
737
265.65
0.04372
538
265.65
0.04372
588
265.65
0.04372
638
265.65
0.04372
688
265.65
0.04372
738
265.65
0.04372
539
265.65
0.04372
589
265.65
0.04372
639
265.65
0.04372
689
265.65
0.04372
739
265.65
0.04372
540
265.65
0.04372 590
265.65
0.04372
640
265.65
0.04372
690
265.65
0.04372
740
265.65
0.04372
541
265.65
0.04372
591
265.65'
0.04372
641
265.65
0.04372
691
265.65
0.04372
741
265.65
0.04372
542
265.65
0.04372
592
265.65
0.04372
642
265.65
0.04372
692
265.65
0.04372
742
265.65
0.04372
543
265.65
0.04372
593
265.65
0.04372
643
265.65
0.04372
693
265.65
0.04372
743
265.65
0.04372
544
265.65
0.04372
594
265.65
0.04372
644
265.65
0.04372
694
265.65
0.04372
744
265.65
0.04372
545
265.65
0.04372
595
265.65
0.04372
645
265.65
0.04372
695
265.65
0.04372
745
265.65
0.04372
546
265.65
0.04372
596
265.65
0.04372
646
265.65
0.04372
696
265.65
0.04372
746
265.65
0.04372
547
265.65
0.04372
597
265.65
0:04372
647
265.65
0.04372
697
265.65
0.04372
747
265.65
0.04372
548
265.65
0.04372
598
265.65
0.04372
648
265.65
0.04372
698
265.65
0.04372
748
265.65
0.04372
549
265.65
0.04372
599
265:65
0.04372
649
265.65
0.04372 699
265.65
0.04372
749
265.65
0:04372
550
265.65
0.04372
600
265:65
0.04372
650
265.65
0.04372` 700
265.65
0.04372
750
265.65
0:04372
"
74
Desarrollo de Sensor de Nivel Ultrasónico
Tabla de datos de la Drueba No 4 (4/8
Error con
Error con
Dato No.
Dato
respecto a
Dato No.
Dato
la Media
751
265.65
0.043725
respecto a
la Media
801
265.65
0.043725
Dato
Dato No.
Dato
265.65
respecto a
Dato No.
Dato
respecto a
la Media
la Media
la Media
N0'
851
respecto a
Error con
Error con
Error con
Dato
0.043725
901
265.65
0.043725
951
265.65
267.3
1.69372
952
265.65
0.043725`
0.04372
752
265.65
0.04372
802
265.65
0.04372
852
265.65
0.04372
902
753
265.65
0.04372
803
265.65
0.04372
853
265.65
0.04372
903
265.65
0.04372
953
265.65
0.04372
754
265.65
0.04372
804
265.65
0.04372
854
265.65
0.04372
904
265.65
0.04372
954
265.65
0.04372
755
265.65
0.04372
805
265.65
0.04372
855
265.65
0.04372
905
265.65
0.04372
955
265.65
0.04372
756
265.65
0.04372
806
265.65
0.04372
856
265.65
0.04372
906
265.65
0.04372
956
265.65
0.04372
757
265.65
0.04372
807
265.65
0.04372
857
265.65
0.04372
907
265.65
0.04372
957
265.65
0.04372
958
265.65
0.04372
758
265.65
0.04372
808
265.65
0.04372
858
265.65
0.04372
908
265.65
0.04372
859
265.65
0.04372
909
265.65
0.04372
959
265.65
0.04372
759
265.65
0.04372
809
265.65
0.04372
760
265.65
0.04372
810
265.65
0.04372
860
265.65
0.04372
910
265.65
0.04372
960
265.65
0.04372
761
265.65
0.04372
811
265.65
0.04372
861
265.65
0.04372
911
265.65
0.04372
961
265.65
0.04372
762
265.65
0.04372
812
265.65
0.04372
862
265.65
0.04372
912
265.65
0.04372
962
265.65
0.04372
763
265.65
0.04372
813
265.65
0.04372
863
265.65
0.04372
913
265.65
0.04372
963
265.65
0.04372'
764
265.65
0.04372
814
265.65
0.04372
864
265.65
0.04372
914
265.65
0.04372
964
265.65
0.04372i
765
265.65
0.04372
815
265.65
0.04372
865
265.65
0.04372
915
265.65
0.04372
965
265.65
0.04372?
766
265.65
0.04372
816
265.65
0.04372
866
265.65
0.04372
916
265.65
0.04372 966
265.65
0.04372
767
265.65
0.04372
817
265.65
0.04372
867
265.65
0.04372
917
265.65
0.04372
967
265,65
0.04372
768
265:65
0.04372
818
265.65
0.04372
868
265.65
0.04372
918
265.65
0.04372
968
265.65
0.04372
769
265.65
0.04372
819
265.65
0.04372
869
265.65
0.04372
919
265.65
0.04372
969
265.65
0.04372
770
265.65
0.04372
820
265.65
0.04372
870
265.65
0.04372
920
265.65
0.04372 970
265.65
0.04372
771
265.65
0.04372
821
265.65
0.04372
871
265.65
0.04372
921
265.65
0.04372
971
265.65
0.04372
922
265.65
0.04372
972
265.65
0.04372
772
265.65
0.04372
822
265.65
0.04372
872
265.65
0.04372
773
265.65
0.04372
823
265.65
0.04372
873
265.65
0.04372
923
265.65
0.04372
973
265.65
0.04372
774
265.65
0.04372
824
265.65
0.04372
874
265.65
0.04372
924
265.65
0.04372
974
265.65
0.04372
775
265.65
0.04372
825
265.65
0.04372
875
265.65
0.04372
925
265.65
0.04372
975
265.65
0.04372
776
265.65
0.04372
826
265.65
0.04372
876
265.65
0.04372
926
265.65
0.04372
976
265.65
0.04372
777
265.65
0.04372
827
265.65
0.04372
877
265.65
0.04372 927
265.65
0.04372
977
265.65
0.04372
978
265.65
0.04372
778
265.65
0.04372
828
265.65
0.04372
878
265.65
0.04372
928
265.65
0.04372
779
265.65
0.04372
829
265.65
0.04372
879
265.65
0.04372
929
265.65
0.04372
979
265.65
0.04372
780
265.65
0.04372
830
265.65
0.04372
880
265.65
0.04372
930
265.65
0.04372
980
265.65
0.04372
781
265.65
0.04372
831
265.65
0.04372
881
265.65
0.04372
931
265.65
0.04372
981
265.65
0.04372
782
265.65
0.04372
832
265.65
0.04372
882
265.65
0.04372
932
265.65
0.04372
982
265.65
0.04372'
783
265.65
0.04372
833
265.65
0.04372
883
265.65
0.04372
933
265.65
0.04372
983
265.65
0.04372
784
265.65
0.04372 834
265.65
0.04372
884
265.65
0.04372
934
265.65
0.04372
984
265.65
0.04372
265.65
0.04372
985
265.65
0.04372
785
265.65
0.04372
835
265.65
0.04372
885
265.65
0.04372
935
786
265.65
0.04372
836
265.65
0.04372
886
265.65
0.04372
936
265.65
0.04372
986
265.65
0.04372
787
265.65
0.04372
837
265.65
0.04372
887
265.65
0.04372
937
265.65
0.04372
987
265.65
0.04372
788
265.65
0.04372
838
265.65
0.04372
888
265.65
0.04372
938
265.65
0.04372
988
265.65
0.04372
789
265.65
0.04372
839
265.65
0.04372
889
265.65
0.04372
939
265.65
0.04372
989
265.65
0.04372
790
265.65
0.04372
840
265.65
0.04372
890
265.65
0.04372
940
265.65
0.04372
990
265.65
0.04372'
791
265.65
0.04372
841
265.65
0.04372
891
265.65
0.04372
941
265.65
0.04372
991
265.65
0.04372
792
265.65
0.04372
842
265.65
0.04372
892
265.65
0.04372
942
265.65
0.04372
992
265.65
0.04372
793
265.65
0.04372
843
265.65
0.04372
893
265.65
0.04372
943
265.65
0.04372
993
265.65
0.04372
794
265.65
0.04372
844
265.65
0.04372
894
265.65
0.04372
944
265.65
0.04372
994
265.65
0.04372
795
265.65
0.04372
845
265.65
0.04372
895
265.65
0.04372
945
265.65
0.04372 ` 995
265.65
0.04372
796
265.65
0.04372
846
265.65
0.04372
896
265.65
0.04372
946
265.65
0.04372
996
265.65
0.04372
265.65
0.04372
797
265.65
798
265.65
0.04372
848
799
265.65
0.04372
849
800
265.65
0.04372
850
0.04372
847
0.04372
897
265.65
0.04372
947
265.65
0.04372
997
265.65
0.04372
898
265.65
0;04372
948
265.65
0.04372
998
265.65
0.04372
265.65
0.04372 899
265.65
0.04372
949
265.65
0.04372
999
265.65
0.04372
265.65
0.04372
265:65
0.04372' 950
265.65
0.04372
1000
265.65
0.04372
265.65
900
75
Desarrollo de Sensor de Nivel Ultrasónico
Tabla de datos de la p rueba No 4 (5/8
Dato No.
Dato
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
Dato
Dato
No'
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
1001
265.65
0.043725
1051
265.65
0.043725
1101
265.65
0.043725
1151
265.65
0.043725
1201
265.65
0.043725
1002
265.65
0.04372
1052
265.fi5
0.04372
1102
265.65
0.04372
1152
265.65
0.04372
1202
265.65
0.04372
1003
265.65
0.04372
1053
265.65
0.04372
1103
265.65
0.04372
1153
265.65
0.04372
1203
265.65
0.04372
1004
265.65
0.04372
1054
265.65
0.04372
1104
265.65
0.04372
1154
265.65
0.04372
1204
265.65
0.04372
1005
265.65
0.04372
1055
265.65
0.04372
1105
265.65
0.04372
1155
265.65
0.04372
1205
265.65
0.04372
1006
265.65
0.04372
1056
265.65
0.04372
1106
265.65
0.04372
1156
265.65
0.04372
1206
265.65
0.04372
1007
265.65
0.04372
1057
265.65
0.04372
1107
265.65
0.04372
1157
265.65
0.04372
1207
265.65
0.04372
1008
265.65
0.04372
1058
265.65
0.04372
1108
265.65
0.04372
1158
265.65
0.04372
1208
265.65
0.04372
1009
265.65
0.04372
1059
265.65
0.04372
1109
265.65
0.04372
1159
265.65
0.04372
1209
265.65
0.04372
1010
265.65
0.04372
1060
265.65
0.04372
1110
265.65
0.04372
1160
265.65
0.04372
1210
265.65
0.04372
1011
265.65
0.04372
1061
265.65
0.04372
1111
265.65
0.04372
1161
265.65
0.04372
1211
265.65
0.04372
1012
265.65
0.04372
1062
265.65
0.04372
1112
265.65
0.04372
1162
265.65
0.04372
1212
265.65
0.04372
1013
265.65
0.04372
1063
265.65
0.04372
1113
265.65
0.04372
1163
265.65
0.04372
1213
265.65
0.04372
1014
265.65
0.04372
1064
265.65
0.04372
1114
265.65
0.04372
1164
265.65
0.04372
1214
265.65
0.04372
1015
265.65
0.04372
1065
265.65
0.04372
1115
265.65
0.04372
1165
265.65
0.04372
1215
265.65
0.04372
1016
265.65
0.04372
1066
265.65
0.04372
1116
265.65
0.04372
1166
265.65
0.04372
1216
265.65
0.04372
1017
265.65
0.04372
1067
265.65
0.04372
1117
265.65
0.04372
1167
265.65
0.04372
1217
265.65
0.04372
1018
265.65
0.04372
1068
265.65
0.04372
1118
265.65
0.04372
1168
265.65
0.04372
1218
265.65
0.04372
1019
265.65
0.04372
1069
265.65
0.04372
1119
265.65
0.04372
1169
265.65
0.04372
1219
265,65
0.04372
1020
265.65
0.04372
1070
265.65
0.04372
1120
265.65
0.04372
1170
265.65
0.04372
1220
265.65
0.04372
1021
265.65
0.04372
1071
265.65
0.04372
1121
265.65
0.04372
1171
265.65
0.04372
1221
265.65
0.04372
1022
265.65
0.04372
1072
265.65
0.04372
1122
265.65
0.04372
1172
265.65
0.04372
1222
265.65
0.04372
1023
265.65 '
0.04372
1073
265.65
0.04372
1123
265.65
0.04372
1173
265.65
0.04372
1223
265.65
0.04372
1024
265.65
0.04372
1074
265.65
0.04372
1124
265.65
0.04372
1174
265.65
0.04372
1224
265.65
0.04372
1025
265.65
0.04372
1075
265.65
0:04372
1125
265.65
0.04372
1175
265.65
0.04372
1225
265.65
0.04372
1026
265.65
0.04372
1076
265.65
0.04372
1126
265.65
0.04372
1176
265.65
0.04372
1226
265.65
0.04372
1027
265.65
0.04372
1077
265.65
0.04372
1127
265.65
0.04372
1177
265.65
0.04372
1227
265.65
0.04372
1028
265.65
0.04372
1078
265.65
0.04372
1128
265.65
0.04372
1178
265.65
0.04372
1228
265.65
0.04372
1029
265.65
0.04372
1079
265.65
0.04372
1129
265.65
0.04372
1179
265.65
0.04372
1229
265.65
0.04372
1030
265.65
0.04372
1080
265.65
0.04372
1130
265.65
0.04372
1180
265.65
0.04372
1230
265.65
0.04372
1031
265.65
0.04372
1081
265.65
0.04372
1131
265.65
0.04372
1181
265.65
0.04372
1231
265.65
0.04372
1032
265.65
0.04372
1082
265.65
0.04372
1132
265.65
0.04372
1182
265.65
0.04372
1232
265.65
0.04372
1033
265.65
0.04372
1083
265.65
0.04372
1133
265.65
0.04372
1183
265.65
0.04372
1233
265.65
0.04372
1034
265.65
0.04372
1084
265.65
0.04372
1134
265.65
0.04372
1184
265.65
0.04372
1234
265.65
0.04372
1035
265.65
0:04372
1085
265.65
0.04372
1135
265:65
0.04372
1185
265.65
0.04372
1235
265.65
0.04372
1036
265.65
0.04372
1086
265.65"
0.04372
1136
265.65
0.04372
1186
265.65
0.04372
1236
265.65
0.04372
1037
265.65
0.04372
1087
265.65
0.04372
1137
265.65
0.04372
1187
265.65
0.04372 1237
265.65
0.04372
1038
265.65
0.04372
1088
265:65
0:04372
1138
265.65
0.04372
1188
265.65
0.04372
1238
265.65
0.04372
1039
265.65
0:04372
1089
265.65
0.04372
1139
265.65
0.04372
1189
265.65
0.04372
1239
265.65
0.04372
1040
265.65
0.04372
1090
265.65
0.04372
1140
265.65
0.04372
1190
265.65
0.04372
1240
265.65
0.04372;
1041
265.65
0.04372
1091
265.65
0.04372
1141
265.65
0.04372
1191
265.65
0.04372
1241
265.65
0.04372
1042
265.65
0.04372
1092
265.65
0.04372
1142
265,65
0.04372
1192
265.65
0.04372
1242
265.65
0.04372
1043
265.65
0.04372
1093
265.65
0.04372
1143
265.65
0.04372
1193
265.65
0.04372
1243
265.65
0.04372
1044
265:65
0.04372
1094
265.65
0.04372
1144
265.65
0:04372
1194
265.65
0.04372
1244
265.65
0.04372
1045
265.65
0.04372
1095
265.65
0.04372
1145
265.65
0.04372
1195
265.65
0.04372
1245
265.65
0.04372
1046
265.65
0.04372
1096
265.65
0.04372
1146
265.65
0.04372
1196
265.65
0.04372
1246
265.65
0.04372
1047
265.65
0.04372
1097
265.65
0.04372
1147
265.65
0.04372
1197
265.65
0.04372
1247
265.65'
0.04372
1048
265.65
0.04372
1098
265.65
0.04372
1148
265.65
0.04372
1198
265.65
0.04372
1248
265.65
0.04372
1049
265.65
0.04372
1099
265.65
0.04372
1149
265.65
0.04372
1199
265.65
0.04372
1249
265.65
0.04372'
1050
265.65
0.04372
1100
265.65
0.04372
1150
265.65
0.04372
1200
265.65
0.04372
1250
265.65
0.04372
76
Desarrollo de Sensor de Nivel Ultrasónico
Tabla de datos de la p rueba No 4 (6/8
Dato No.
Dato
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
Dato
Dato
N0'
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
1251
265.65
0.043725
1301
265.65
0.043725
1351
265.65
0.043725
1401
265.65
0.043725
1451
265.65
0.043725
1252
265.65
0.04372
1302
265.65
0.04372
1352
265.65
0.04372
1402
265.65
0.04372
1452
265.65
0.04372'
1253
265.65
0.04372
1303
265.65
0.04372
1353
265.65
0.04372
1403
265.65
0.04372
1453
265.65
0.04372
1404
265.65
0.04372
1454
265.65
0.04372°
1254
265.65
0.04372 1304
265.65
0.04372 1354
265.65
0.04372
1255
265.65
0.04372
1305
265.65
0.04372
1355
265.65
0.04372
1405
265.65
0.04372
1455
265.65
0.04372
1256
265.65
0.04372
1306
265.65
0.04372
1356
265.65
0.04372
1406
265.65
0.04372
1456
265.65
0.04372
1257
265.65
0.04372
1307
265.65
0.04372
1357
265.65
0.04372
1407
265.65
0.04372
1457
265.65
0.04372
1258
265.65
0.04372
1308
265.65
0.04372
1358
265.65
0.04372
1408
265.65
0.04372
1458
265.65
0.04372
1259
265.65
0.04372
1309
265.65
0.04372
1359
265.65
0.04372 1409
265.65
0.04372
1459
265.65
0.04372
1260
265.65
0.04372
1310
265.65
0.04372
1360
265.65
0.04372
1410
265.65
0.04372
1460
265.65
0.04372
1261
265.65
0.04372
1311
265.65
0.04372
1361
265.65
0.04372
1411
265.65
0.04372 1461
265.65
0.04372
1262
265.65
0.04372
1312
265.65
0.04372
1362
265.65
0.04372
1412
265.65
0.04372
1462
265.65
0.04372
1263
265.65
0.04372
1313
265.65
0.04372
1363
265.65
0.04372
1413
265.65
0.04372
1463
265.65
0.04372
1264
265.65
0.04372
1314
265.65
0.04372
1364
265.65
0.04372
1414
265.65
0.04372
1464
265.65
0.04372
1265
265.65
0.04372
1315
265.65
0.04372
1365
265.65
0.04372
1415
265.65
0.04372
1465
265,65
0.04372
1266
265.65
0.04372
1316
265.65
0.04372
1366
265.65
0.04372
1416
265.65
0.04372
1466
265.65
0.04372
265.65
0.04372
1467
265.65
0.04372
1267
265.65
0.04372
1317
265.65
0.04372
1367
265.65
0.04372
1417
1268
265.65
0.04372
1318
265.65
0.04372
1368
265.65
0.04372
1418
265.65
0.04372
1468
265.65
0.04372
1269
265.65
0.04372
1319
265.65
0.04372
1369
265.65
0.04372 1419
265.65
0.04372
1469
265.65
0.04372
1270
265.65
0.04372
1320
265.65
0.04372
1370
265.65
0.04372
1420
265.65
0.04372
1470
265.65
0.04372
1271
265.65
0.04372
1321
265.65
0.04372
1371
265.65
0.04372
1421
265.65
0.04372 1471
265.65
0.04372
1272
265.65
0.04372
1322
265.65
0.04372
1372
265.65
0.04372
1422
265.65
0.04372
1472
265.65
0.04372
1273
265.65
0.04372
1323
265.65
0.04372
1373
265.65
0.04372 ` 1423
265.65
0.04372
1473
265.65
0.04372
1274
265.65
0.04372
1324
265.65
0.04372
1374
265.65
0.04372
1424
265.65
0.04372
1474
265.65
0.04372
1275
265.65
0.04372
1325
265.65
0.04372
1375
265.65
0.04372
1425
265.65
0.04372
1475
265.65
0.04372
1276
265.65
0.04372
1326
265.65
0.04372
1376
265.65
0.04372- 1426
265.65
0.04372
1476
265.65
0.04372
1277
265.65
0.04372
1327
265.65
0.04372
1377
265.65
0.04372
1427
265.65
0.04372
1477
265.65
0.04372
1278
265.65
0.04372
1328
265.65
0.04372
1378
265.65
0.04372
1428
265.65
0.04372
1478
265.65
0.04372
1279
265.65
0.04372
1329
265.65
0.04372
1379
265.65
0.04372
1429
265.65
0.04372
1479
265.65
0.04372
265.65
0.04372
1480
265.65
0.04372
1280
265.65
0.04372
1330
265.65
0.04372
1380
265.65
0.04372
1430
1281
265.65
0.04372
1331
265.65
0.04372
1381
265.65 :
0.04372
1431
265.65
0.04372
1481
265.65
0.04372
1282
265.65
0.04372
1332
265.65
0.04372
1382
265.65
0.04372 1432
265.65
0.04372
1482
265.65
0.04372'
1283
265.65
0.04372
1333
265.65
0.04372
1383
265.65
0.04372
1433
265.65
0.04372
1483
265.65
0.04372
1284
265.65
0.04372
1334
265.65
0.04372
1384
265.65
0.04372
1434
265.65
0.04372
1484
265.65
0.04372
1285
265.65
0.04372
1335
265.65
0.04372 1385
265.65
0.04372
1435
265.65
0.04372
1485
265.65
0.04372
1286
265.65 "
0.04372
1336
265.65
0.04372
1386
265.65
0.04372
1436
265.65
0.04372
1486
265.65
0.04372
1287
265.65
0.04372
1337
265.65
0.04372
1387
265.65
0.04372
1437
265.65
0.04372
1487
265.65
0.04372
1288
265.65
0.04372
1338
265.65
0.04372
1388
265.65
0.04372
1438
265.65
0.04372 1488
265.65
0.04372
1289
265.65
0.04372
1339
265.65
0.04372
1389
265.65
0.04372
1439
265.65
0.04372
1489
265.65
0.04372
1290
265.65
0.04372
1340
265.65
0.04372
1390
265.65
0.04372
1440
265.65
0.04372
1490
265.65
0.04372
1291
265.65
0.04372
1341
265.65
0.04372
1391
265.65
0.04372
1441
265.65
0.04372
1491
265.65
0.04372
1292
265.65
0.04372
1342
265.65
0.04372
1392
265.65
0.04372
1442
265.65
0.04372
1492
267.3
1.69372
1293
265.65
0.04372
1343
265.65
0.04372
1393
265.65
0.04372
1443
265.65
0.04372
1493
265.65
0.04372
1294
265.65
0.04372
1344
265.65
0.04372
1394
265.65
0.04372
1444
265.65
0.04372
1494
265.65
0.04372
1295
265.65
0.04372
1345
265.65
0.04372
1395
265.65
0.04372
1445
265.65
0.04372
1495
265.65
0.04372
1296
265.65
0.04372
1346
265.65
0.04372
1396
265.65
0.04372°
1446
265.65
0.04372
1496
265.65
0.04372
1297
265.65
0.04372
1347
265.65
0.04372
1397
265.65
0.04372
1447
265.65
0.04372
1497
265.65
0.04372
1298
265.65
0.04372
1348
265.65
0.04372
1398
265.65
0.04372
1448
265.65
0.04372
1498
265.65
0.04372
265.65
0.04372
1499
265.65
0.04372
265.65
0.04372
1500
265.65
0.04372
1299
265.65
0.04372
1349
265.65
0.04372
1399
265.65
0.04372
1449
1300
265.65
0.04372
1350
265.65
0.04372
1400
265.65
0.04372
1450
77
Desarrollo de Sensor de Nivel Ultrasónico
Tabla de datos de la Drueba No 4 (7/8
Error con
Dato No.
Dato
respecto
a
Dato
la Media
respecto a
la Media
1501
265.65
0.043725
1551
265.65
1502
265.65
0.04372
1552
265.65
Dato
N0'
0.043725. 1601
0.04372
Dato
1602
respecto a
Error con
Error con
Error con
Error con
Dato No.
Dato No.
Dato
respecto a
Dato No.
Dato
la Media
la Media
la Media
respecto a
265.65
0.043725
1651
265.65
0.043725
1701
267.3
1.693725
265.65
0.04372
1652
265.65
0.04372
1702
265.65
0.04372
0.04372
1703
265.65
0.04372
1503
265.65
0.04372
1553
265.65
0.04372
1603
265.65
0.04372
1653
265.65
1504
265.65
0.04372 1554
265.65
0.04372
1604
265.65
0.04372
1654
265.65
0.04372
1704
265.65
0.04372
1505
265.65
0.04372
1555
265.65
0.04372
1605
265.65
0.04372
1655
265.65
0.04372
1705
265.65
0.04372
1506
265.65
0.04372
1556
265.65
0.04372
1606
265.65
0.04372
1656
265.65
0.04372
1706
265.65
0.04372
1507
265.65
0.04372
1557
265.65
0.04372
1607
265.65
0.04372
1657
265.65
0.04372
1707
265.65
0.04372
1508
265.65
0.04372
1558
265.65
0.04372
1608
265.65
0.04372
1658
265.65
0.04372
1708
265.65
0.04372
1509
265.65
0.04372
1559
265.65
0.04372
1609
265.65
0.04372
1659
265.65
0.04372
1709
265.65
0.04372
1510
265.65
0.04372
1560
265.65
0.04372
1610
265.65
0.04372
1660
265.65
0.04372
1710
265.65
0.04372
1511
265.65
0.04372
1561
265.65
0.04372
1611
265.65
0.04372
1661
265.65
0.04372
1711
265.65
0.04372
1512
265.65
0.04372
1562
265.65
0.04372
1612
265.65
0.04372
1662
265,65
0.04372
1712
265.65
0.04372
1513
265.65
0.04372
1563
265.65
0.04372
1613
265.65
0.04372
1663
265.65
0.04372
1713
265.65
0.04372
1514
265.65
0.04372 1564
265.65
0.04372
1614
265.65
0.04372
1664
265.65
0.04372
1714
265.65
0.0437
265.65
0.04372
265.65
0.04372
1615
265.65
0.04372
1665
265.65
0.04372
1715
265.65
0.04372
265.65
0.04372
1716
265.65
0.04372
1565
1516
265.65
0.04372
1566
265.65
0.04372
1616
265.65
0.04372
1666
1517
265.65
0.04372
1567
265.65
0.04372
1617
265.65
0.04372
1667
265.65
0.04372
1717
265.65
0.04372
1518
265.65
0.04372
1568
265.65
0.04372
1618
265.65
0.04372 1668
267.3
1.69372
1718
265.65
0.04372
1519
265.65
0.04372
1569
265.65
0.04372
1619
265.65
0.04372
1669
265.65
0.04372
1719
265.65
0.04372
1520
265.65
0.04372
1570
265.65
0.04372
1620
265.65
0.04372
1670
265.65
0.04372
1720
265.65
0.04372
1521
265.65
0.04372 1571
265.65
0.04372
1621
265.65
0.04372
1671
265.65
0.04372
1721
265.65
0.04372
1522
265.65
0.04372 1572
265.65
0.04372
1622
265.65
0.04372
1672
265.65
0.04372
1722
265.65
0.04372
1673
265.65
0.04372
1723
265.65
0.04372
1523
265.65
0.04372
1573
265.65
0.04372
1623
265.65
0.04372
1524
265.65
0.04372
1574
265.65
0.04372
1624
265.65
0.04372
1674
265.65
0.04372 1724
265.65
0.04372
1525
265.65
0.04372
1575
265.65
0.04372
1625
265.65
0.04372
1675
265.65
0.04372
1725
265.65
0.04372
1526
265.65
0.04372
1576
265.65
0.04372
1626
265.65
0.04372
1676
265.65
0.04372
1726
265.65
0.04372
1527
265.65
0.04372
1577
265.65
0.04372
1627
265.65
0.04372
1677
265.65
0.04372
1727
265.65
0.04372
1528
265.65
0.04372 1578
265.65
0.04372
1628
265.65
0.04372' 1678
265.65
0.04372 1728
265.65
0.04372
265.65
0.04372
1729
265.65
0.04372
1529
265.65
0.04372
1579
265.65
0.04372
1629
265.65
0.04372
1679
1530
265.65
'0.04372
1580
265.65
0.04372
1630
265.65
0.04372
1680
265.65
0.04372 1730
265.65
0.04372
1531
265.65
0.04372 1581
265.65
0.04372
1631
265.65
0.04372
1681
265.65
0.04372
1731
265.65
0.04372
1532
265.65
0.04372
1582
265.65
0.04372
1632
265.65
0.04372 1682
265.65
0.04372
1732
265.65
0.04372
1533
265.65
0.04372
1583
265.65
0.04372
1633
265.65
0.04372
1683
265.65
0.04372
1733
265.65
0.04372
1534
265.65
0.04372
1584
265.65
0.04372
1634
265.65
0.04372
1684
265.65
0.04372
1734
265.65
0.04372
1535
265.65
0.04372
1585
265.65
0.04372
1635
265.65
0.04372
1685
265.65
0.04372
1735
265.65
0.04372
265.65
0.04372
1736
265.65
0.04372
1536
265.65
0.04372
1586
265.65
0.04372
1636
265.65
0.04372
1686
1537
265.65
0.04372
1587
265.65
0.04372
1637
265.65
0.04372
1687
265.65
0.04372
1737
265.65
0.04372
1538
265.65
0.04372
1588
265.65
0.04372
1638
265.65
0.04372
1688
265.65
0.04372
1738
265.65
0.04372
1539
265.65
0.04372
1589
265.65
0.04372
1639
265.65
0.04372
1689
265.65
0.04372
1739
265.65
0.04372
1540
265.65
0.04372
1590
265,65
0.04372
1640
265.65
0.04372
1690
265.65
0.04372
1740
265.65
0.04372
1541
265.65
0.04372
1591
265.65
0.04372
1641
265.65
0.04372
1691
265.65
0.04372
1741
265.65
0.04372
1542
265.65
0.04372
1592
265.65
0.04372
1642
265.65
0.04372
1692
265.65
0.04372
1742
265.65
0.04372
1693
265.65
0.04372
1743
265.65
0.04372
1543
265.65
0.04372
1593
265.65
0.04372
1643
265.65
0.04372
1544
265.65
0.04372
1594
265.65
0.04372
1644
265.65
0.04372
1694
265.65
0.04372
1744
265.65
0.04372
1545
265.65
0.04372 ` 1595
265.65
0:04372
1645
265.65
0.04372
1695
265.65
0.04372
1745
265.65
0.04372
1546
265.65
0.04372
1596
265.65
0.04372
1646
265.65
0.04372
1696
265.65
0.04372
1746
265.65
0.04372
1547
265.65
0.04372 1597
265.65
0.04372
1647
265.65
0.04372 1697
265.65
0.04372
1747
265.65
0.04372
1548
265.65
0.04372
265.65
0.04372
1648
265.65
0.04372
1698
265.65
0.04372
1748
265.65
0.04372
265.65
0.04372
1699
265.65
0.04372
1749
265.65
0.04372
265.65
0.04372
1700
265.65
0.04372
1750
265.65
0.04372
1598
1549
265.65
0.04372
1599
265.65
0.04372
1649
1550
265.65
0.04372
1600
265.65:
0.04372
1650
78
Desarrollo de Sensor de Nivel Ultrasónico
Tabla de datos de la prueba No 4 (8/8
Dato No.
Dato
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
Dato
Error con
Dato
respecto a
Dato No.
Dato
la Media
No.
Error con
respecto a
la Media
Dato No.
Dato
Error con
respecto a
la Media
1751
265.65
0.043725
1801
265.65
0.043725
1851
265.65
0.043725
1901
265.65
0.043725
1951
265.65
0.043725
1752
265.65
0.04372
1802
265.65
0.04372
1852
265.65
0.04372
1902
265.65
0.04372
1952
265.65
0.04372
1753
265.65
0.04372
803
265.65
0.04372
1853
265.65
0.04372 1903
265.65
0.04372
1953
265.65
0.04372
1754
265.65
0.04372 804
265.65
0.04372
1854
265.65
0.04372
1904
265.65
0.04372
1954
265.65
0.04372
1755
265.65
0.04372 805
265.65
0.04372
1855
265.65
0.04372
1905
265.65
0.04372
1955
265.65
0.04372
1756
265.65
0.04372
265.65
0.04372 1856
265.65
0.04372
1906
265.65
0.04372
1956
265.65
0.04372
265.65
0.04372
1957
265.65
0.04372
806
1757
265.65
0.04372
807
265.65
0.04372
1857
265.65
0.04372
1907
1758
265.65
0.04372
808
265.65
0.04372
1858
265.65
0.04372
1908
265.65
0.04372
1958
265,65
0.04372
1759
265.65
0.04372
809
265.65
0.04372
1859
265.65
0.04372
1909
265.65
0.04372
1959
265.65
0.04372
1760
265.65
0.04372 810
265.65
0.04372
1860
265.65
0.04372
1910
265.65
0.04372
1960
265.65
0.04372
1761
265.65
0.04372
811
265.65
0.04372
1861
265.65
0.04372
1911
265.65
0.04372
1961
265.65
0.04372
1762
265.65
0.04372
812
265.65
0.04372
1862
265.65
0.04372
1912
265.65
0.04372
1962
265.65
0.04372'
1763
265.65
0.04372
813
265.65
0.04372
1863
265.65
0.04372
1913
265.65
0.04372
1963
265.65
0.04372
0.04372
1964
265.65
0.04372
1764
265.65
0.04372
814
265.65
0.04372
1864
'
265.65
0.04372
1914
265.65
1915
265.65
0.04372
1965
265.65
0.04372
1765
265.65
0.04372
815
265.65
0.04372
1865
265.65
0.04372
1766
265.65
0.04372
816
265.65
0.04372
1866
265.65
0.04372
1916
265.65
0.04372
1966
265.65
0.04372
1767
265.65
0.04372
817
265.65
0.04372
1867
265.65
0.04372
1917
265.65
0.04372
1967
265.65
0.04372
1768
265.65
0.04372
818
265.65
0.04372
1868
265.65
0.04372
1918
265.65
0.04372
1968
265.65
0.04372
1769
265.65
0.04372
819
265.65
0.04372
1869
265.65
0.04372
1919
265.65
0.04372
1969
265.65
0.04372:
1970
265.65
0.04372
1770
265.65
0.04372
820
265.65
0.04372
1870
265.65
0.04372
1920
265.65
0.04372
1921
265.65
0.04372
1971
265.65
0.04372;
1771
265.65
0.04372
821
265.65
0.04372
1871
265.65
0.04372
1772
265.65
0.04372 822
265.65
0.04372
1872
265.65
0.04372
1922
265.65
0.04372
1972
265.65
0.04372
1773
265.65
0.04372
823
265.65
0.04372
1873
265.65
0.04372
1923
265.65
0.04372
1973
265.65
0.04372
1774
267.3
1.69372 824
265.65
0.04372
1874
265.65
0.04372
1924
265.65
0.04372
1974
265.65
0.04372
1775
265.65
0.04372
265.65
0.04372
1875
265.65
0.04372
1925
265.65
0.04372
1975
265.65
0.04372
1976
265.65
0.04372
1776
1777
265.65
265.65
0.04372
825
826
265.65
0.04372
1876
265.65
0.04372
1926
265.65
0.04372
265.65
0.04372
1977
265.65
0.04372
265.65
0.04372
1877
265.65
0.04372
1927
1.69372 828
1878
265.65
0.04372
1928
265.65
0.04372
1978
265.65
0.04372
0.04372
827
1778
267.3
265.65
0.04372
1779
265.65
0.04372
829
265.65
0.04372
1879
265.65
0.04372
1929
265.65
0.04372
1979
265.65
0.04372;
1780
265.65
0.04372
830
265.65
0:04372 1880
265.65
004372- 1930
265.65
0.04372
1980
265.65
0.04372
1781
265.65
0.04372
831
265,65
0.04372
1881
265.65
0.04372
1931
265.65
0.04372` 1981
265.65
0.04372
1782
265.65
0.04372
832
265.65
0.04372 1882
265.65
0.04372
1932
265.65
0.04372
1982
265.65
0.04372
1983
265.65
0.04372
1783
1784
265.65
265.65
0.04372
0.04372
833
834
265.65
0.04372
1883
265.65
0.04372
1933
265.65
0.04372
1934
265.65
0.04372
1984
265.65
0.04372
265.65
0.04372' 1884
265.65
0.04372
1885
265.65
0.04372
1935
265.65
0.04372
1985
265.65
0.04372
1785
265.65
0.04372
835
265.65
0.04372
1786
265.65
0.04372
836
265.65
0.04372
1886
265.65
0.04372
1936
265.65
0.04372
1986
265.65
0.04372
1787
265.65
0.04372
837
265.65
0.04372
1887
265.65
0.04372 1937
265.65
0.04372
1987
265.65
0.04372
1788
265.65
0.04372
838
265.65
0.04372
1888
265.65
0.04372
1938
265.65
0.04372
1988
265.65
0.04372
1789
265.65
0.04372
839
265.65
0.04372
1889
265.65
0.04372
1939
265.65
0.04372 1989
265.65
0.04372
1990
265.65
0.04372
1790
265.65
0.04372 840
265.65
0.04372 1890
265.65
0.04372
1940
265.65
0.04372
1941
265.65
0.04372
1991
265.65
0.04372
1791
265.65
0.04372 841
265.65
0.04372
1891
265.65
0.04372
1792
265.65
0.04372
842
265.65
0.04372 1892
265.65
0.04372
1942
265.65
0.04372
1992
265.65
0.04372
1793
265.65
0.04372
843
265.65
0.04372
1893
265.65
0.04372
1943
265.65
0.04372
1993
265.65
0.04372
1794
265.65
0.04372
844
265.65
0.04372
1894
265.65
0.04372
1944
265.65
0.04372
1994
265.65
0.04372
1795
265.65
0.04372
845
265.65
0.04372
1895
265.65
0.04372
1945
265,65
0.04372
1995
265.65
0.04372
1996
265.65
0.04372'
1796
265.65
0.04372 846
265.65
0.04372
1896
265.65
0.04372
1946
265.65
0.04372
1947
, 265.65
0.04372
1997
265.65
0.04372
1797
265.65
0.04372
847
265.65
0.04372
1897
265.65
0.04372
1798
265.65
0.04372 848
265.65
0.04372
1898
265.65
0.04372 1948
265.65
0.04372
1998
265.65
0.04372
1799
265.65
0.04372
849
265.65
0.04372
1899
265.65
0.04372
1949
265.65
0.04372
1999
265.65
0.04372
1800
265.65
0.04372
850
265.65
0.04372
1900
265.65
0.04372
1950
265.65
0.04372
2000
265.65
0.04372
79
Desarrollo de Sensor de Nivel Ultrasónico
400
350
300
250
200
150
100
50
o
•cr
N. o
LID N•J
ro
Lo
N.
ro ro
C r
r-n
‘t
Lo co
a-r) ul
.-+
C+1
T2r
r•-•
L'S N
‘17
CC)
J CO tt
CO 00
c
v.4
Lt) CO rl .71" N . 0
• C", CO N. CO ,n
CD rl rl N. ro ro
2-4 T-1 1-1
ro
N. Ln
CC .--1 NY.
N. CS1
00. CO
T-I rl **-4 v--I
N.
A-4
-Series1
Valores en centímetros.
Datos
Media
265.606275
Desv. Est. 4.04966934
Val. Max.
371.25
Val. Min.
161.7
Error con respecto
a la Media
-9.7251E-12
4.04966934
105.643725
-103.906275
Histograma
2.00
150
.100
o
0,00 ClAt#
0.01
Las pruebas ftieron realizadas sobre la superficie de contacto del techo (que no es
bien horizontal) de los edificios del Anexo 1 de la Coordinación de Riego y
Drenaje. Mencionado lo anterior se concluye lo siguiente.
Debido a la perpectiva que involucra la medición del flujo de agua donde la
medición de una carga debe ser tener milímetros en precisión. Sabiendo que el
80
Desarrollo de Sensor de Nivel Ultrasónico
es de 8 bit, se esperan saltos del orden de centímetros en el seguimiento de
la carga, como se meustra a continaución:
CAD
Seguimiento de niveles
80
70
60
50
40
30
20
10
o
111111111111111011140
1 143 285 427 569 711 853 995 1137 1279 1421 1563 1705 1847 1989
contador de conjunto de datos
En efecto, los datos observados de seguimiento de la carga son del orden de la
precisión esperada debido al CAD. Este proceso hace que actualmente el sensor
de nivel sirva para el monitoreo de niveles (precisión del orden de centímetros).
Conclusiones
Se han generado los circuitos y las rutinas necesarias a la interpretación de la
información del sensor ultrasónico de nivel. El microcontrolador utiliza un CAD de
8 bits.
Las pruebas realizadas indican una posible mejora de los resultados mediante la
adaptación del CAD de 12 o 16 bits.
El sensor puede ser utilizado para el monitoreo de nivel con fines de mejoramiento
de la operación manual de canales en las condiciones actaules. Aún con la
81
Desarrollo de Sensor de Nivel Ultrasónico
ANEXOS
lc -Prog
Este programa consta de un archivo ejecutable. Que presenta la siguiente pantalla
al correrlo:
-1C-P..y 1.OdA - NoIlraaeatdur
.Aldti,ro
Eclfeiorl
de p
eme rt
erraid
Id
.414 44
ac
(r,^.
^I
C ^irer,:ibn - CcJi^: p!a•mna
3r
0! Ilit 3F'FF AH: P :314F 3FFF 3FF1 • OFF' -JEEP "sFF'F yyyyyyyy
'iiUU:•i lE1'1 1Ell' 3Y'rF' iYYE 31'E• í MI' dirt' It P'F yyyyyyyY
10f110 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF yyyyyyyy
ti f.' 1 ;3 " 3E'YF 3FYF :3FFF lF'Ft' 3111f 3FFF 311fE' :_frFF yyYYYyYY
aC^:5. 3FFr 3FFF 3FFF 3FFF 3rFF MI' JFFF 3FFF yyyyyYYS'
6W.,14 3r'FF Vil' 3FFF 3FFF 3FFF 1FFF :tFFF 3FFF S ^YyyVYy
00 3J . 3m- 3FFF 3FFF 3rrF' 3rFF 3FFF 3FFF 31rE"E' yyyyyyyy
Uf , ia• 3FFF JEFE, '3FFF 31'FF 3FFF 3FFF 3FFF 31!FF g+yyyyYyy
1.10411: .;YYr Sr'Y1' 3rrt n'it' 31'tt' JEFE' irte JYE'r jtyyyyyyy
001s3, 311F 3FFF 3FFE 3FFF 3FFF • FFF 3FFF 3FFF k^¡" yyyyy
IFU1f3' 3Ft`r 3t'FF :Pi t. 3YFt' 3r'r't' .11Ft' 3FFt' .itFr yyyyyyyy
UC5G: 311I 3FFF 3FFF irrr 31FF 3111 7I'F1 3111 jFyyyyyYy
r
8$3 p4ftIgt:r•cón
r.%'sttT
^
F!r'1F.
T"
r+^
I]irí4cci611 • P.9io3 Ea{5roly
n iJ )=a FF FE' FE FE FF FF FF FE
11.' re FI t'E' r't Fr Fr Ft'
4110:1:
oa
1 U: Yr' rF FF
FE
FE FE FI FE
1 r:1.9. FF IF FF FF FE FF FF FF
P'E' l't' E'F FF F1' El' L'E' Ir
af?^• FF FF Ir FF FF PF FF IF
ü 1.I.3:r. r't' Ft FF FE Fr €'F Ir Fr
0t13A- FF IF FF FF' FI FI' FE FF
Ot2".3
E*.4191
frr J i aUltMY*3 ^ .®iefibl
S.tteCkstatt
,,_ FF
_!
r
.
^ r1 Grogrerr.ner ^n Cx>mt
V3i0t'
IC"^
rrF,
P6t:sk+ró r:y0114. 'FFFI
arttnro Gk, t6f'84a (7P)
En el caso de utilizar este software con Windows 2000, Windows NT ó Windows
XP, también es necesario tener en el mismo directorio que el ejecutable, el fichero
icprog.sys para Windows XP (se puede descargar de la pagina de ic-prog), sin el
cual no se puede tener acceso a los puertos del ordenador.
Elección De Idioma
Una vez instalado el software, al utilizarlo por primera vez, y aceptando las
configuraciones por defecto, se nos presentarán las pantallas en el idioma inglés,
y para cambiar el idioma se deberán de seguir estos pasos:
Abrir la pestaña de Settings (Ajustes).
1. Elegir el comando Options (Opciones).
2. Abrir la pestaña Languaje (Idioma) de este menú.
82
Desarrollo de Sensor de Nivel Ultrasónico
3. Elegir el idioma preferido.
Configurar El Hardware
El paso siguiente es configurar el hardware necesario para programar los
microcontroladores PIC.
En pantalla principal de IC-PROG, podemos acceder a la configuración del
hardware pulsando el icono o bien mediante la pestaña Ajustes y después
el comando Tipo Hardware, o bien pulsando la tecla de función F3, de cualquiera
de las maneras accederemos a la pantalla siguiente:
Esta es la configuración que deberemos de elegir para el correcto funcionamiento
del programador que forma parte de la placa de aplicación.
Una vez elegido el tipo de programador como JDM y seleccionado el puerto serie
adecuado, es importante no olvidarse de elegir el tipo de Interface como Direct I/O,
y en cuanto al tiempo de retardo, si hubiese problemas se pueden probar tiempos
más largos. En ordenadores rápidos quizás se puedan poner tiempos de retardo
más pequeños, lo que nos daría una velocidad de grabación más rápida.
Explicación De Los Menús
Los menús principales de IC-PROG tienen un icono gráfico en la pantalla principal,
de tal forma que con estos iconos prácticamente se puede leer, borrar, programar
y verificar cualquier dispositivo.
Abrir un nuevo archivo "" Guardar el buffer a un archivo
83
Desarrollo de Sensor de Nivel Ultrasónico
Configurar el hardware
Leer un chip
Grabar un chip
Verificar un chip
Borrar un chip
Mostrar en ensamblador
FlC 18F84A
Opciones
Mostar en hexadecimal
Igualmente en la pantalla principal del IC-PROG se nos
presenta toda la información relativa al dispositivo en
cuestión.
Esta ventana muestra el tipo de dispositivo que se ha seleccionado. Pulsando en
la flecha de la ventana podemos elegir cualquiera de los dispositivos soportados
por el software de programación IC-PROG (también se puede elegir el dispositivo
mediante la pestaña ajustes y la opción dispositivo).
También se pueden ver las opciones de configuración del
dispositivo seleccionado.
Se muestra información del tipo de oscilador usado por el
microcontrolador en cuestión (RC, XT, HS).
También se muestran los diferentes bits de configuración
que tiene el microcontrolador. Estos bits serán diferentes
para cada uno de los microcontroladores utilizados. Los de
la imagen son los bits de configuración del PIC 16F84, y
que muestran el estado del Wachtdog (WDT), el Power on
Reset (PWRT) y la protección de código (CP).
Si el programa ya tiene una palabra de configuración
determinada aquí aparecerán estas opciones marcadas.
Confi g uración
Oscilador
ÍR,,
dits configu raci ó n;
p- ^1^liJ7
r
PAR
^ CP
En el caso de que se quiera modificar el estado de alguno
de estos bits, basta con marcarlo en esta pantalla.
Checksum Valor ID
1
^FFF
3BFF ;F
P alabra config: 3FFFh
84
Desarrollo de Sensor de Nivel Ultrasónico
También tenemos información del checksum (chequeo que se genera de todo el
fichero de datos), y la posible identificación del microcontrolador, si este lo tuviera.
En la parte de debajo de la pantalla principal podemos ver que existen unas
pestañas para indicar el contenido de 5 buffers diferentes.
Buffer 3
.Huffer 2 Buffer 3 Buffer 4 Huffer
5
Disponemos de 5 buffers diferentes donde almacenar datos en memoria. En cada
uno de estos buffer podemos tener almacenado bien el contenido de un chip o
bien el contenido de un fichero. Con los datos contenidos en cualquiera de estos
buffer se puede realizar cualquiera de las operaciones que hemos visto en los
iconos anteriores. Es decir que se pueden guardar en un archivo en disco, o bien
se puede programar un chip con ellos. También se puede comparar el contenido
de estos buffers entre sí para saber si existen diferencias entre ellos o no.
Ajustes
A¡u2res
Vamos a ver ahora un poco más en detalle los ajustes
necesarios para el correcto funcionamiento del
programa.
^isposikiSro
Dispositivas
recierke s
Tipo hardware
erueba hardware
Opciorles
Srnartcard Phoenix)
F3
Los comandos posibles de esta pestaña son los
siguientes:
Borrar ajustes
Dispositivo. Sirve para elegir el dispositivo con el que queremos trabajar.
Dispositivos recientes. Muestra el tipo de los últimos dispositivos utilizados.
Tipo Hardware F3. Aquí se elige el tipo de hardware que vamos a usar para
programar el dispositivo elegido anteriormente. (JDM Programmer).
Prueba hardware. Se puede realizar una prueba de que el hardware elegido está
conectado al ordenador en el puerto elegido, y por tanto está listo para usarse.
Opciones. Desde este comando se pueden realizar las configuraciones que van a
hacer que el uso de IC-PROG sea mucho más sencillo, práctico y además fiable.
85
Desarrollo de Sensor de Nivel Ultrasónico
Vamos a realizar cambios para que este software quede adaptado a nuestras
necesidades.
Activaremos la casilla de verificar tras la programación, para que el programa cada
vez que programe un chip, verifique que el contenido del chip es el mismo que el
buffer activo en ese momento.
Al activar también la casilla de Verificar durante la programación, le indicamos al
programa que cada bloque de datos que escriba en el chip vaya comprobando que
se ha escrito correctamente, leyéndolo y verificando su contenido con el buffer
activo.
Esto hace que el tiempo empleado en programar un chip sea mayor, pero también
nos aseguramos de que los errores de programación son mínimos.
Otra de las pestañas que se pueden configurar es la de los Atajos. Como el
número de dispositivos que pueden programarse es muy grande, basta con elegir
aquí los más utilizados y asignarles una de las combinaciones de teclas que se
muestran, para que después desde la pantalla principal baste con teclear la
combinación de teclas CTRL + F1 para que automáticamente el dispositivo elegido
quede seleccionado en el buffer activo, con el consiguiente ahorro de tiempo.
En el caso de trabajar con los sistemas operativos Windows NT, Windows 2000 o
Windows XP, se deberá tener en el mismo directorio que el archivo ejecutable de
IC-PROG, el fichero icprog.sys para Windows XP, y además de esto, activar la
opción de Habilitar Driver NT/2000, que se encuentra en la pestaña de Miscelánea
de esta opción de Ajustes. Esta opción solamente podrá activarse en uno de estos
sistemas operativos, ya que en Windows 95, 98 ó Me no se encuentra activa,
como puede verse en la siguiente pantalla.
El resto de opciones que puedan aparecer están configuradas por sistema para un
correcto funcionamiento en la mayoría de los ordenadores y sistemas operativos
actuales.
Programación De Un PIC
Los siguientes pasos son prácticamente iguales en cualquier tipo de dispositivo a
programar, las únicas variaciones dependen de las características particulares de
cada uno de los dispositivos, pero el proceso se puede generalizar para cualquiera
que sea el dispositivo a programar.
•
El primer paso es configurar el programa como se hizo anteriormente, y
verificar que el pic-500 se encuentra conectado.
•
Abrir el archivo que contiene los datos a programar.
•
Los ficheros de datos que usan para programar un PIC tienen la extensión
.hex .
•
Ajustar la palabra de configuración y el tipo de oscilador.
•
Una vez cargados los datos del archivo correspondiente, la pantalla del ICPROG presenta el siguiente aspecto:
86
Desarrollo de Sensor de Nivel Ultrasónico
'IG-Prao
1q
14 e}qr,lel.rr414
lll
;44#$4ir -Ai
ti:
®
Uuec.c+ee
1 $'1
d^ p v ,7rofno
1000:0: 744A
lrrr 3rrr 1rFF
i nr.ón: 009r 0106 1010 n4n5
wr y 1443 1_703 3006
1005 1109 0000
1781
111116 009t 70rr 0006 1201
I 1 n.9 16061 11106 1281
110U0 1S05 MO ODUU 1103 00011 1001
2010 1403 7622 1003 1003 0006 2 010
1001 0066 2011J 2112:1 ] 01;® 2 01 1 2011 ' .1 . ' 61A
0030: 1038 2071 2011 3030 2031 2041 3001 2031 014014. 1
0030: 0004 0064 300A 008C 0186 0RO0 7849 OSBC .d.drr.Tá
01146: 2045 0000 7006 009, 0106 1601 11106 71110 i..21 J 1.
)1111ll' 1401 1103 160J
; ;in:lu: 14111
uuyU; 1005
Dint: 0006
U 030 : 2022
00110 1006
fl(JCO;
201ñ
O0f15 1.703 ?0?5 1Of11)
U050: 2112'0 1064 2029 3064
!
2031 3042 2027 1075
YD?9 4161 21177 10 73
15.1 20 u
06irQdidl^rUótKdi Et'1u'r:m
rr FY k7 y
FE FE ,F Er yyyyYl'yY
U1119; 1'F VI Fr rF re rt* ,l F t
yyyyy5`yy
00111 FF rF Tr FF Fr re FF FF S+YyY113ryY
0070: FF Fr FP Fr FP FP FP IT YYFY'YYYy
Illi'1iI ; I•'F tF 1'F TT FE l'P FY 1r' /yyyyyyy
11600: PF Fl F t rl' FF PE FP Ft Y7yYyyry
tILr_+il: Fr tl' Ft' I1' 1'F fl' Ft Ft
uGU07 1B r1 1'r
lF
rr
I1G08: TT Fr FF
lwaF*aF tor
^rrAU.1ñ '^ twat
3:FN':1,
Po:Min.-A
WI
QFn
iu.
;;,;!•^iuPt34 ^
0
17^i
87
Sensor de Nivel Ultrasónico
Los datos se han cargado en el área de código de programa y si existieran datos
en la EEPROM interna de PIC se cargarían en la parte inferior.
En el caso de que se haya programado la palabra de configuración, los bits
correspondientes aparecerán marcados. Si se quiere cambiar alguno de ellos se
puede hacer marcando directamente sobre él. También se puede cambiar el tipo
de oscilador con que trabajará la aplicación una vez cargada en el PIC. Si en
nuestra aplicación no se programó ninguna palabra de configuración, se nos
mostrarán los datos por sistema del programa (oscilador tipo RC y Watch Dog
WDT activado).
Cualquiera de las áreas de datos, puede ser aquí modificada, ya que este software
permite la edición de los datos que están presentes en el buffer del ordenador
antes de ser enviados al PIC. Esto deberá hacerse con sumo cuidado pues la
edición de los datos se llevará a cabo en hexadecimal directamente, con el
consiguiente riesgo de cometer errores y causar un mal funcionamiento del
programa cargado.
Programar El Pic
Para programar físicamente el chip, activar el icono para grabar o abrir la pestaña
Comando y después Programar todo, o bien pulsar la tecla de función F5, de
cualquiera de estas tres formas, el chip comenzará a ser programado con los
datos cargados en el buffer activo.
El tiempo empleado en la grabación del dependerá de la rapidez de la
computadora en que se esté trabajando.
Una vez terminada la programación se procederá automáticamente a la
verificación de los datos escritos en el chip. Serán verificados el código de
programa, los datos de la memoria EEprom y los bits de la palabra de
configuración.
En el caso de que la verificación haya sido correcta se informará mediante una
ventana, y el proceso de grabación habrá finalizado.
Otra Alternativa De Comprobación
Para evitar errores en la programación, una vez terminado el proceso de
grabación, cambiar el buffer activo y leer el PIC programado y proceder a la
comparación entre los contenidos de los dos buffers, es decir comparar el archivo
con el contenido del PIC. En realidad estamos volviendo a realizar la
comprobación que ya se ha realizado automáticamente al programar el dispositivo.
Errores Frecuentes En La Programación
Cuando por alguna causa la programación no se realiza correctamente también el
programa nos informará de ello mediante alguna ventana de aviso.
88
Sensor de Nivel Ultrasónico
El error más frecuente en la programación de un PIC nos informa de que se
produjo un error al verificar el contenido del chip en la primera posición de
memoria (0000h). Este error suele estar motivado por algún fallo en la
comunicación entre el ordenador y el programador, tal como una mala conexión
del cable serie, o una mala colocación del PIC en el programador, o por tener mal
configurado el puerto serie con el que comunicamos el ordenador y el
programador. También puede estar producido porque el PIC se encuentra
defectuoso o dañado por un mal uso.
Cuando aparece este error podemos tratar de evitarlo siguiendo los pasos que se
enumeran a continuación:
Lo primero es asegurarnos de que no hemos seleccionado la protección de código
CP en los bits de configuración (Este es un error muy típico, y en este caso el
programa leería los 8 primeros bytes de datos como ceros, dando por tanto el
error de verificación en la primera dirección).
Bits configuración:
�
YVDT
3
PWRT
Una vez comprobado que no se ha elegido la opción de protección de código para
programar el PIC, podemos probar con las siguientes comprobaciones del
software y hardware que utilizamos:
•
Comprobar que el PIC se encuentra bien introducido en el zócalo del
programador.
•
Verificar que el cable serie está bien conectado en sus dos extremos, tanto
en el conector del programador como en el del ordenador.
•
Asegurarnos de que hemos elegido en Ajustes, el tipo de Hardware, el tipo
de programador y el puerto COM adecuado.
•
Comprobar que el dispositivo elegido es el que estamos realmente
programando.
•
Comprobar que en ninguno de los ajustes realizados hemos variado las
configuraciones relativas a las patillas de Vcc para el tipo de programador
(JDM) utilizado.
En el caso de que ninguna de estas comprobaciones diera un resultado que nos
permita volver a programar el PIC, lo mejor es repetir la programación con otro
chip que esté en buen estado, para descartar completamente que el fallo esté en
el software o hardware del ordenador o programador y poder asegurar que se
trata del chip que se encuentra en mal estado.
89
Sensor de Nivel Ultrasónico
Cuando se trabaja en uno de los sistemas operativos Windows XP, Windows NT o
Windows 2000, se puede dar el siguiente error.
LOSA - Programador de 'protatl :
Este error está indicándonos que el sistema no puede acceder a los puertos del
ordenador, como se indicó anteriormente para solucionarlo se deberá instalar el
archivo icprog.sys en la carpeta donde se encuentra el ejecutable y además
habilitar el driver para NT/2000 en las opciones de Miscelánea en la pestaña de
Ajustes.
Una vez habilitado este driver el programa pedirá volver a iniciarse, y a partir de
ese momento ya está habilitado para realizar la programación de los dispositivos
necesarios. Nota:El archivo icprog.sys se descarga del sitio: http://www.icprog.com/indexl.htm en la secciónDownload
90
Sensor de Nivel Ultrasónico
El Mplab
El MPLAB es un software que junto con un emulador y un programador de los
múltiples que existen en el mercado, forman un conjunto de herramientas de
desarrollo muy completo para el trabajo y/o el diseño con los microcontroladores
PIC desarrollados y fabricados por la empresa Arizona Microchip Technology
(AMT).
El MPLAB incorpora todas las utilidades necesarias para la realización de
cualquier proyecto y, para los que no dispongan de un emulador, el programa
permite editar el archivo fuente en lenguaje ensamblador de nuestro proyecto,
además de ensamblarlo y simularlo en pantalla, pudiendo ejecutarlo
posteriormente en modo paso a paso y ver como evolucionarían de forma real
tanto sus registros internos, la memoria RAM y/o EEPROM de usuario como la
memoria de programa, según se fueran ejecutando las instrucciones. Además el
entorno que se utiliza es el mismo que si se estuviera utilizando un emulador.
En las siguientes líneas se pretende ayudar a todos aquellos que se enfrentan por
primera vez a este programa, tanto en su instalación como en la utilización de esta
potente herramienta que nos proporciona Arizona Microchip Tecnology. En el CDROM que se adjunta con este curso se encuentran las versiones 4.12.00 y la
4.99.07 del programa, estas versiones y las nuevas que van saliendo cada poco
tiempo y que incorporan nuevos tipos de microcontroladores, se pueden obtener
de forma gratuita en la página web www.microchip.com, el la cual se encuentra
una amplia información sobre todos los dispositivos que fabrica AMT.
De las dos versiones, nosotros vamos a centrarnos en la V.12.00, por ser esta la
que menos recursos de software y hardware necesita para trabajar con ella,
además está pensada para trabajar con las herramientas de desarrollo MPLABICD y el PICSTART que se encuentras ya muy difundidas, mientras que la versión
V.99.07 está pensada para trabajar con el MPLAB-ICE 2000 soportado en NT,
esta versión presenta algunas modificaciones en las ventanas de configuración del
programa respecto a la anterior, además para su correcto funcionamiento es
necesario disponer de la gama alta de los sistemas operativos que se indican en el
siguiente apartado además del hardware más potente.
Instalación Del Programa
Los requerimientos mínimos para la instalación de los programas son:
•
•
•
•
Procesador 386, 486 o Pentium*
Windows 3.1/ 95/ 98, Windows NT 3.51/4.0, Windows 2000 ,MACOS 7.0, o
Unix compatible OS
16 MB de memoria RAM para sistema con Windows 95.
24 MB de RAM para Windows NT systems.
91
Sensor de Nivel Ultrasónico
• , 32 MB para sistemas con Windows 2000.
• Unidad de CD-ROM.
• Navegador (3.0 HTML)
Se recomienda por AMT:
•
•
Procesador Pentium
32 MB de memoria RAM
El CD-ROM de Microchip requiere para su navegación de un programa HTML.
Para los equipos con Windows 95/98/NT se recomienda utilizar Internet Explorer
versión 5.0 o el Netscape Navigator versión 4.0, además hará falta para la lectura
de los numerosos documentos en formato pdf el programa Adobe Acrobat
Reader versión 3.0 o 4.0.
Al introducir el CD-ROM en la unidad correspondiente en los sistemas que tengan
instalado Windows 95/98, Windows 20000 o NT y que tenga habilitada la opción
autorun, aparece en pantalla el mensaje de la Figura 1, activaremos el botón de
Yes.
mhnnitw Inc.'
Welcome to the Frat Ed Con 2000
;réchrYeclLibroiy CG•ROM
FYcss 7K ta IawGh I e CD -ROM
Figura 1
En caso de que no aparezca este mensaje al arrancar el CD-ROM, buscar con el
explorador de Windows el archivo \indextxt.htm para el formato de texto o el
lindex.htm para el formato gráfico, al ejecutar este archivo aparecerá una pantalla
como la que se muestra en la Figura 2, que es similar a la tiene Microchip en su
página web.
92
Sensor de Nivel Ultrasónico
^`-^'árirvÍi^r
°Ta^fòrii7iftrrtis
tñ1414"i«t
Figura 2.- Pantalla de presentación del CD-ROM y de la pagina web de Microchip
Seguidamente, activamos el botón de Development Tools, seleccionamos en la
siguiente pantalla la opción MPLABIDE y al final de la página a la que nos lleva
este vinculo, encontramos el en lace MPLAB Version 4.12.00 que nos lleva a la
página de descarga del programa MPLAB (Disks 1 to 7) (o los 7 discos
individualmente) y que descargaremos sobre un directorio de nuestro disco duro
que por ejemplo habremos llamado C :IKK. Hemos seguido estos pasos ya que
son los mismos que deberemos seguir para descargar las nuevas versiones desde
la web de Microchip, pero de una forma más directa, podríamos haber copiado
directamente sobre el directorio C:IKK los archivos que están en el CD-ROM en el
directorio IdownloadlToolslPICmicrolDevEnvIMPLAB,ISoftwarelv412. Estos
archivos están comprimidos con las utilidades WinZIP. Deberán descomprimirse
dichos archivos utilizando las herramientas WinZIP.
Figura 3 .- Archivos en C:1KK1 obtenidos del CD y una vez descomprimidos con las
utilidades WinZIP. Ejecutar MP412000.exe
Una vez que finalicemos la instalación del programa podremos borrar por
completo el subdirectorio C:IKK para dejar espacio en el disco duro. Para instalar
el programa se ejecuta el archivo mp41200.exe, cuando esto ocurre aparece la
pantalla de la Figura 4.
93
Sensor de Nivel Ultrasónico
Figura 4.- Pantalla de bienvenida a la instalación del MPLAB.
Activamos el botón de Next y el programa responde con una nueva pantalla como
la que se muestra en la Figura 5, con el menú de todos los módulos del programa
que podemos instalar.
Figura 5.- No es necesario instalar todos los módulos del programa.
En principio, si no se dispone de emulador, podemos ahorrar espacio en el disco
duro y no instalar estos módulos, para ello, se desactivan dichos campos tal y
como se muestra en la Figura 5, se activa el botón de Next, para pasar a la
siguiente pantalla. Igualmente pulsamos el botón de Next en la pantalla de Select
Language Components en donde dejaremos activos todos los campos. Aparece
la pantalla de la Figura 6 en la que se debe seleccionar el directorio donde
queremos que se instale el programa, por defecto lo hace en el directorio
C:IArchivos de programaslMPLAB.
Figura 6.- Selección del subdirectorio donde se instalará el programa MPLAB
Una vez finalizada la instalación que puede tardar unos minutos, se puede pasar a
ejecutar el programa MPLAB, es recomendable que si se va a utilizar mucho este
programa, lo cual esperamos, se haga un acceso directo a dicho programa con lo
que tendremos en el escritorio de Windows un icono como el de la Figura 7.
94
Sensor de
Nivel Ultrasónico
Figura 7.- Icono de acceso directo al programaMPLAB
Antes de seguir adelante, recomendamos crear una carpeta con el explotador de
Windows por ejemplo C:IArchivos de pro gramaslMPLABITrabajo, dentro de la
cual posteriormente iremos creando todos nuestros proyectos.
Como Empezar.
Cuando se pulsa el icono del MPLAB aparece una pantalla como la que se
muestra en la Figura 8.
Figura 8.- Escritorio del MPLAB
Lo primero que haremos es seleccionar el modo de trabajo como simulador y el
tipo de microcontrolador con el que queremos trabajar. Para ello se selecciona el
botón de Options de la barra del control que aparece en el escritorio y del menú
desplegable la opción Developement Mode, con lo que aparece la pantalla de la
Figura 9 en la que se activa el modo MPLAB-SIM Simulator y el microcontrolador
con el que se desea trabajar, que en nuestro caso será el P/C16F84, por último,
pulsamos el botón de Reset para aceptar los cambios.
Figura 9.- Selección de la opción de trabajo como simulador y el tipo de
microcontrolador
95
Sensor de Nivel Ultrasónico
Los iconos que aparecen en laJ barra de herramientas, son funciones que se
encuentran incluidas en el menú de control, pero como en todos los programas de
Windows se incluyen para manejar de forma más cómoda el programa.
Seguidamente comentaremos MPLAB Fernando Remiro Domínguez Capitulo 1
Página 5 que significa cada uno de los iconos de la barra de herramientas que
aparece en esta pantalla, mas adelante veremos que hay más barras de
herramientas que pueden ser conmutadas
Mena
onh-ol
Sana de
herrrarkatas
Fin pig ).-.. i
^dt
petup Fic;lad Plus Qptiors roas \'1Ircdrx
Computador de La
Barra de lterrauiientaa
Nuevo documento
Cerrar 5clter9
Salvar archive, ca disc
Tabulador a la derecha
Deshacer
Buscar c adula de m to
repetidas ver es
Buscar y cambiar reptidantente
Figura 10.- Barra de herramientas de edición
Nuestro Primer Proyecto
Bueno, pues ya estamos en condiciones de crear nuestro primer proyecto, para
ello comenzamos por activar en el menú de control la opción File> New o bien
activamos el icono de crear nuevo documento en la barra de herramientas. El
programa contestará con el cuadro de diálogo de la Figura 11.
A Proioot it nat currenlly
opened Would would kke ta
oculto a non pnniéct ?
Figura 11.- No hay ningún proyecto abierto¿Quiere crear un nuevo proyecto?
Activamos el botón de Yes y aparece un cuadro de dialogo como el de la Figura
12 en el que se nos pide el nombre del proyecto que tendrá extensión *.pjt , como
96
Sensor de Nivel Ultrasónico
este es nuestro primer proyecto le llamaremos ejerl.pjt y lo guardaremos en la
carpeta de trabajo que habíamos creado anteriormente.
Figura 12.- Creación de un nuevo proyecto
El programa devuelve el cuadro de diálogo de la Figura 13
t^ ihMCl
I
N oirre,....._:
largor
Fiewawa
^nru l hs^
Ce
Ireiuüo P•M
Libres! Pelh
l ir isio Scrip. Peth
u.w wy,wnri«w:
[Mrihn °iw+
1 t:r,r+ga..:
Lewyueper 1oa 9ite_ flar,^cl^p
^
riwrctl
alto / I.6e.1
Figura 13.- Propiedades de edición del proyecto
Activamos el botón de OK y estamos en condiciones de empezar a escribir
nuestro primer proyecto al aparecer una pantalla como la de la Figura 14
Figura 14.- Apertura del documento para comenzar a escribir nuestro
proyecto
97
Sensor de
Nivel Ultrasónico
El Editor
Comencemos por lo tanto a escribir en lenguaje ensamblador nuestro primer
programa que llamaremos ejerl.asm y que se muestra en la Figura 15. El
programa realiza la suma en binario de dos números (7+8 =15) y para escribirlo
usamos el editor de textos. La extensión *.asm es la que deben llevar todos los
programas escritos en ensamblador. Deberemos de tener en cuenta que la
primera columna del editor está reservada para las etiquetas que son expresiones
alfanuméricas escogidas por el usuario que definen valores de posiciones de
memoria. Estas deben empezar siempre por una letra. Además se debe de tener
en cuenta que no pueden usarse expresiones que ya utiliza el ensamblador tales
como:
• Instrucciones
• . Directivas del propio ensamblador
• . Nombres de registros especiales(SFR)
• . Nombre de cada uno de los bit de los registros especiales. En las siguientes
columnas, se puede comenzar a escribir el nemónico de la instrucción o las
directivas del ensamblador.
Por último hay que decir que se pueden y se deben añadir comentarios que son
elementos indispensables en muchos casos para seguir el razonamiento de los
programas sin perderse, para ello cuando el MPLAB encuentra un ";"(punto y
coma) no se genera código máquina. En todos estos campos los espacios en
blanco no son significativos y las líneas en blanco tampoco. Para una mejor
legibilidad del programa, se recomienda acceder a cada campo utilizando el
tabulador.
El uso de mayúsculas y minúsculas en los programas obedece a una serie de
reglas o normas de estilo, comunes entre los programadores en ensamblador, que
si bien no son obligatorias, facilitan la lectura del código fuente. Estas reglas son:
• . Las directivas del ensamblador se escriben en mayúsculas
• . Los nombres de las variables se escriben en mayúsculas.
• Los nemónicos de las instrucciones se escriben en minúsculas
• , El programa se escribe utilizando los tabuladores para definir las distintas
columnas, tales como etiquetas, comienzo de líneas de programa y
columna donde empiezan los comentarios separados por un ";" (punto y
coma).
La Barra De Menús
Seguidamente analizaremos las distintas posibilidades de la barra de menú del
MPLAB, si bien ya hemos utilizado algunas de las posibles opciones que presenta
la barra de herramientas, ahora analizaremos estas una por una.
98
Sensor de Nivel Ultrasónico
Codigo Fuente Del Sensor De Nivel Ultrasonico
;Este programa manipula un sensor de distancias SRF05 y un sensor de
;temperatura LM35, ambos datos los desplega en una LCD
List
p=16f877A
#include
<p16f877A.inc>
_CONFIG _CP_OFF & _WDT_OFF & _BODEN _ON & PWRTE_ON & _HS_OSC &
WRT ENABLE ON & LVP OFF & DEBUG OFF & CPD _OFF
PORTE
dato
J
K
cont_b
cont_i
cont_2
D4
equ
D3
equ
D2
equ
D1
equ
BL
equ
BH
equ
cc
equ
c
equ
equ
MO
M1
equ
M2
equ
equ
M3
EQU
EQU
equ
equ
equ
equ
equ
ORG Ox00
clrf
goto
org
inicio clrf
clrf
clrf
bsf
bcf
movlw
movwf
movlw
movwf
movlw
movwf
movwf
movlw
movwf
movlw
movwf
bcf
movlw
0x09
0X70
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
Ox7A
Ox7C
Ox7D
Ox7E
Ox7F
0x20
0x21
Ox22
Ox23
; processor reset vector
PCLATH
inicio
0x05
PORTB
PORTC
PORTE
STATUS,RPO
STATU S, RP 1
b'00000010'
TRISD
b'10000111'
ADCON1
b'11111111'
TRISA
TRISC
b'11101000'
TRISE
b'11001111'
OPTION_REG
STATUS,RPO
b'10000001'
; go to beginning of program
; limpia las salidas
; para definer quienes son salida y entradas
; predivisor de 128 asociado
; al perro guardian
; velocidad estandar
99
Sensor de Nivel Ultrasónico
movwf
banksel
moviw
movwf
banksel
ADCONO
OPTION_REG
b'10000111'
OPTION_REG
PORTB
bcf
STATUS,C
medir call
movlw
call
call
ini_Icd
OxOC
send_i
clr lcd
ciclo movlw
call
call
call
movlw
movwf
movlw
movwf
movlw
movwf
movf
addlw
call
movlw
call
movf
addlw
call
movf
addlw
call
movf
addlw
call
movf
addlw
call
movlw
call
movlw
call
movlw
call
call
0x02
send_i
disp_dist
disparo
0x05
MO
Ox06
M1
Ox01
M2
D4,w
Ox30
send_d
Ox2E
send_d
D3,w
0x30
send_d
D2,w
0x30
send_d
D1,w
0x30
send_d
DO,w
Ox30
send_d
Ox6D
send_d
0x74
send_d
Ox73
send_d
wait3
call
espac
call
call
movlw
movwf
movlw
movwf
d isp_tem p
adquiere
0x09
MO
0x04
M1
; limpia el carry
100
Sensor de Nivel Ultrasónico
movlw
movwf
call
Ox00
M2
conversion
movf
call
movf
addlw
call
movlw
call
movf
addlw
call
movlw
call
movlw
call
call
goto
D3,w
send_d
D2,w
0x30
send_d
0x2E
send_d
D1,w
0x30
send_d
OxDF
send_d
0x43
send_d
wait3
ciclo
disparo clrf
bsf
call
bcf
explora btfss
goto
incre incf
call
btfsc
goto
call
movf
movwf
return
c
PORTD,0
wait4
PORTD,0
PORTD,1
explora
c,f
wait6
PORTD,1
incre
wait5
c,w
dato
ini_lcd call
call
movlw
call
movlw
call
movlw
call
movlw
call
movlw
call
movlw
call
movlw
call
return
wait1
wait1
0x30
send_i
0x30
send_i
0x30
send_i
0x38
send_i
0x08
send_i
Ox01
send_i
0x06
send
send_i bcf
bcf
PORTE,2
PORTE,1
101
Sensor de Nivel Ultrasónico
bcf
movwf
bsf
bcf
call
PORTE,0
PORTB
PORTE,2
PORTE,2
waitl
send_d bcf
bcf
bsf
movwf
bsf
bcf
call
return
PORTE,2
PORTE,1
PORTE,0
PORTB
PORTE,2
PORTE,2
waitl
clr_Icd movlw
call
home_cr movlw
call
return
0x01
send_i
0x02
send_i
return
waitl movlw D'50'
goto
wait
wait2 movlw D'50'
goto
wait
wait3 movlw D'250'
goto
wait
wait4 movlw D'5'
goto
wait
wait5 movlw D'120'
goto
wait
wait6 movlw D'5'
wait
movwf J
jloop: movwf K
kloop: decfsz K,f
goto
kloop
decfsz J,f
goto
jloop
return
conversion
bh1
movf BL,w
movwf dato
convierte
call
btfss
BH,0
goto bh1
movlw 0x05
movlw 0x02
addwf D3,f
movlw Ox01
addwf D4,f
verif
call
BH,1
btfss
goto
regr
movlw Ox00
102
Sensor de Nivel Ultrasónico
verif
addwf D2,f
movlw 0x05
addwf D3,f
moviw 0x02
addwf D4,f
bcf
STATUS,C
movf D2,w
addlw OxF6
btfss STATUS,C
goto
inc_cont3
moviw OxOA
subwf D2,f
incf
D3,f
inc_cont3
bcf
STATUS,C
movf D3,w
addlw OxF6
btfss STATUS,C
goto
regr
moviw OxOA
subwf D3,f
incf
D4,f
regr
return
convierte
clrf
D4
clrf
D3
clrf
D2
clrf
DO
moviw 0x08
movwf cont_b
moviw Ox 01
movwf cont_i
dato,0
goto
increm
decfsz cont_b,f
goto
rota
goto
regresa
convierte2
expl_bit btfsc
dec_c_b
increm
clrf
cont_2
increm0 movf MO,w
addwf DO,f
movf M1,w
addwf D1,f
movf M2,w
addwf D2,f
bcf
STATUS,C
movf DO,w
addiw OxF6
btfss STATUS,C
increml
goto
moviw OxOA
subwf DO,f
D1,f
incf
increml
bcf
STATUS,C
103
Sensor de Nivel Ultrasónico
movf D1,w
addlw OxF6
btfss STATUS,C
goto
inc_cont2
movlw OxOA
subwf D1,f
incf
D2,f
verif_d2
inc_cont2
bcf
STATUS,C
movf D2,w
addlw OxF6
btfss STATUS,C
goto
inc_cont2
movlw OxOA
incf
D3,f
bcf
STATUS,C
movf D3,w
addiw OxF6
btfss STATUS,C
goto
inc_cont2
moviw OxOA
subwf D3,f
incf
D4,f
bcf
STATUS,Z
incf
cont_2,f
movf cont_2,w
subwf cont_i,w
btfss STATUS,Z
goto
increm0
goto dec_c_b
rota
bcf
rrf
bcf
rif
goto
regresa
nop
return
adquiere
bsf
ADCON0,3
call
waitl
call
waitl
bsf
ADCONO,GO
btfsc ADCONO,GO
goto
start_volt
bsf
STATUS,RPO
bcf
STATUS,RP1
movf ADRESL,w
movwf BL
bcf
STATUS,RPO
movf ADRESH,w
movwf BH
banksel Ox00
start_volt
STATUS,C
dato,f
STATUS,C
cont_i,f
expl_bit
return
104
Sensor de Nivel Ultrasónico
disp_temp
movlw 0x54
call
send_d
movlw 0x65
call
send_d
moviw Ox6D
call
send_d
moviw 0x70
call
send_d
moviw Ox3D
call
send_d
return
disp_dist
movlw 0x44
call
send_d
movlw 0x69
call
send_d
movlw 0x73
call
send_d
call
send_d
movlw Ox3D
call
send_d
return
espac
espacio
avanza
sale
movlw 0x1 B
movwf cc
decfsz cc
goto avanza
goto
sale
movlw ' '
call
send_d
goto
espacio
nop
return
end
105
Programa de Aforos
Integración de Datos
de Aforo
1
Programa de Aforos
INDICE
1.- Sistema de cómputo para integración de datos de aforo 1.1.- Introducción 1.2.- Descripción del programa para la integración de datos de aforo 1.3.- Utilización del programa 1.3.1 Menú Principal 1.3.1.1 Menú Archivo 1.3.1.2 Menú Alta 1.3.1.3 Menú Importación 1.3.1.4 Menú Gráficas 1.3.1.5 Menú Balances 1.3.1.6 Menú Acerca de 1.4.- Importar Información 1.5.- Realizar una gráfica 1.6.- Definir y Modificar Entradas y Salidas 1.7.- Realizar un Balance de Volumen de Agua 1.8.- Conclusiones 2
3
3
4
5
5
6
6
10
12
16
17
18
21
24
34
37
Programa de Aforos
1.- SISTEMA DE CÓMPUTO PARA INTEGRACIÓN DE DATOS DE AFORO
El sistema de cómputo se desarrolló en un esquema modular:
- Dar de alta las instituciones de usuario, un DR, un módulo hasta el punto de
control instrumentado.
- Definición y modificación de entradas y salidas de un sistema de interés (DR,
Sociedad de Usuarios, punto de control).
- Importación de información a la base de datos.
- Procesamiento de la información gráfica y estadística en intervalos de tiempo.
- Balance de volumen por sistema de interés.
De tal manera que un módulo permite dar de alta en la base de datos del programa, la
información de los DR, además de los módulos que pertenecen a dichos distritos y los
equipos que recolectarán la información de los puntos de control. Otro módulo del
sistema importa la información colectada en archivo de Excel y a su vez es graficada
la información almacenada en la base de datos, el sistema permite dar de alta y
modificar, las entradas y salidas que afectan a cada punto de control para el balance
de volúmenes de agua donde intervienen los puntos de control.
Los sistemas de medición instrumentados permiten la colecta de información y su
exportación a formato Excel es en extremo sencilla.
1.1.- Introducción
El programa permite la captura y procesamiento de información almacenada en los
diferentes equipos de medición instalados en los puntos de control en los diferentes
distritos de riego.
Ar¿j'wo Alta 1rnAo+taclon Gr4 ncaS Ealances AC?^[ede...
Figura 1.1 Programa Principal
3
Programa de Aforos
1.2.- Descripción del programa para la integración de datos de
aforo
Archivo Ak., importa_i&m
6efances Acerch de...
Z3102/7007
01;10:50
^
p.m.
Figura 1.2.1 Pantalla Principal del programa para integración de datos de aforos
Los elementos con los que cuenta el programa son los siguientes:
- Menú Principal: cuenta con opciones entre las cuales están la de dar de alta en el
sistema los distritos de riego, módulos de riego y equipos instalados en puntos de
control, así como definir las entradas y salidas para realizar un balance de volumen de
agua. El menú principal se observa en la figura 1.2.2.
Archivo Alta
Irr^pr_^r
t^ cióri
Gráficas Balances
Figura 1.2.2 Menú Principal
4
Acerca de, , r
Programa de Aforos
1.3.- Utilización del programa
El programa cuenta con diferentes opciones, las cuales se detallan a continuación.
1.3.1 Menú Principal
El menú principal consta de las siguientes opciones:
Archivo Alta Importación Gráficas Balances Acerca de, ,
Figura 1.3.1 Menú Principal
A rchiv Q
Menú Archivo
Salir
- Salir: permite salir del programa
Figura 1.3.2 Menú Archivo
Menú Alta
Ata
Distrito._
Módulo...
Equipo,.,
Figura 1.3.3 Menú Alta
Distrito: permite dar de alta en el sistema, un
distrito de riego.
Módulo: agrega en el sistema, un módulo de riego.
Equipo: agrega al sistema, un equipo de un punto
de control.
Menú Importación
Importación
Figura 1.3.4 Importar
Importa de un archivo de Excel la información almacenada
en un equipo instalado en un punto de control de un
distrito de riego a la base de datos del sistema.
Menú Gráficas
Figura 1.3.5 Graficar
Grafica la información almacenada en la base de datos en
el sistema.
Menú Balances
BalanvA;=
Figura 1.3.6 Balances
Realiza un balance de volumen de agua, ya sea por punto
de control o por módulo de riego.
Esta opción da información de manera general del
programa para la integración de datos de aforos.
Figura 1.3.7 Menú Acerca
de...
5
Programa de Aforos
1.3.1.1 Menú Archivo
Para salir del programa de integración de aforos, se realiza lo siguiente:
- Clic en el menú Archivo
- Clic en el Submenú Salir
Figura 1.3.8 Menú Archivo
1.3.1.2 Menú Alta
* Para dar de alta un distrito de riego se realiza lo siguiente:
-
Clic al Menú Alta
Clic Submenú Distrito
Aparece la figura siguiente:
Figura 1.3.9 Dar de alta Distrito de Riego
En la Figura anterior, se debe de rellenar todos los datos de acuerdo al distrito de riego
que se requiera dar de alta en el sistema, una vez que se haya realizado esto (Figura
1.3.10), se da un click en el botón Guardar para realizar el guardado del distrito en el
sistema.
6
Programa de Aforos
Figura 1.3.10 Dar de alta Distrito de Riego, formulario con datos
En caso de que se haya guardado correctamente la información del distrito de riego en
el sistema, aparecerá la figura que se muestra a continuación.
El distrito ha sido guardado
en la, Base de Datos
Figura 1.3.11 Guardado con éxito
En caso contrario, de que el distrito de riego que se quiere dar de alta en el sistema ya
esté guardado previamente, nos mostrará la siguiente figura de error.
El distrito ya existe
en la Base de Datos
Aceptar
Figura 1.3.12 Información duplicada
* Para dar de alta un módulo de riego se realiza lo siguiente:
-
Clic al Menú Alta
Clic Submenú Módulo
Aparece la figura siguiente:
7
Programa de Aforos
Figura 1.3.13 Dar de alta Módulo
Se rellenan todos los datos que se requieran para dar de alta el módulo de riego en el
sistema, y una vez concluido con esto, se da un clic en el botón Guardar para que se
guarde la información.
Figura 1.3.14 Dar de alta Módulo, formulario con datos
Si el módulo de riego se guardo correctamente en el sistema, aparecerá un mensaje
(Figura 1.3.15) de que se ha dado de alta correctamente en el sistema.
El Módulo ha sido guardado
en la Base de Datos
Figura 1.3.15 Módulo guardado exitosamente
8
Programa de Aforos
En caso contrario, cuando se quiera guardar un módulo que ya existe en la base de
datos del sistema, mandará el mensaje de error que se muestra en la Figura 1.3.16.
!ando...
El Módulo ya existe
en la Base de Duos
Aceptar
Figura 1.3.16 Módulo duplicado
* Para dar de alta un equipo instalado en un punto de control, se realiza lo siguiente:
- Clic al Menú Alta
Clic Submenú Equipo
Aparece la figura siguiente:
p illuelo de Dish ito: Seleccionar Distrito...
eleccionar Módulo
Equipo
)Seleccionar Equipo... J
Serle:
Figura 1.3.17 Dar de alta Equipo
Se llena la información que se requiere para dar de alta un equipo y una vez que se
haya realizado esto, se da clic en el botón guardar.
9
Programa de Aforos
1-j { .A
de.Equipñ: ^ ^^
oT 7
-J
^ Seiie:
,
F:..
si:,d,i del tquipo:
;
; -.
Canal:
^,
^. uGfiu
Figura 1.3.18 Dar de alta Equipo, formulario con datos
Si se guarda correctamente el equipo, se mostrará la ventana siguiente confirmando
que el equipo se guardo en el sistema.
Graban do.
El Equipo ha sido guardado
en le Base de Datos
Figura 1.3.19 Guardado el equipo
1.3.1.3 Menú Importación
Permite Importar de un archivo de Excel la información almacenada en un equipo
instalado en un punto de control de un distrito de riego a la base de datos del sistema.
Programa de Aforos
Al dar clic en el Menú Importación, aparecerá la siguiente figura:
Figura 1.3.21 Módulo para importar información al sistema
Descripción del Módulo de Importación
Vantage
OTT
La figura 1.3.22 muestra 3 diferentes opciones
que se pueden escoger dependiendo del tipo
de equipo que este instalado en un punto de
control y al cual se quiere importar
información.
MOD
Figura 1.3.22 Tipo de Equipo
La figura 1.3.23 muestra 3 listas despegables,
en la cual aparecen los equipos que estén
dados de alta en el sistema. Cada lista se
activa dependiendo el tipo de equipo que se
haya seleccionado.
Figura 1.3.23 Equipos dados de alta
11
Programa de Aforos
Muestra el avance de la importación de la
información al sistema de integración de datos
de aforo.
Figura 1.3.24 Barra de Estado
Permite realizar la importación de la
información al sitema de integración de datos
de aforo apartir de un archivo de Excel.
Figura 1.3.25 Tipo de Equipo
Cancela la opción de la importación de la
información, cerrando la ventana actual y
regresando al programa principal.
Figura 1.3.26 Tipo de Equipo
1.3.1.4 Menú Gráficas
Permite ver de manera gráfica, la información almacenada en la base de datos en el
sistema de un punto de control seleccionado.
Figura 1.3.27 Menú Gráficas
12
Programa de Aforos
Al dar un clic en el menú Gráficas, aparecerá la figura siguiente:
Figura 1.3.28 Seleccionar Distrito de Riego
En la figura anterior, se selecciona el distrito de riego en el cual se va a trabajar. Una
vez que se haya realizado esto, se da un clic en el botón Aceptar, con lo cual se
mostrará la figura 1.3.29.
WINIPOIM
Figura 1.3.29 Seleccionar Módulo
También se debe seleccionar un módulo de riego del cual se visualizará la información
que se encuentre almacenada en el sistema. Al seleccionar el módulo, se da un clic en
el botón Aceptar, apareciendo la figura siguiente:
Fecha de inicio
h Salir
r
Figura 1.3.30 Módulo de Graficación
13
Programa de Aforos
Descripción del Módulo de Graficación
R Vantage
r
OTT
Permite seleccionar el tipo de equipo del cual se
quiere visualizar la información almacenada en el
C MGD
sistema.
Figura 1.3.31
Periodo:
Fecha de inicio:
Permite visualizar la información comprendida
entre la fecha de inicio y la fecha final.
Fecha final:
Figura 1.3.32 Periodo
Figura 1.3.33 Botón Ver
Realiza una consulta en la tabla del equipo
seleccionado y muestra la información que se
encuentre en el periodo que se haya
seleccionado.
Selecciona' Vailables
r
TR
r
Vol
r
Nivel
Permite ocultar o mostrar una serie en la
gráfica. Estas series corresponden a cada
campo de la tabla seleccionada.
Estos campos son diferentes para cada tipo de
equipo que este instalado, ya sea del tipo
Vantage o tipo OTT.
Figura 1.3.34 Seleccionar Campos
^^
Figura 1.3.35 Zoom in
e‘
Permite hacer un acercamiento a una serie
graficada.
Realiza un alejamiento de la serie graficada.
Figura 1.3.36 Zoom out
Figura 1.3.37
Desplazamiento a la Izquierda
Realiza un desplazamiento a la izquierda de la
serie graficada.
14
Programa de Aforos
Figura 1.3.38
Desplazamiento a la derecha
Figura 1.3.39
Desplazamiento hacia abajo
^
Figura 1.3.40
Desplazamiento hacia arriba
Sal ir
Realiza un desplazamiento hacia la derecha de la
serie graficada.
Realiza un desplazamiento hacia debajo de la serie
graficada.
Realiza un desplazamiento hacia arriba de la serie
graficada.
Permite salir de la opción de graficar la información.
Figura 1.3.41 Botón Salir
Figura 1.3.42 Tabla de datos
Muestra la información que esté comprendida entre las fechas seleccionadas
Figura 1.3.43 Gráfica
En esta ventana, se grafican los campos de la tabla seleccionada
15
Programa de Aforos
Figura 1.3.44 Barra de Estado
Muestra información de que campo esta activo en la gráfica, así como la media aritmética, varianza y
desviación estándar.
1.3.1.5 Menú Balances
Permite realizar un Balance de volumen de agua, definir entradas y salidas de los
módulos así como una modificación de dichas entradas y salidas.
Archivo Alta ImportadOn Gráficas °:'
',! Acerca de...
Definir E/5 de Módulos
r lodihcar EJS de 1A6duloc...
^,^^^^,,
23/02/2007 ;
04:47:11 p.m.
Figura 1.3.45 Menú Balance
Descripción del Menú Balances:
- Submenú Cálculos:permite realiza el balance de volumen de agua de un punto
de control en un distrito de riego.
- Submenú Definir E/S de Módulos: permite dar de alta los equipos que sirven como
entrada y/o salida de volumen de agua en un punto de control de un distrito de riego.
- Submenú Modificar E/S de Módulos: permite modificar las entradas y/o salidas de
equipos instalados en un punto de control.
16
Programa de Aforos
1.3.1.6 Menú Acerca de...
Esta opción, muestra información del programa. Para acceder a esta opción se realiza
lo siguiente:
- Clic Menú Acerca de...
Aparece la figura siguiente:
DIRECTORIO DEL IMTA
Director General: Dr. Alvaro Albe rt o Aldama Rodríguez
Coordinador de Tecnología de Riego y Drenaje: Dr. Benjamin de Leon Mojarra
Subcoordinador de Infraestructura Hidroagrícola: Dr.
Arturo
González Casillas
CREDITOS AUTORALES
Diseñadores: Dr Joder Ramírez Luna, Ing. Ernesto Olvera Aranzolo
Programadores Lic. Magdalena González Vázquez, Ing César Ricardo Rodríguez Jimenez
'
Acepar
C Soporte
TODOS LOS DEPECHOS P.ESERVADOS. PP.UHIBIDA SU REPRi7DUCCIOII TOTAL O PARCIAL
Figura 1.3.46 Acerca de...
Si se da un clic en el botón Aceptar, cerrará la ventana de la figura 1.3.46, si se da un
clic en el botón Soporte, mostrará la Figura 1.3.47.
Para cualquier duda o aclaiacien. favor de enviarla a:
Instituto Mexicano de Tecnología del Agua, Coordinación de Tecnología
de Riego y Drenaje, Subcoordinación de Infraestructura Hidroagricola
Paseo Cuauhnáhuac'No. 8632 Cal. Progreso C. P. 82550
Jiutepec, Morelos Tel. 01 777) 329 36 00 Ext 115
Acepta'
TODOS LOS DERECHOS RESERVADOS. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL
Figura 1.3.47 Soporte
17
Programa de Aforos
1.4.- Importar Información
Para importar la información de un archivo de Excel que ha almacenado un equipo en
un punto de control de un distrito de riego a una tabla de la base de datos del
programa de integración de datos de aforo, se realizan los siguientes pasos.
1.- Clic al Menú Importación del programa principal
Figura 1.4.1 Clic Menú Importación
2.- Aparece la ventana siguiente
Figura 1.4.2 Seleccionar Distrito de Riego
En la figura anterior, se selecciona el distrito de riego en el cual se va a trabajar. Una
vez realizado esto, se da un clic en el botón Aceptar, con lo cual se mostrará la figura
1.4.3.
Figura 1.4.3 Seleccionar Módulo
18
Programa de Aforos
3.- Clic en el botón Aceptar y se muestra la figura 1.4.4. Al seleccionar el distrito
de riego y el módulo de riego con el cual se trabajará, se carga en el sistema, los
equipos que estén instalados en dichos puntos de control que pertenescan a
dicho distrito y módulo.
Figura 1.4.4 Módulo para importar información al sistema
3.- Seleccionar tipo de equipo (Vantage, OTT, MGD) y el punto de control a
donde se importará la información.
C•
Vantage
C
OTT
i
MOD
Figura 1.4.5 Tipo de equipo y punto de control seleccionado
4.- Clic en el botón Importar, aparece la figura 1.4.6
19
Programa de Aforos
Figura 1.4.6 Seleccionar archivo
Se debe de seleccionar el archivo de Excel que contiene la información recabada
por un equipo de medición del agua en un punto de control para importar esa
información al sistema y dar clic en el botón abrir.
5.- Una vez seleccionado el archivo y haber dado clic en el botón abrir, empieza
la importación de la información a la base de datos del sistema. El avance que
lleva la importación se muestra en la barra de progreso (Barra azul que se va
llenando conforme se va leyendo la información del archivo de Excel y se va
guardando en la base de datos del programa).
Figura 1.4.7 Importando información al programa
6.- Una vez que se terminó de importar la información, manda el siguiente
mensaje de confirmación.
20
Programa de Aforos
Figura 1.4.8 Base de datos llenada
1.5.- Realizar una gráfica
Para poder visualizar la información que está contenida en la base de datos del
sistema de un punto de control se realizan los siguientes pasos que se listan a
continuación.
1.- Clic en el Menú Gráficas
23/02/2007 I
Figura 1.5.1 Menú Gráficas
2.- Al dar clic en el menú gráficas, aparece la figura 1.5.2
21
04:06:52
p.m.
Programa de Aforos
Figura 1.5.2 Seleccionar Distrito de Riego
En la figura anterior, se selecciona el distrito de riego en el cual se va a trabajar. Una
vez realizado esto, se da un clic en el botón Aceptar, con lo cual se mostrará la figura
1.5.3.
Módulo: (Seleccionar Módulo
Figura 1.5.3 Seleccionar Módulo
Se debe seleccionar un módulo de riego del cual se visualizará la información que se
encuentre almacenada en el sistema. Al seleccionar el módulo, se da un clic en el
botón Aceptar, apareciendo la figura siguiente:
Fecha
de
Inicio
Fecha final:
Seleccionar Variables
r
TR2
r
volt
nLvel2
f^J
+
gl-Asaiir I + I ^ ...
Figura 1.5.4 Módulo de Graficación
22
Programa de Aforos
3.- Seleccionar tipo de equipo
4.- Seleecconar punto de control
5.- Seleccionar periodo del cual se quiere consultar la información del punto de control
seleccionado
6.- Clic en el botón Ver
Si no existe información en la base de datos que esté comprendia en el periodo seleccionado,
mandará un mensaje de error el cual se muestra en la figura 1.5.5.
{
t
,= G:^^^^
Figura 1.5.5 información no encontrada
Si se encuentra información del equipo que se haya seleccionado, cargará esta en el data grid
y se graficarán los campos correspondientes como se muestra en la figura 1.5.6.
fl-LORA
FECHA
Ver Información de:
_24/09/2005
1
L 24j09¡2005
r•.' Vantage
jQ
p.rt
p.r
I]':50,00 p. r
11.45:00
_24/0 9170 05
►
.
11:90:00
24 /0912M u
:55:00 p.r;
^Q 2
NIVEL
TR
JTRz
5,74
36 7 ,
3615 6
0
0 00
0.00
5,74
36.79
36160
0
0.00
5,75
.°,Fi.02
35101
0
0.00
0
5.73
3ti.'7
36163
0
0.00
0.00
0.[
GTT
6.6
655
6.5
6.45
MGD
Fecha de inicio
Fecha final
6,25
62
6.15
6.1
6.05
SeleCCioual cimpos
P W
r
Q2
r
TR
r
TR2
r
vol
r
volt
r
NiveR
r Nivel
5.95
5.9
5.85
5.8
5.75
5.7
5.65
,r
1.
^
XtR °x °'ÑS °
4á8
i: e
ó
RF
^ ^ S ^^ ° ^
ó^^
n
m
6
Melia -
G.1044
Varlmlaa
o
g y '2,11
ó á ó ó^^$ tl Ñ h
$ $
$ 5 5 $ $&5 5 $ 5 $
rv°H
= 0.0542
Figura 1.5.6 Información graficada
23
^
^^
$.1V”uA^U8E$,P1
gg[
A
Programa de Aforos
1.6.-
Definir y Modificar Entradas y Salidas
Para definir entradas y salidas de un módulo, realizar lo siguiente:
- Clic en menú Balances
- Clic en Submenú Definir E/S de Módulos
Figura 1.6.1 Definir Entradas-Salidas
Aparece la figura siguiente:
Figura 1.6.2 Seleccionar Distrito de Riego
En la figura anterior, se selecciona el distrito de riego en el cual se va a trabajar. Una
vez realizado esto, se da un clic en el botón Aceptar, con lo cual se mostrará la figura
1.6.3.
Figura 1.6.3 Seleccionar Módulo
24
Programa de Aforos
Se debe seleccionar un módulo de riego del cual se visualizará la información que se
encuentre almacenada en el sistema. Al seleccionar el módulo, se da un clic en el
botón Aceptar, apareciendo la figura siguiente:
De la figura anterior, se selecciona un módulo. Si el módulo seleccionado, ya tiene
definida sus entradas y/o salidas, se envía el mensaje siguiente.
Equipo...
Este módulo ya tiene definida
sus entradas y salidas...
Aceptar
Figura 1.6.4 Ya se definieron entradas-salidas
Si el módulo seleccionado con el cual se va a trabajar, aún no se han definido sus
entradas o salidas, se cargará la ventana que se muestra a continuación (Figura
1.6.5).
fluir entrados :y. salidas del Módulo
Entradas: [seleccionar equipo... ^
Agrega
Salidas;
fseleccionar equipo ...
'r(1 Agregar
(mita'
Aceptar
Cancela,
Figura 1.6.5 Definir Entradas-Salidas
Descripción de la ventana para definir las Entradas y/o Salidas del módulo para un
posterior balance de volumen de agua.
EIIII atlas: 'seleccionar equipo...
Figura 1.6.6 Lista de equipos de entrada
Salidas:
¡seleccionar equipo...
Figura 1.6.7 Lista de equipos de salida
Muestra una lista con todos los equipos dados
de alta en el sistema, los cuales se pueden
agregar como entrada de volumen de agua al
módulo de riego.
Muestra una lista con todos los equipos dados
de alta en el sistema, los cuales se pueden
agregar como salida de volumen de agua del
módulo de riego.
25
Programa de Aforos
Muestra una lista con los equipos que se han
agregado ya sea como entrada o salida de
volumen de agua del módulo que se haya
seleccionado.
Figura 1.6.8 Lista de equipos
Agr egatr
Permite agregar a la lista de equipos, el equipo
que se haya seleccionado en la lista de entrada o
salida.
Figura 1.6.9 Botón Agregar
Quitar
Figura 1.6.10 Botón Quitar
Aceptar
Figura 1.6.11 Botón Aceptar
Permite quitar de la lista de equipos, el equipo
que esté seleccionado de esta lista, ya sea que
esté en la lista de equipos de entrada o en la lista
de equipos de salida.
Permite guardar en el sistema, los equipos que
se han dado de alta ya sea como entradas o
salidas de volumen de agua para el módulo con
el cual se está trabajando.
Sale de la opción de definir entradas y salidas sin
realizar ningún cambio en el sistema.
Figura 1.6.12 Botón Cancelar
Se selecciona de la lista de entrada, los equipos que se van a dar de alta como
entrada de volumen de agua, y se agrega a la lista de equipos de entrada dando un
clic en el botón agregar correspondiente.
fntralIas:
Filmadas:
etgccialigoe "
V ant ageM1
ardageM2
'1 Agrega ' V antageM3
V ant ageM4
V arta geM5
A g regar '.
'v'antagetvl1
VantageM3
VantageM6
VantageM7
VantageM6
Figura 1.6.14 Lista de equipos de entrada con
equipos dados de alta
Figura 1.6.13 Lista de Entrada de equipos
26
Programa de Aforos
En caso que se quiera dar de alta un equipo como entrada de volumen de agua, pero
que ya se ha dado de alta como salida de volumen de agua, se generará un mensaje
de error, el cual se muestra en la siguiente figura.
Equipó.
El Equipo ya ha sido agregado corno salida
Aceptar
Figura 1.6.15 Mensaje de error
Para dar de alta un equipo como salida de volumen de agua, se selecciona de la lista
de salida y se da clic en el botón Agregar correspondiente.
Salidas:
rr'JantageM2
'•3 antageM3
VantageM4
VantageM5
VantageM6
VantageM7
VantageM8
VantageM9
VantageM2
VantageM4
Figura 1.6.17 Lista de equipos de salida con
equipos dados de alta
Figura 1.6.16 Lista de Salida de equipos
En caso que se quiera dar de alta un equipo como salida de volumen de agua, pero
que ya se ha dado de alta como entrada de volumen de agua, se generará un mensaje
de error, el cual se muestra en la siguiente figura.
El Equipo ya ha sido agregado corno entrada
Figura 1.6.18 Mensaje de error
27
Programa de Aforos
En caso que se requiera borrar un equipo de la lista de equipos, se selecciona el
equipo a eliminar y se da un clic en el botón Quitar correspondiente al tipo de equipo
(entrada o salida) que se quiera eliminar.
Vantage Ml
VantageM3
VantageMl
VantageM3
Vanta g e M 6
Figura 1.6.19
Equipos agregados
Figura 1.6.20
Equipos a eliminar seleccionado Figura 1.6.21
Lista con equipo eliminado
Una vez que se han definido tanto las entradas como las salidas de volúmenes de
agua para un módulo de riego, se da un clic en el botón Aceptar y manda el siguiente
mensaje.
Se han definido las Entradas y Salidas para este Módulo
Aceptar
Figura 1.6.22 Se han definido entradas y salidas
En caso que no se haya agregado entradas o salidas, mandará el siguiente mensaje
de error.
No se han agregado equipos
para entradas y salidas'
Figura 1.6.23 No se han agregado equipos
28
Programa de Aforos
* Para modificar las entradas y salidas de un módulo de riego, realizar lo siguiente:
- Clic en menú Balances
- Clic en Submenú Modificar E/S de Módulos
Figura 1.6.24 Modificar Entradas-Salidas
Aparece la figura siguiente:
Figura 1.6.25 Seleccionar Distrito de Riego
En la fig u ra anterior, se selecciona el distrito de riego en el cual se va a Una
veonao|izodoeato.oedounc|icenm|botónAc eota r. con|ocuo|mamoontnará |a fimuna
1.6.26.
Figura 1 .6.26 Seleccionar Módulo
29
Programa de Aforos
De la figura anterior, se selecciona un módulo. Si el módulo seleccionado no tiene
definida sus entradas y/o salidas manda el mensaje de error siguiente.
Equipo...
Este módulo no tiene definida
sus entradas y salidas...
Aceptar
Figura 1.6.27 No definidas entradas y Salidas
Si el módulo seleccionado con el cual se va a trabajar, ya se han definido sus
entradas y salidas, se cargará la ventana que se muestra a continuación (Figura
1.6.28).
Figura 1.6.28 Modificar Entradas-Salidas
Descripción de la ventana para modificar las Entradas y/o Salidas del módulo
seleccionado para un posterior balance de volumen de agua.
Entradas :
seleccionar equipo...
Figura 1.6.29 Lista de equipos de
entrada
Muestra una lista con todos los equipos dados
de alta en el sistema, los cuales se pueden
agregar como entrada de volumen de agua al
módulo de riego.
Muestra una lista con todos los equipos dados
seleccionar
equipo..
de alta en el sistema, los cuales se pueden
agregar como salida de volumen de agua del
Figura 1.6.30 Lista de equipos de salida módulo de riego.
Salidas:
30
Programa de Aforos
VantageMl
VantageM3
Muestra una lista con los equipos que se dieron
de alta en el sistema, ya sea como entrada o
salida de volumen de agua del módulo que se
haya seleccionado para poder hacer
modificaciones.
Figura 1.6.31 Lista de equipos llenada
Figura 1.6.32 Botón Agregar
°tata!
Permite agregar a la lista de equipos, el equipo
que se haya seleccionado en la lista de entrada o
salida.
Permite quitar de la lista de equipos, el equipo
que esté seleccionado de esta lista, ya sea que
esté en la lista de equipos de entrada o en la lista
de equipos de salida.
Figura 1.6.33 Botón Quitar
Aceptar
Figura 1.634 Botón Aceptar
Permite guardar en el sistema, los equipos que
se han dado de alta ya sea como entradas o
salidas de volumen de agua para el módulo con
el cual se está trabajando.
Sale de la opción de definir entradas y salidas sin
realizar ningún cambio en el sistema.
Figura 1.6.35 Botón Cancelar
X
Cancela! !
Sale de la opción de definir entradas y salidas sin
realizar ningún cambio en el sistema.
Figura 1.6.36 Botón Cancelar
Se selecciona de la lista de entrada, los equipos que se van a dar de alta como
entrada de volumen de agua, y se agrega a la lista de equipos de entrada dando un
clic en el botón agregar correspondiente.
Entradas:
VantageM1
VantageM2
VarrtageM3
VantageM4
VantageMS
VantageM6
VantageM7
VantageM8
Figura 1.6.38 Lista de equipos de entrada con
equipos dados de alta
Figura 1.6.37 Lista de Entrada de equipos
31
Programa de Aforos
En caso que se quiera dar de alta un equipo como entrada de volumen de agua, pero
que ya se ha dado de alta como salida de volumen de agua, se generará un mensaje
de error, el cual se muestra en la siguiente figura.
Equipo...
El Equipo ye ha sido agregado como salida
Figura 1.6.39 Mensaje de error
Para dar de alta un equipo como salida de volumen de agua, se selecciona de la lista
de salida y se da click en el botón Agregar correspondiente.
Salidas:
Salidas:
VarQageM4
%a'
VantageM3
VantageM4
VantageM5
VantageM2 VantageM6
VantageM7
Vantage roa
Guitar
Agregal
'`JantageM2
VantageM4
VarrtageM9
Figura 1.6.41 Lista de equipos de salida con
equipos dados de alta
Figura 1.6.40 Lista de Salida de equipos
En caso que se quiera dar de alta un equipo como salida de volumen de agua, pero
que ya se ha dado de alta como entrada de volumen de agua, se generará un mensaje
de error, el cual se muestra en la siguiente figura.
El Equipo ya ha sido agregado' como' entrada
Figura 1.6.42 Mensaje de error
En caso que se requiera borrar un equipo de la lista de equipos, se selecciona el
equipo a eliminar y se da un click en el botón Quitar correspondiente al tipo de equipo
(entrada o salida) que se quiera eliminar.
32
Programa de Aforos
Elttfil(ii^S:
iVantageM6
Vantagei141
VantageM3
VantageM6
Figura 1.6.43
Equipos agregados
Figura 1.6.44
Equipos a eliminar seleccionado Figura 1.6.45
Lista con equipo eliminado
Una vez que se han realizado las modificaciones tanto de los equipos querán las
entradas como las salidas de volúmenes de agua para un módulo de riego, se da un
clic en el botón Aceptar y mandará el siguiente mensaje de confirmación.
El Modulo ha sido modificado
Figura 1.6.47 Modificación realizada
En caso que no se haya agregado entradas o salidas, mandará el siguiente mensaje
de error.
No se han agregado equipos
para entradas y salidas
Figura 1.6.48 No se han agregado equipos
33
Programa de Aforos
1.7.-
Realizar un Balance de Volumen de Agua
Para realizar un balance de agua, se realiza lo siguiente:
- Clic en menú Balances
- Clic en Submenú Cálculos
Figura 1.7.1 Cálculo para volumen de agua
Aparece la figura siguiente:
Distrito de Riego: l
;
Figura 1.7.2 Seleccionar Distrito de Riego
En la figura anterior, se selecciona el distrito de riego en el cual se va a trabajar. Una
vez realizado esto, se da un clic en el botón Aceptar, con lo cual se mostrará la figura
1.7.3.
Figura 1.7.3 Tipo de Balance
34
Programa de Aforos
Se puede realizar un balance de volumen de agua ya sea por punto de control o por
un módulo de riego completo.
Si se requiere realizar un balance por punto de control, se selecciona la opción "Por
punto de control" y se da clic en el botón aceptar y se mostrará la ventana de la figura
1.7.4.
Información General del Punto de Control
Módulo:
8
Canal:
Canal Lateral kin 11.000
Km.
0.035.25
Equipo: Vantages M9I
Periodo Inicial: 128108/2006
J Periodo Final: 2$/08/2006
Volinneu Inicial:
Volumen Final:
Volumen Total:
Figura 1.7.4 Balance por punto de control
En la figura anterior, se carga información de manera general del punto de control que
se haya seleccionado. Una vez en esa ventana, se selecciona el periodo del cual se
quiera realizar el balance de volumen de agua y dar clic en el botón Calcular.
Módulo:
8
Canal:
Canal Lamia! km 11+000
Km.
0.035.25
Equipo: Vantage5_M91
p.m. volumen m 34945.00
Volumen Inicial: 22.092005
04:25:00
Volrimeu Final:
11:55:00 pan. volumen= 35649.00
23 09.2005
Voliu nen Total: 704.00
Figura 1.7.5 Balance realizado
Si se quiere realizar un balance con un periodo del cual no se cuenta con información,
mandará un mensaje de error que muestra en la figura 1.7.6.
35
Programa de Aforos
No hay información para ese periodo
Figura 1.7.6 Balance realizado
También se puede realizar un balance de volumen de agua por módulo, se selecciona
la opción de "Por módulo de riego" y habilita la lista que contiene los módulos
disponibles para el distrito de riego que se haya seleccionado.
Figura 1.7.7 Balance por módulo de riego
Si del módulo que se quiera realizar el balance no se han definido sus entradas y
salidas, el programa mandará un mensaje de error que se muestra en la figura 1.7.8.
Este módulo no tielr¡¡^^definida
sus entradas y saliis...
Aceptar
Figura 1.7.8 No se han definido Entradas y Salidas
Si ya se han definido las entradas y salidas del módulo seleccionado, mostrará la
ventana siguiente.
Periodo Inicial:'
12e10e/2006 .2:1
Periodo Final:
12e108l2006
Voltínten total pala entradas:
Volumen total para
salidas:
Volrimen Total:
Figura 1.7.9 Balance por Módulo
36
Programa de Aforos
En la figura anterior, se carga información del distrito y módulo que se han
seleccionado y se cargan en las listas de equipos, los equipos que se definieron como
entradas y salidas.
Se selecciona el periodo del cual se requiere realizar el balance y dar click en el botón
calcular. Si se quiere realizar un balance con un periodo del cual no se cuenta con
información, mandará un mensaje de error que muestra en la figura siguiente.
1)
No hay información para ese periodo
Figura 1.7.10 Balance realizado
Si la consulta encuentra información con la cual poder realizar el balance de volumen
de agua, se mostrarán los resultados como en la figura que se muestra a continuación.
Distrito de Riego: 75
Módulo: I
Entradas:
Salidas:
Periodo Inicial:
i 22á nos vi
Periodo Final:
f25ro912oa5 +
-i
Volumen total para entradas: 3412.00
Volumen total para salidas: 1706.00
Volumen Total:
1706.00
Figura 1.7.11 Balance realizado
1.8.-
Conclusiones
Se ha realizado y presentado detalladamente el programa para la integración de datos
de aforo.
El sistema permite dar de alta las instituciones de usuarios y puntos de control. La
definición de entradas y salidas tanto de DR como de las asociaciones de Usuarios
permiten realizar un balance en términos de volumen de agua.
37
Programa de Aforos
El sistema permite la importación de la información de las variables hidráulicas de
interés principalmente el nivel del agua, la velocidad media, la sección hidráulica, la
fecha y sobretodo el volumen en función del tiempo de muestreo. Dicha información
debe estar en formatos de Excel.
El análisis de estadísticos simples como la media y desviación estándar (varianza) se
puede realizar en intervalos de tiempo definidos por el usuario del sistema de cómputo
y permite entonces realizar análisis previos de la información para incorporarla a la
estadística hidrométrica. Dicho análisis temporal puede incluir el balance de
volúmenes.
Este sistema se constituye en la herramienta de análisis previa a la incorporación de
los balances de volúmenes de agua entregados a las asociaciones de usuarios que
requiere el manejo de información para su inserción en la estadística hidrométrica de
cada DR.
38
11W 11111 I
II II
O II 46026
CENCA (E .1)
Descargar