Estoy trabajando en un proyecto para agregar un procesamiento digital, usando Arduino, a una vieja máquina de pinball electromecánica. Específicamente, quiero detectar la activación del rodillo de puntuación en la máquina de pinball y hacer una versión digital de la puntuación.
Cuando se activa un rodillo de puntuación, se cierra un interruptor y se pone energía en la bobina del mecanismo del rodillo de puntuación. Esto avanza el carrete una posición y la alimentación se desconecta de la bobina.
El pinball usa 25V AC a través de los interruptores y las bobinas. He conectado un circuito opto-aislador a través del interruptor, y así puedo detectar cuando está encendido. Si lo muestro constantemente, por supuesto, siendo AC, obtengo un montón de ON / OFF por segundo (UK 50Hz). He programado una demora, que funciona parcialmente, pero o bien obtengo demasiadas o muy pocas lecturas digitales, en comparación con el movimiento mecánico del propio rodillo de puntuación.
Parte del problema es que dentro de la máquina de pinball, muchos objetivos diferentes, interruptores de rollover, etc. pueden desencadenar una puntuación de puntos. Estos funcionan a diferentes velocidades y encienden la bobina por diferentes períodos de tiempo. También, digamos, si el pinball gira lentamente sobre un interruptor de reinversión, ese interruptor está encendido durante mucho tiempo, en comparación con una bola en movimiento rápido que activa el interruptor durante mucho menos tiempo. Por lo tanto, no puedo confiar en el tiempo fijo. Necesito tratar una instancia en la que el interruptor esté realmente encendido como una lectura digital (o puntuación de puntos).
He intentado un puente rectificador completo, para convertir la señal de CA en CC, pero esto tampoco ayuda completamente, aunque ha mejorado. Así que estoy buscando otras ideas, por favor.