<- [ Eko Magazine 3 Revange ] ----- [ La Venganza del Oso Arturo.... ] ->
<----- [ Phreaking #Ezkracho ] ------ {
[email protected] } ---->
<------------ [ Boludeando con los puertos, Parte II ] ----------------->
Hola!!! esta es la segunda parte de este mini-curso de electronica y
perifericos para puertos, den las gracias que pueda darles esta info porque
soy un Trasher de alma y todavia me quedaron notas, escritos y papeles de
donde sacar estas cosas.....
Como primer termino vamos encarar la creacion de un medidor de densidad
luminica, esta bien suena raro??. tecnicamente un aparato para medir la
densidad de la luz a travez de un LDR o fotocelula.. en segundo lugar un
termometro jejeje si para que sirve nose pero creo que puede ser un agradable
sensor de temperatura para incorporar dentro de nuestro gabinete o
simplemente para medir cuando el ambiente esta CALDEADO en nuestras casas
XDDD. Los circuitos se consiguen facil y valen dos chirolas, el Code de los
programas esta en Visual Basic Ahhh! cuanto hace que no programo algo! =/.
|----------------|
| Medidas de Luz |
|----------------|
Bien para generar un Grafico en Visual (para aquellos que no tienen
idea de como hacerlo), vamos a utilizar un elemento llamado PICTUREBOX, el
cual se encuentra en la barra de herramientas. Es importante elegir el
tama~o correcto. Nosotros mediremos el tama~o en pixels. La propiedad
SCALEMODE de dicho objeto debe ser configurado a '3 - pixels'. Para hacer
esto en nuestro ejemplo necesitaremos una PICTUREBOX de 300 x 500.
Podemos dibujar una linea en el objeto PICTUREBOX utilizando el comando
LINE. La medida se dibuja sobre un periodo de tiempo de 100 segundos, en el
que el eje de coordenadas X avanza 5 pixels en cada media realizada. Se debe
declarar de forma especial una variable global n para almacenar la posicion
actual en cada una de las llamadas al procedimiento del temporizador. En el
eje Y se representa la resistencia (R/100) con un valor maximo de 300
(30.000 OMhs = 30 KOMhs). Cada segundo que pasa representa un nuevo valor en
el grafico, al mismo tiempo que se dibuja una linea de segmento desde el
ultimo punto hasta el nuevo punto encontrado. Para almacenar todos los
datos, el valor viejo de la coordenada debe ser almacenado en una variable
global.
LISTADO DE PROGRAMA.
Dim y1, y2, x1, x2, n
Private Sub Form_Load()
i = OPENCOM("COM2, 1200, N, 8, 1")
IF i = 0 Then
i = OPENCOM("COM1, 1200, N, 8, 1")
Option1.Value = True
End IF
IF i = 0 Then MsgBox ("Error en COM.")
TXD 0
RTS 0
DTR 0
Counter1 = 0
Timer1.Interval = 1000
n = 0
End Sub
{ El procedimiento de arriba lo que hace es habilitar los puertos COM1 y
COM2 verificando si estan disponibles, y los carga}
Private Sub Form_Unload(Cancel As Integer)
CLOSECOM
End Sub
{Simple como dice cierra los COM}
Private Sub Option1_Click()
i = OPENCOM("COM1, 1200, 8, N, 1")
IF i = 0 Then MsgBox ("COM1 No disponible.")
End Sub
Private Sub Option2_Click()
i = OPENCOM("COM2, 1200, 8, N, 1")
IF i = 0 Then MsgBox ("COM2 No disponible.")
End Sub
{Habilita las opciones para seleccionar uno u otro puerto}
Private Sub Timer1_Timer()
DTR 1
REALTIME (True)
TIMEINTUS
While (DSR() = 0) And (TIMEREADUS() < 900000)
Wend
T = TIMEREADUS()
DTR 0
T = T * .932
R = 2200 + 7800 * (T - 76300) / (294600 - 76300)
REALTIME (False)
R = Int(R)
Label.Caption = Str$(R) + "Ohms" + " EZKRACHO TEAM"
y2 = 300 - R / 100
IF n = 0 Then y1 = y2
x1 = n
n = n + 5
x2 = n
Picture1.Line (x1, y1)-(x2, y2)
y1 = y2
End Sub
|--------------------------|
| Medida de la Temperatura |
|--------------------------|
La temperatura Tambien puede medirse usando nuestro circuito de
medidas de resistencias. El circuito es simple cambiamos el LDR por un
Termistor NTC de 10K Ohms para construir un peque~o termometro.
La caracteristica de resistencia de un Termistor NTC se puede aproximar a
una curva exponencial. Un termistor NTC esta especificado en una primera
aproximacion por dos valores: B y la Resistencia nominal del termistor R25.
Para un Termistor tipico NTC de 10K Ohms podemos generar la siguiente linea
de codigo: Temp. = 1 / (Log(R / 10000) / 4300 + 1 / 298) - 273
La funcion Log calcula el logaritmo natural, a menudo abreviado en la forma
Ln en matematica. En el code a continuacion, primero se realiza la medida de
una resistencia y, a continuacion, se convierte el valor medido en
temperatura expresada en forma decimal.
RESUMEN DE LA FUNCION.
Private Sub Timer1_Timer()
DTR 1
REALTIME (True)
TIMEINITUS
While (DSR() = 0) And (TIMEREADUS() < 1500000)
Wend
T = TIMEREADUS()
T = T * 1.0000000001
R = 2200 + 7800 * (T - 76300) / (294600 - 76300)
REALTIME (False)
R = Int(R)
Temp = 1 / (Log(R / 10000) / 4300 + 1 / 298) - 273
Temp = Int(Temp * 10) / 10
Label1.Caption = Str$(Temp) + "Celcius"
DTR 0
End Sub
##############################################################
# Los diagramas se encuentran en los archivos Diagrama 1 y 2 #
# en /Eko3Revange/TI-4A/Eko3R-03/ #
##############################################################
MONTAJE: Con un cable de Mouse viejo, utilizando los Pines de DTR, DSR
TXD, un soldador, esta~o y una cajita o lo que se les cante donde apoyarlo
ya que no contiene mas de 3 elementos estos circuitos asi que pueden si
quieren montarlos sobre el mismo DB9 (Cualquier duda sobre Puertos consultar
EKO 02 Boludeando con los puertos...) soldando con cuidado.
Como se habran dado cuanta es una tremenda pavada hacer estos proyectos
sencillos, desde ya tengo que agradecer a mis viejos profesores por el
material y a mi Vieja por no tirar la basura desparramada por mi pieza....
<$[ Eko Magazine 3 Revange EOF. ]$>
<$$[ Boludeando con los puertos, Parte II. ]$$>