elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17
91  Programación / Programación Visual Basic / Re: ayuda con el puerto lpt en: 20 Diciembre 2006, 07:00 am
visita la sección de electronica, ahi hay un hilo bastante extenso y bien documentado sobre lo que pides... saludos
92  Informática / Electrónica / Re: indicador de nivel de agua en: 3 Noviembre 2006, 17:27 pm
El proyecto con sensor de presion se ve bastante bueno, pues utiliza muy pocos componentes, pero estoy de acuerdo, ademas de  muy costoso el sensor de presion (he visto por ahi y no estan en menos de 30 Dolares) para lo que nececitas no sería lo adecuado...

Para la etapa de potencia es facil no?? usas algun relevador, o incluso un fototriac como en el de josepino se ve bien esa etapa... y sobretodo aisla muy bien.. de ruido y de la corriente AC...

saludos
93  Informática / Electrónica / Re: Display Electronico con diodos Led en: 3 Noviembre 2006, 17:10 pm
Los PICS son microcontroladores, como microprocesadores para aplicaciones no muy grandes, aunque se han desarrollado algunos con capacidades impresionantes!!!. A este chip le cargas un archivo binario ".HEX" generalmente que se obtiene a partir de un codigo fuente normalmente escrito en ASM para pics. Para ello usas un programador de pics (hay muchos por la red tanto circuitos como para que los compres)...

El 74LS374 es un registro, NO es un multiplexor. Este registro es como una pequeña memoria de 8 bits, en la que por un lado en los pines DX, donde X es un numero del 0 al 7, se ponen los datos que quieres que se almacenen y mediante un pulso de reloj (cambiar de un estado logico a otro... investiga un poco de esto es algo sencillo) se almacenen dentro del chip, para asi mediante un pin que habilita el flujo de salida (normalmente nombrado CS, OC Chip Select y Output Control respectivamente) en los pines normalmente llamados QX, igual X del 0 al 7... esto es porque este registro es de tres estados: Entrada, Salida y Alta impedancia (Como si estuviera desconectado). Este ultimo estado es para que puedas deshabilitar el chip y desconectarlo practicamente para que las salidas no hagan corto circuito en un BUS de datos.

En pocas palabras, a este registro le pones un dato  de 8 bits en sus entradas, envias un pulso de reloj a su pin CLK y almacena el dato, Despues para cuando nececites el dato en las salidas simplemente pones en nivel bajo (0 logico) el pin OC o CS como lo nombren en el datasheet... y el dato saldrá por los pines Q.

Este registro es un conjunto de Flip Flops tipo D conectados en paralelo.

El otro tambien es un registro el 74LS264 o 74HC264 (es lo mismo pero se supone son mas veloces los chips que tienen HC), pero es un registro de corrimiento, igualmente son Flip Flops tipo D si no mal recuerdo, pero conectados en serie, Así mediante tres pines (pueden ser dos) introduces los datos de forma serial y las salidas son en paralelo (asi tienes el byte de datos en los pines correspondientes). Como puedes ver este chip se puede seguir conectando en serie con otros y asi tener muchos bits como salidas controlados de forma serial con dos pines (conectando la Entrada1 y la Entrada Dos juntas y aqui poner el dato que quieres introducir al registro y con el pin CLK meterlo...funcionan de manera similar ambos registros)...

En cuanto al tipo de PIC que se puede usar puede ser cualquiera, en el diagrama de Josepino usan el 16F627A que es lo mismo a un 16F628 pero este ultimo tiene unas funciones mas y un poco mas de memoria pero funcionan de manera similar.

Usa el puerto de 8 bits para controlar el registro 74LS374 y con el otro puerto manejar las señales de Reloj de ambos registros, las habilitaciones y el dato que entra en Serie para las columnas de la matriz (En mi matriz es similar el conexionado excepto que tengo 7 Filas X 5 Columnas por cada modulo, el de Josepino creo los pone acostados 5 Filas por 7 columnas)... Digo que puedes usar cualquier pic pues puedes conectar otro registro de corrimiento entre el pic y el 74LS374 y asi introducir sus datos de forma serial para Filas y Columnas, asi solo usas Cuatro pines y otros dos para los Chip Select... con lo cual puedes usar un pic de 8 patillas como un 12F675 o un 12F629 que a final de cuentas entre un 16F627 y un 12F625/12F629 tienen la misma memoria que es lo mas importante para esto pues con ella puedes desplegar mas informacion en la pantalla...En pocas palabras, aqui dependes de la memoria del dispositivo y de la eficiencia de tus subrutinas para controlar el barrido y efectos que pudiera hacer.... Despues pongo mas info... mientras investiga algo de esto para que te enteres bien...y sigue preguntando por aca.

