eko nº3:(Eko3R-03.txt):10/11/2001 << Back To eko nº 3
<- [ Eko Magazine 3 Revange ] ----- [ La Venganza del Oso Arturo.... ] -> <----- [ Phreaking #Ezkracho ] ------ { Phreaking@ezkracho.com.ar } ----> <------------ [ 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. ]$$>