Estoy trabajando en hacer un controlador de máquina expendedora personalizado usando un Arduino como maestro. El aceptador de billetes que estoy usando implementa el protocolo de comunicación MDB, que es (creo) una variante de RS-485.
Las especificaciones de MDB dicen que la comunicación es un sistema de bucle actual. ( enlace sección 4.2 página 53) He enviado con éxito el comando de reinicio utilizando un puerto serie de Arduino y un transistor para manejar la corriente. Sin embargo, no estoy recibiendo ninguna información del periférico cuando debería recibir ACK (0x00).
Tengo un transistor con la base elevada a 5v y conectada directamente a la línea de transmisión del periférico. El colector está conectado a 5v y el emisor está conectado al pin Rx de Arduino y se tira a tierra con una resistencia de 1k. El terreno de Arduino está ligado a las comunicaciones comunes en el periférico. De acuerdo con la configuración recomendada en la página 60 de la hoja de especificaciones de MDB, esta configuración es lo que debería funcionar. Sin embargo, todavía no estoy recuperando ningún dato del periférico.
La única razón por la que sé que el restablecimiento está funcionando es porque el LED de estado se restablece y los motores arrancan.
Si alguien pudiera ver el circuito recomendado de la hoja de especificaciones de MDB y recomendar una configuración nueva o mejorada o simplemente señalar cualquier cosa que haya omitido, sería genial.