¿RS232 qué pin puedo conectar para recibir una señal de entrada en mi aplicación Java escuchando en ttyUSB0 o ttyS0?

Estoy tratando de hacer un BOTÓN muy simple (cable simple ROJO/AMARILLO solamente). Ahora, si se presiona el botón (ROJO toque AMARILLO), quiero recibir la señal de entrada en mi aplicación Java (se presionó ese botón).

¿En qué puertos de RS233 (DB9) debo parchear el cable ROJO/AMARILLO? ¿Para que cualquier botón presionado obtenga señales de entrada en mi aplicación?

Gracias

No entiendo, tal vez tienes algunas palabras mal escritas, pero tampoco estoy seguro de eso.
@kenny: s/LEER/ROJO
@Dean: fuente de Java, no tengo ningún problema. Pero mi problema está en el RS323 conectado a DB9 que es de 9 pines. ¿Cuál de los 9 pines debe conectarse con ROJO/AMARILLO? ¿Para que cuando R e Y lo toquen envíen señal?
@Dean: "has intentado buscar en Google" es un comentario horrible. Especialmente para RS-232 donde los conectores no forman parte de ninguna especificación.
@Dean, RTFM y Google, por favor, las respuestas no son aceptables. El objetivo de Stack Exchange es ser el resultado cuando alguien lo busca en Google.

Respuestas (3)

En el mejor de los casos, esto va a ser una chapuza. RS-232 es para comunicación en serie, no para líneas de entrada digital. Sin embargo, si desea una sola línea de entrada que el software pueda leer, entonces la línea de módem destinada a decirle a la computadora que hay una llamada entrante podría funcionar. Dependiendo de qué acceso tenga su software al puerto serie, debería poder leer esa línea. También hay líneas para detección de timbre y una línea lista general. Recuerdo vagamente que los nombres de algunas de estas líneas son DSR, DCD. Una referencia RS-232 detallada debería ser fácil de encontrar allí.

No todos los controladores de bajo nivel hacen que todas las líneas estén disponibles para el software. Querer esto en Java puede agregar otra compilación, ya que el sistema operativo no solo debe permitir el acceso de la aplicación a estas líneas, sino que la JVM debe dejarlas pasar a la aplicación Java.

Si desea sentir la presión de un botón, use un mouse u otro dispositivo de entrada diseñado para ese propósito.

Agregado:

Como dije, tratar de detectar un solo cambio de voltaje con RS-232 es una chapuza. Lo que olvidé mencionar es una forma simple de hacerlo dentro de la especificación RS-232 para que la interfaz de software normal haga lo que quieras.

La forma más sencilla es que un pequeño microcontrolador detecte el cierre del botón y luego emita un carácter al puerto serie. Esto tiene el beneficio adicional de permitir que el micro realice la eliminación de rebotes, que es algo en lo que debe pensar. Si esto es único, obtenga un pequeño micro con un UART. De lo contrario, puede usar el micro más pequeño posible para marcar el carácter en firmare. Esto realmente no es difícil, especialmente si hace que la velocidad en baudios sea lo suficientemente baja. Una vez envié 9600 baudios desde un PIC 16 desde un cristal de 160 kHz. Puede hacer esto fácilmente con un PIC 10F200 funcionando desde su oscilador interno de 4 MHz.

Un problema es que el micro funcionará a niveles lógicos, mientras que RS-232 requiere que la señal de entrada oscile al menos de -5V a +5V, preferiblemente un poco más. La forma completamente correcta es agregar un chip de interfaz RS-232 como un MAX232 o similar. Sin embargo, muchos puertos COM de PC funcionan con solo una oscilación de voltaje de entrada de 0 a +5. En ese caso, el micro puede controlar la línea de recepción de la PC directamente. Tenga en cuenta que en esta configuración, la señal debe invertirse de lo que emiten los micro UART normales. La línea inactiva debe ser baja, mientras que el UART incorporado producirá una línea inactiva alta.

"Si quieres sentir una pulsación de botón" - Sí, eso es exactamente lo que estoy tratando de hacer. ¿Puedo usar este RS-485 entonces? por ejemplo: usconverters.com/…
@ 89899.3K, RS-485 es un protocolo de comunicación más avanzado que el 232, no va a ser mejor para leer el corto de dos conductores. ¿Ha pensado en usar algo como un microcontrolador para monitorear el interruptor y luego enviar información a través de USB/RS232/RS485/Ethernet/wifi/SATA?
@Kortuk: sí, usé Crestron/Extron para eso. Pero quiere jubilarse en aquellos que son caros + otra vez otros requisitos involucrados. Así que espero hacerlo con RAW rs232 o rs485

Puede vincular los pines TX y RX a través del botón, luego hacer que su software "sondee" el estado del botón enviando un carácter fuera del puerto serie y viendo si se le devuelve ese carácter a través del puerto serie.

En ese caso, ¿no necesito usar RS-485? por ejemplo: usconverters.com
@ 89899.3K, la mayor parte de lo que pide es software. Cómo verificar si el cable está conectado podría ser sondearlo en un intervalo programado. El RS-485, no tengo idea de por qué mencionaría eso cuando la pregunta no lo menciona y la respuesta tampoco. El caso de que RS-232 sea un protocolo de comunicación y no un protocolo de monitorización de entrada es otro. ¿Has mirado en GPIO? Eso significa entrada/salida de propósito general. He visto a programadores usar GPIO para entradas y salidas digitales simples, lo que sería un interruptor.

Si conecta un lado a RTS (pin 4) a través de una gran resistencia (por ejemplo, 47k o 100k) y a RX (pin 3), y el otro lado a +9V, probablemente obtendrá una señal de "interrupción" cuando el botón se presiona, que se puede detectar en el software.

Desafortunadamente, no hay pin en el conector RS-232 que normalmente tiene un voltaje RS-232 positivo válido. Puede usar el software para enviar una condición de interrupción y usar TX (pin 2) para la segunda terminal del botón.

¿Quiere decir que debería usar RS-485 y conectar esos cables allí? por ejemplo: comprar esos? usconverters.com
@89899.3K: No, no veo cómo ayudaría RS-485. Entonces necesitaría cambiar dos líneas a la vez, lo que sería más difícil.