saludos
94  Informática / Electrónica / Re: Display Electronico con diodos Led en: 2 Noviembre 2006, 03:12 am
Así es, se tiene que hacer para la matriz que tengo de 7 x 5, 5 códigos para cada caracter, por ejemplo aquí te pongo un poco de las tablas que hice:

Código:
Chr30 dt 0x03E, 0x051, 0x049, 0x045, 0x03E ; '0'
Chr31 dt 0x000, 0x042, 0x07F, 0x040, 0x000 ; '1'
Chr32 dt 0x042, 0x061, 0x051, 0x049, 0x046 ; '2'
Chr33 dt 0x021, 0x041, 0x045, 0x04B, 0x031 ; '3'
Chr34 dt 0x018, 0x014, 0x012, 0x07F, 0x010 ; '4'
Chr35 dt 0x027, 0x045, 0x045, 0x045, 0x039 ; '5'
Chr36 dt 0x03E, 0x049, 0x049, 0x049, 0x032 ; '6'
Chr37 dt 0x001, 0x071, 0x009, 0x005, 0x003 ; '7'
Chr38 dt 0x036, 0x049, 0x049, 0x049, 0x036 ; '8'
Chr39 dt 0x006, 0x049, 0x049, 0x029, 0x01E ; '9'
Chr3A dt 0x000, 0x036, 0x036, 0x000, 0x000 ; ':'
Chr3B dt 0x000, 0x056, 0x036, 0x000, 0x000 ; ';'
Chr3C dt 0x008, 0x014, 0x022, 0x041, 0x000 ; '<'
Chr3D dt 0x014, 0x014, 0x014, 0x014, 0x014 ; '='
Chr3E dt 0x000, 0x041, 0x022, 0x014, 0x008 ; '>'
Chr3F dt 0x002, 0x001, 0x051, 0x009, 0x006 ; '?'
Chr40 dt 0x03E, 0x041, 0x05D, 0x055, 0x01E ; '@'
Chr41 dt 0x07E, 0x011, 0x011, 0x011, 0x07E ; 'A'
Chr42 dt 0x07F, 0x049, 0x049, 0x049, 0x036 ; 'B'

Le puse nombres "ChrXX" donde XX es el código hexadecimal del ASCII de cada  caracter (el equivalente es el que está después de los comentarios de cada definición de tabla, recuerda que el código es para un pic de microchip)

Código:
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO

Arriba, imagina que es una matriz de leds, y para obtener el código de una "e" se hace lo siguiente:

Código:
  12345
1 OOOOO
2 OOOOO
3 O+++O
4 +OOO+
5 +++++
6 +OOOO
7 O+++O

Los leds encendidos son los marcados con el signo de "+" y estos son los que nos interesan. Ahora sacamos el código de cada columna en binario; pero esto va a depender si la matriz es de tipo anodo o catodo. Para este ejemplo lo haremos para catodo. Empezando por la primer columna y desde la parte superior tenemos (0 para apagado y 1 encendido) :

8 765 4321  <- Posicion de los bits

0 011 1000 (espaciado en nibbles)
^
Bit 8 puede ser de cualquier valor (0 o 1)

Pero como solo tenemos 7 filas, y para acompletar un byte nos falta un bit, el cual puede ser a tu gusto, pero yo elegi ponerlo en 0. Así este número en hexadecimal nos queda: 38h.

Las demás columnas quedan:

Columna 2: 01010100, 54h
Columna 3: 01010100, 54h
Columna 4: 01010100, 54h
Columna 5: 00011000, 18h

estudia un poco estos códigos para que le entiendas mejor y observa el pequeño diagrama de la matriz. Y así le haces para cada caracter que quieras codificar.

Y si, es como un ASCII pero no estandar. A lo que me referia con eso es que el código de la macro que escribí lo que hace es recibir un código del ASCII estandar  y colocar en un buffer los 5 códigos necesarios para dibujar el caracter. Osea que si le paso un 65h que equivale a una "e", de cierta forma decodifica a los códigos de columna. Y la aplicación que se me ocurre de esa decodificación es que ese sistema se puede conectar a una PC por puerto serial por ejemplo y así nadamas enviar los caracteres en ASCII al PIC y este se encargue de decodificar y barrerlos en la pantalla de matriz de leds.

