PDA

Ver la versión completa : USB en VB



twilight
18-07-2003, 12:45
Hola.
Una pregunta, sabeis si se puede habilitar y deshabilitar un puerto USB desde Vb, es decir, no quiero leer ni escribir el puerto, necesito encender y apagar el voltaje del puerto... Preferiblemente en Vb pero si sabeis alguna otra manera os lo agradecere igualmente.


Gracias

eXcalibur
18-07-2003, 13:28
Seguro que se puede, lo que pasa es que tendrás que buscar que API se encarga de esto

twilight
18-07-2003, 14:15
Uff ya no estoy seguro... si se puede de puta madre, pero si es como la corriente a los discos que esta siempre activa "pos no". He estado buscando el API y no he encontrado nada, seguire buscando.
Por cierto, el puerto serie no tiene un pin de voltaje constante como el 1 y 4 del USB, verdad?

eXcalibur
18-07-2003, 14:22
Creo que el puerto de serie tambien tiene voltaje, pero mucho menos

twilight
18-07-2003, 18:05
Yo creo que el puerto serie no tiene voltaje constante como el USB, puede tener hasta 5v pero solo cuando envias datos

gondar_f
18-07-2003, 19:57
El pueto serie no tiene voltaje, ademas con tres cables puedes realizar una trasmisión bidireccional sin problemas, el problemas es que el puerto serie para trasmitir informacion usa picos de 12 y -12 voltios.
Aun así es la mejor manera de concectar un PIC o dispositivos muy lentos creados por ti al un PC.

Scar_T
19-07-2003, 20:28
Que no el esta preguntando por USB y no por Puerto serie?

gondar_f
19-07-2003, 20:53
En cuanto a lo del la API par USB, el windows integra unos controladores genericos que son los que se conectan con los drivers de la placa, para por ejemplo activar los controladores de un PEN DRIVE, etc, aunque no puedo ayudarte en cuanto a que DLL son y sus cabeceras para que puedas llamarlas, no lo se.
Saludos

twilight
19-07-2003, 21:50
Gracias a todos, yo sigo con mi teoria de que no se puede desconectar por software el voltaje del puerto USB.

NeoGenessis
21-07-2003, 13:02
Que yo sepa:
1-Todos los puerto tienen voltaje: Almenos yo no he tenido que enchufar nunca un raton ni un teclado.
2-La coriente no puede ser desconectada de un puerto si no es abriendo el Pc y desencufando el puerto (si esta integrado en la placa te jodes).

En cuanto lo de desconectar USB, supongo que lo que quieres es apagar el dispositivo conectado al USB. En caso de poderser creo que la informacion la podrias encontrar:
1-En MSDN: Si ya se que es de microsoft, y que es como navegar en un mar de mierda, perdon de datos, pero puede que lo encuentre.
2-Buscalo para C, ya que es mas probable que lo encuentres, Despues solo debes traducirlo.

Pd: lo de te jodes es general, no dirigido a nadie, no sea que nadie se pique.

twilight
21-07-2003, 13:39
XDDDDDDDDDDD.... pues si, la verdad es que si me jodo, porque ayer descubri eso mismo, que no se puede desactivar el voltaje de un puerto.
Ahora viene una pregunta relacionada, en el puerto paralelo ¿hay alguna manera de tener encendido uno de los pines sin tener que enviar datos? sino pues nada, le pongo un potenciometro o un interruptor al "parato"

gondar_f
22-07-2003, 21:07
No se exactamente que es lo que quieres hacer pero, si es conectar una pequeña placa que hiciste tu al pc te recomiento el rs232, es muy facil de programar (el paralelo es casi igual) y es muy facil de implementar sobre todo si estas usando PIC 16f873 o semejantes. En cuanto a lo de tener activado un pin sin enviar, te dire que puedes tener informacion en el registro de datos del pueto y que salvo que estipules en el puerto de configuracion que envie los datos no los envia, que es lo que sobreentiendo que quieres hacer, sino explicate un poco más.

twilight
22-07-2003, 21:49
a ver... lo que quiero hacer es la cosa mas sencilla del mundo, lo que queria era sacar voltaje de un puerto, voltaje constante, no me interesan los datos, solo necesito sacar voltaje constante (pero programable, quiero decir que pueda apagarlo y encenderlo cuando quiera mediante softaware, a poder ser) no lo puedo sacar de la placa ni de la fuente porque es un portatil.

NeoGenessis
25-07-2003, 12:05
Hola twilight,
si te soy sincero no tengo muy claro el que.
De todos modos seria interesante saber pa que quieres la corriente. Si es pa un dispositivo usb tu problema se resuelve con ponerlo y quitarlo.

Si es pa otro trasto (como el walkman) entonces sabiendo electronica (yo no se gran cosa, por no decir nada) podrias crear algo que coguiera corriente del puerto que quieras y luego currarte un programa que hasta que tu le digas envie señal a ese puerto.

Si quieres saber mas sobre puertos com /paralelo /rs-232 te recomiendo que busques revistas y libros antiguos. En el radiorama han salido muchos diseños y teoria sobre esos puertos, por ejemplo.

Saludos.

twilight
25-07-2003, 12:09
Je je je ... efectivamente, es para un trasto. El problema no es conectar el "parato" al puerto, eso ya lo he hecho, el problema era conseguir mediante software que ese puerto tuviera o no voltaje. He descubierto que los 5v del USB son constitutivos, es decir se apagan y encienden con el ordenador. El problema era conseguir alguna fuente de voltaje controlable mediante software

