![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Controlar dispositivos por el puerto serie
Si alguna vez has pensado en controlar algún dispositivo desde tu PC puede que este truco pueda servirte. En este caso se activa o desactiva un rele, que a su vez actúa como un interruptor que permite encender o apagar "cualquier cosa" (una luz, una puerta automática, etc.).
Para realizar esto vamos a usar el puerto serie del PC, mas concretamente el pin RTS que en un conector de 9 pines es el numero 7. El circuito se ha reducido para que resulte sencillo y no utilice demasiados componentes, su funcionamiento es muy básico cuando activamos RTS tendremos una tensión positiva que activara el rele, si desactivamos RTS tendremos una tensión negativa y el rele volverá a su estado de reposo. (Siento no entrar en más detalles, intento no utilizar palabras técnicas para que todos puedan entenderlo, pero resulta difícil) El circuito sería el siguiente (no es fácil dibujar con letras): Código:
V+ | +------+ | | _ ------- D2 ^ | / | RELE | ------- | | +------+ | | | / D1 R1 |/ RTS >--->|-+--/\/\/\/\----------| T1 | R2 |\ +--/\/\/\/\--+ | \ | | GND >-------------------+---------+-----< GND R1,R2 10K D1,D2 1N4007 T1 BC517 V+ 6V..12V
Ejemplo de uso:
|
#2
|
|||
|
|||
ES JUSTO EL TRUCO QUE ESTABA BUSCANDO... LO PROBARE Y LUEGO OPINO SOBRE LOS RESULTADOS DONDE LO QUIERO APLICAR YA QUE LO QUIERO USAR PARA UN INTERRUPTOR DE TIMBRE....
|
#3
|
|||
|
|||
¿Como se podria adaptar para poder leer tarjetas ISO7816?
Lo estoy intentado pero en el pxoenix no se me enciende ningun led Muchas gracias |
#4
|
||||
|
||||
aplicable, phoenix es un lector de tarjetas smartcard que cuenta con sus propios drivers y software de programación. El hardware del lector no tienen nada que ver con el que pongo aquí, que es un simple interruptor para encender o apagar algún aparato eléctrico.
Siento no poder ayudarte |
#5
|
|||
|
|||
hola que tal xme arme el circuito y anduvo 10 puntos!!
Ahora como se hace para apagar y prender sin tener en cuenta el tiempo que le paso. Como se puede hacer para prender xmas de una luz, necesito otro tipo de circuito?? y puede ser que mientras este prendida el programa quede bloqueado. gracias!! como puedo empezar a estudiar todo esto de los puertos__>>?? |
#6
|
||||
|
||||
Me alegro de que te funcionara, ahora vamos a ver si puedo ayudarte con tus preguntas. Como tu bien dices, si lo que se quiere encender es una luz, lo ideal es una función que lo encienda y otra que lo apague. Pues bien lo primero que tenemos que hacer es declarar la variable hPort como global, y separar la función de arriba en 4:
Antes de usar el puerto tienes que llamar la función AbrirPuerto y cuando dejes de usarlo CerrarPuerto. Las funciones ActivarRTS y DesactivarRTS hacen lo que parece activar y desactivar RTS, para que funcionen el puerto tiene que estar abierto. En cuanto a lo de encender mas de una luz podemos utilizar además de la salida RTS la DTR con lo cual ya podemos encender 2 luces utilizando 2 circuitos como el anterior. Utilizando una combinación de ambas podríamos controlar hasta 3, pero si necesitas controlar mas ya seria necesario utilizar algún circuito que pueda establecer una comunicación serie, quizá con un microcontrolador PIC. |
#7
|
|||
|
|||
hola nuevamente, donde puedo encontrar algo para entender esto de lso puertos seriales y paralelo y como manejarlo con delphi, ver que cosas se pueden hacer, entrar un poco en el tema como para desarrolar algo por mi cuenta!!
Gracias! |
#8
|
|||
|
|||
Hola, ahora se me ocurre mandar alguna senal hacia el puerto para indicar que se prenda o apague la luz ya se por una simple llave de luz, algun sensor. Es para probar mandarle una señal a el puerto y cuando este la reciva active la funcion de apagar luz, o para que cuando reciba active la de prender. Espero que se entienda!
|
#9
|
||||
|
||||
Hola Dalmine, mandarle señales al puerto serie no es tan sencillo ya que funciona con voltajes desde +/-3V hasta +/-10V, pero lo mas importante es que se necesitan valores negativos y positivos. Algunos puertos interpretaran bien una señal de 0/5V pero esta no cumple el estándar y puede no funcionar. Un ejemplo de como mandar señales puede ser por este circuito pensado para recibir señales de un control remoto, aunque se puede reemplazar el sensor por cualquier otra señal digital entre 0 y 5V.
http://www.tb-electronic.de/vdr/lirc/lirc_rx.html También puedes usar el circuito integrado Max232 para convertir las señales entre 0/5V a señales que cumplen con el estándar RS232, busca por internet, hay multitud de ejemplos de como usar este integrado. |
#10
|
|||
|
|||
HOla que tal!! como va, encontre este dispositivo!!
http://www.pablin.com.ar/prod/placa32.htm ahora me queda leer info para ver como es todo este protcolo del puerto serie y hacer unas pruebitas en delphi, hasta juntar la platita, que no es mucha!! gracias por darme la iniciativa!! rino |
#11
|
|||
|
|||
hola, me parese interesante esto que leo, justo lo que busco, estoy intentando controlar los controles de un playstation 2, seria posible habilitar y desabilitar su funcionamiento con ese circuito y su software en delphi??? espero me respondan bye
|
#12
|
||||
|
||||
Supongo que quieres hacer un sistema que impida usar el mando de la play. En ese caso se tendría que localizar el cable de alimentación, cortando ese cable y haciéndolo pasar a través del contacto del relé supongo que se podría conseguir lo que buscas. De todas formas yo haría el "arreglo" en una extensión para mandos (las hay a vender) así no destrozaría el propio mando. De todas formas, no te aseguro que todo funcione bien, recuerda que el mando de una playstation es un circuito digital bastante complejo y puede que no le "siente bien" que lo anden conectando y desconectando, tu veras ...
|
#13
|
|||
|
|||
Gran Aporte domingo, mi pregunta , como lo harias para en vez de encender una luz o tal, encender un ordenador cualquiera de tu Lan
|
#14
|
||||
|
||||
Hola jpardo25cl, este truco no creo que sea aplicable a encender ordenadores en una Lan. Creo que lo que tu necesitas es buscar información sobre el Wake-On-Lan, saber si las placas de los ordenadores de tu red lo soportan y como mandar el "magic packet" a un ordenador para encenderlo.
Seguro que si expones esta duda en el los foros alguien te ayudara. |
#15
|
|||
|
|||
Impresionante Seoane, lo usare para mi cometido, si no supiera hacerlo funcionar espero puedas ayudarme
|
#16
|
||||
|
||||
Hola, antes que nada no se si es adecuada mi pregunta, pueden no responder
Estoy investigando el puerto Paralelo, y en una pagina encontre que cada pin se corresponde con un bit en una direccion de memoria especifica, y si el bit esta en 1 el pin tiene tension y si esta en 0 el pin no tiene tension. Hay una tablita explicandolo muy bien en: http://www.pablin.com.ar/electron/info/varios/spp.htm el tema es que no se como escribir en esas direcciones de memoria desde el Delphi, no se si tengo que usar alguna API del SO, y como vi que estaban con el puerto COM1 decidi preguntar (aunque usando funciones especificas para ese tipo de puertos) Si alguien me puede tirar alguna pista se lo agradecere. Desde ya muchas gracias Saludos Javier |
#17
|
||||
|
||||
Hola javier7ar, en WindowsXP/200, y supongo que en los siguientes, no se puede acceder directamente a los puertos. Se tiene que utilizar un driver o como en este caso funciones de la API. Para el caso del puerto paralelo, existen varios drivers gratuitos en internet que podrás descargar y utilizar desde delphi. Busca en los foros y encontraras varios hilos tratando ese tema ...
|
#18
|
|||
|
|||
Ayuda con el DTR
Que debo hacer para usar el DTR en el codigo? el pin en db9 es el 6 creo, pero en delphi hay algo para modificar y abris y habilitar???
Mi proyecto es validar un usuario por biometria si está registrado enciende luz verde y si no esta registrado enciende luz roja y que ademas si esta registrado abra una puerta, aunque esto ultimo lo puedo obviar. Gracias por la ayuda. Eder Última edición por Casimiro Notevi fecha: 09-06-2016 a las 08:57:11. |
#19
|
||||
|
||||
Primero de todo, leer nuestra guía de estilo, gracias y bienvenido
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#20
|
|||
|
|||
Cita:
Un ejemplo muy simple del concepto esta en el siguiente código para el arduino: Código:
char c; void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(1,OUTPUT); //Luz Roja pinMode(2,OUTPUT); //Luz Verde pinMode(3,OUTPUT); //Puerta } void loop() { // put your main code here, to run repeatedly: if(Serial.available()>0) { c = Serial.read(); switch(c) { case 'v': digitalWrite(2,HIGH); digitalWrite(3,HIGH); delay(1000); digitalWrite(2,LOW); digitalWrite(3,LOW); break; case 'i': digitalWrite(1,HIGH); delay(1000); digitalWrite(1,LOW); break; default: break; } } } Aclaro que este es sólo un ejemplo. |
![]() |
|
|
![]() |
|