Saludos.






 
95  Informática / Electrónica / Re: Display Electronico con diodos Led en: 31 Octubre 2006, 03:42 am
Es algo complejo el tema, pero si de verdad te interesa puedes aprender mucho. Forzosamente hay que programar algun dispositivo, ya sea un pic, micro, etc. Busca informacion sobre: "Multiplexaje por division de tiempo". En pocas palabras de lo que trata es que vas a dedicar una fraccion de tiempo muy corto a encender una columna de la matriz y pasarle que leds se van a encender en ese instante, pasarte a la siguiente y asi sucecivamente. Todo esto teniendo solo una columna activa para cada fraccion... de ahi el nombre. y lo que se hace es un barrido pasando los codigos para cada columna muy rapido para que el ojo humano vea una imagen. busca sobre ese tema y encontraras multiples aplicaciones sobre dicha tecnica.

Yo he hecho una matriz de 7 filas X 50 columnas, tengo un registro de 8 bits para las filas 74LS374 (sobra un bit que se puede usar estrategicamente para conectar otro bloque) y para las columnas tengo registros de corrimiento de 8 bits 74LS264 si no mal recuerdo, entrada serial salida paralelo, asi con 7 de estos conectados en serie puedo conectar hasta 56 columnas. Lo que hago en el programa de un PIC es mandar limpiar todos los registros de corrimiento, hecho esto enviar el codigo para la primera columna y mandar el bit que active la columna y asi sucecivamente. La verdad, es algo complejo y tedioso, pero aprendes mucho. Si te interesa mucho puedes ponerte en contacto conmigo via messenger  <salacke00@hotmail.com> y hablamos apliamente del tema y despues haces algun reporte, diagramas, codigo fuente y lo publicamos para que todos disfruten de ello.

Pongo un video en funcionamientode esto:

http://k.1asphost.com/NSGSystems/etc/matrixsc.wmv+

Cuando lo descarguen solo quitenle el + de la extension pues el servicio de host no me permite los wmv.

Aqui solo se ve un modulo de 7 X 5 desplegando el abecedario, solo que llega hasta la letra T porque la memoria del pic que uso se termino. esta es una version vieja de la ultima que tengo desarrollada, con ella, mediante una macro puedes poner:

Código:

;Algo asi es el prototipo:

Show "Mensaje", Tamaño mensaje, Velocidad de barrido

;Y para poner algo es asi:

Show "Syphroot", 8, .30


La velocidad no es exacta, y esta macro de momento solo funciona para un modulo, pero facilmente adaptable para los modulos que tengo, que son 10. Lo que hace es tomar las letras que le pasas y convertirlas a algo que se me ocurrio nombrar CBytes (Column Bytes) alojadas en dos tablas de 1 pagina cada una (255 bytes), en una se encuentra la parte baja del ASCII y en la otra la parte alta. Identifica a que tabla pertenece el caracter y extrae de la tabla hacia un buffer temporal que será barrido despues en la posicion actual del puntero de las columnas, el buffer consta de 5 bytes pues cada bloque de los que uso tiene 5 columnas (esto es para simplificar las cosas, pues hacer que las letras queden desfasadas de los bloques es algo complejo y requiere de mucha programacion y memoria en el dispositivo). De ahi se llaman a subrutinas que se encargan de hacer el barrido y hacer los tiempos de espera, mover el puntero de columna, etc,etc...es muy tedioso, te repito, pero muy gratificante verlo funcionar.

Con la nueva version de esta macro creo que se pueden desplegar hasta 32 carácteres aprox. Y lo mejor es que todo se puede optimizar, pero requiere de mas trabajo e ingenio, el pic que uso es el 16F627A de 2K de memoria, en 1K estan las tablas y en el otro K lo que se alcance a poner de mensajes, pues las macros consumen mucha memoria pero simplifican las cosas.


saludos
96  Informática / Electrónica / Re: indicador de nivel de agua en: 26 Octubre 2006, 06:48 am
Por supuesto, siempre y cuando el liquido y el tanque tenga un buen contacto, ya que si el liquido genera sarro, oxido, etc o algo parecido en el interior se puede perder la continuidad de la electricidad... eso se puede solventar si sumerges la tierra (masa) en el liquido... ahora, por ahi he buscado y se recomienda no usar las puntas (Probes como dice en el diagrama) metalicas, pues un liquido + un metal + corriente = electrolito y el metal se desgasta con rapidez y a la larga se generan muchos problemas. En cambio, se recomienda usar grafito, puedes usar el que contienen las pilas secas, de las comunes, en el interior, solo limpia muy bien la barra pues es sabido que los demas quimicos que contienen contaminan el agua.

Espero tu liquido no sea algun combustible!!!! XD
97  Programación / Programación Visual Basic / Re: Programar Dll en: 1 Octubre 2006, 03:33 am
Tu programa falla porque el vb no crea dll normales o nativas como algunos llaman, si no que las genera Dll AciveX y no pueden ser declaradas como si de una API se tratara... como dice Hendrix, en la web del guille hay un articulo sobre como truquear tu VB y hacer Dll normales y poder llamarlas como si de una API se tratara, o sea con Declare, el no encontro este truco, si no que lo encontro en otro lugar y simplemente lo tradujo al espa~ol, el autor original es otra persona que cita en el articulo. Y si, si la API no es encontrada no lanza ningun error ni nada, simplemente se salta la instruccion sin hacer nada.