NeoGenessis
28-07-2003, 11:23
Quiza peco de simple, pero por que no usas un conector USB que solo use los cbles de corriente, y en medio de uno de ellos pones un interruptor?

Ya se que es un poco cutre, pero yo diria que si sabes que cables son hacerlo es sencillo. Ya me contaras por si algun dia me hago rico y me compro un portatil.

:p

twilight
28-07-2003, 12:05
Si eso ya lo he hecho, los cables del voltaje, por si a alguien le interesa son los de los extremos en los conectores rectangulares, pero claro, lo del interruptor es lo que me parecia cutre, por eso me gustaria encenderlo y apagarlo con software, gracias de todos modos

gondar_f
29-07-2003, 21:00
Si lo del interruptor no es muy profesional.
Por cierto la idea de usar el puerto paralelo si es viable, puedes hacer lo que querias con un algoritmo simple, eso sí si es que tengo bien los apuntes de electronica de sistemas.

isidrocampos
06-08-2003, 04:59
no estoy muy seguro de lo que quieres hacer pero el puerto paralelo es buena opcion para controlar voltaje, bueno solo serviria como compuerta logica, es decir activar o desactivar el voltaje que deseas manipular, tu dices que solo deseas activar y desactivar el voltaje, asi que solo necesitas enviar al puerto un 1 logico para mantener la salida durante el tiempo necesario y despues un 0 ( cero logico ) para desactivarla !!! en lenguaje c es sencillo solo usa la instruccion outp(1)
!!! revisa que librerias ocupas

por cierto no olvides usar optotriac ( para manipular voltajes altos 110v )
u optoacopladores ( para voltajes bajos 5 hasta 12 v )

espero haberte sido de ayuda

wgeorge
10-06-2010, 02:23
Saludos Twilight, buscando encontre este tema sobre USB en VB y es justo lo que estoy necesitando apagar y encender el voltaje de un puerto USB. Si lo pudiste resolver podras pasarme la info.

Fruit
10-06-2010, 02:47
7 años han pasado...

jarddisk33
09-09-2010, 06:28
El mas facil de todos los puertos, es el puerto paralelo, tambien el mas noble de todos, no necesitas mucho conocimiento sobre electronica, ya que el puerto por si solo, entrega una señal digital muy facil de identificar, 5v o uno logico y 0v o cero logico, para que no tengas dudas sobre ello, puedes usar el pin numero 25 del puerto paralelo como tierra y el pin numero 5 como linea o corriente como lo estan llamando aqui, y listo, para probarlo solo tienes que conectar un diodo de emisor luz led directamente en los pines que te digo y veras que enciende o apaga la luz del pequeño diodo, esto es por el lado de hardware, por el lado de software es muy facil hacerlo, si usas C como ya se menciono antes, con mandar la instruccion outp(888,255); le mandas la salida a alto de todos los pines (incluido el 5) para que puedas probar lo que es, tambien es muy facil por vb, pero necesitaras una libreria que se llama inpout.dll, que la encuentras en internet y listo a controlar lo que quieras, si a esto le sumas usar tiempos puedes automatizar lo que sea

hystd
09-09-2010, 19:39
Discrepo... el puerto paralelo, además de obsoleto, no es el más fácil de usar. En Sistemas operativos con protección de anillos, tal y como ocurre con la arquitectura NT o sistemas Unix, necesitas implementar un driver o controlador, ya que el uso de las instrucciones "in" y "out" de la arquitectura x86, son protegidas y sólo se pueden ejecutar con la cpu en modo supervisor.

La librería "inpout.dll" de la que hablas es sólo una API que permite "instalar", "abrir", "cerrar", "leer", "escribir", etc... a través del driver (fichero .sys) que se incopora en el mismo paquete zip que te descargas. Sin ese driver, la DLL no puede hacer nada y por tanto tu aplicación no funcionará, ni siquiera escribiendo directamente en ensamblador (que por cierto, escribir en ensamblador no significa mayores privilegios, como muchos piensan), pues escribas en el lenguaje que escribas, la aplicación siempre se ejecutará en modo usuario, y por tanto el sistema operativo te habrá negado el acceso y te avisará con un "Access Violation of address 0x..."

Un puerto serie (por ejemplo COM o USB), siempre es más fácil de manejar que un puerto paralelo.

Un saludo.

gondar_f
12-09-2010, 16:35
yo opino igual que hystd, aunque hay que reconocer que para conectar montajes caseros a un PC el más sencillo de usar es el paralelo de cara al hardware, ya que por ejemplo cuando trabajaba con pics, es cierto que desarrollar una comunicación serie parece muy fácil, pero había el problema de que tenias que montar circuitería adicional para tener los +12 y -12V, si mal no recuerdo yo usaba el Max202 para adecuar las señales y unos condensadores.

Pero realmente es que depende como lo quieras hacer, por ejemplo desde .net haces un DllImport y cargas la libreria inpout32.dll y es fácil enviar por el puerto lo que quieras. Y más reciente se incorpora en net System.IO.Port, que te facilita mucho la tarea y dejas de tener que andar cargando librerias. Lo bueno de hacer el trabajo desde Net es que aunque te limita algo más lo que puedes hacer, pues en la práctica te elimina cualquier problema, especialmente porque por ahí circulas varias dlls para trabajar con puertos, pero dan sus problemas, y no hay motivo cuando el sistema ya te proporciona los mecanismos para hacerlo.

saludos