http://www.elguille.info/vb/avanzado/crear_dll_windows_con_vb6_explicado.htm

saludos
98  Programación / Programación Visual Basic / Re: Encasillar datos para una variable en: 29 Septiembre 2006, 03:11 am
Pues la solucion es la misma que te proponen, con las instrucciones:

Mid
Left
Right

puedes hacer todo eso, en apoyo, para localizar los caracteres iniciales de la cadena que buscas se hace con

InStr

esa instruccion te devuelve la posicion de la primer ocurrencia que encuentra, si no encuentra nada devuelve cero.

por ejemplo tu cadena es:

szStr = "345&%$#26HOLA8)('¡"

' Tu quieres sacar la cadena HOLA, para esto debemos suponer que la cadena que quieres extraer ya la conoces no?, por lo tanto puedes conocer su longitud, y no solo de esta sino de cualquier cadena!!!!

Citar
Dim szStr       As String
Dim szSaca      As String
Dim szNueva     As String
Dim long1       As Long
Dim long2       As Long
Dim lPos        As Long

szStr = "345&%$#26HOLA8)('¡"
szSaca = "HOLA"
long1 = Len(szSaca)
long2 = Len(szStr)

lPos = InStr(1, szStr, szSaca)

If lPos > 0 Then    ' si hay ocurrencias

    szNueva = Mid(szStr, lPos, long1)

Else

    szNueva=""

End If

Bien, ese es el codigo para extraer la cadena la parte HOLA de la cadena PERO... tienes que tomar muchas mas cosas en cuenta pues quiza haya patrones repetidos de la misma cadena y extraigas lo que no es necesario... en conclusion, InStr es la solucion a lo que quieres, estudia esta funcion y con las otras 3 podras hacer muchas cosas con cadenas....

saludos
99  Programación / Programación Visual Basic / Re: duda con archivos en: 27 Septiembre 2006, 09:58 am
en modo binario los datos del archivo los manejas como bytes. y para modo texto los manejas como cadenas...

para manejar archivos en modo binario hay que usar generalmente
Put y Get...

para modo texto se utiliza Print e Input...

Te recomiendo manejes en lo posible los archivos en modo binario pues cuando haces aplicaciones grandes este modo suele ser mas rapido  optimo para manipular archivos... ademas puedes abrir archivos en el modo Random y con el escribir o leer estructuras en los archivos, asi por ejemplo puedes tener algo asi:

type Contacto
   nombre as string * 20
   edad     as integer
   telefono as string * 20
   email     as string * 40
   id          as long
end type

dim Tipo as Contacto

'y abres en modo random y de escritura

open File for Random access write as #FileNum Len = len(Tipo)

put #FileNum, , Tipo

close #FileNum

' y con eso guardas toda la info de un contacto rapidamente y para leer es muy parecido....

saludos

100  Informática / Electrónica / Re: Hacer circuitos con LEDs en: 8 Julio 2006, 12:14 pm
Bien, hay distintos tipos de leds:

Brillantes
Difusos
Ultra brillantes

los brillantes tienen un encapsulado semitransparente (se ve el interior facilmente), estos por lo regular NO se ve que esten encendidos si hay luz ambiental. Se aplican comunmente para iluminacion nocturna o espacios recubiertos.

Los difusos si se ve cuando en enciende con luz ambiental, su encapsulado es opaco e iluminan muy bien

Los ultra brillantes por lo regular su encapsulado es transparente e iluminan con gran potencia.

Pregunta en las tiendas a las que vas que tipos tienen, ellos te dicen de todos los tipos. solo pregunta.


En cuanto a los voltajes de Led NO se preocupen, la mayoria son de 1.2 hasta 2.X volts, es decir, ese es el voltaje de trabajo del Diodo Led (lo que consume). Hagan la prueba con voltajes y resistencias comunmente usadas:

Para alimentacion de 5V usa una resistencia de 330 ohms
Para alimentacion de 9V usa una resistencia de 470 ohms

Hagan las pruebas y vean que pasa...

Efectivamente si reduces la resistencia de proteccion del led aumenta el brillo solo hay que cuidar que no exceda mas alla el voltaje hasta el punto de ruptura (quemazon) del diodo.

Realmente es muy sencillo, ya lo veran despues... hay alla afuera cosas mas interesantes y desafiantes que encender un Led. Busquen "ecuacion para voltajes y resistencias de Leds"

Saludos ;D
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines