Tabla de contenido:

Conectar un dial de teléfono giratorio a un Arduino: 6 pasos (con imágenes)
Conectar un dial de teléfono giratorio a un Arduino: 6 pasos (con imágenes)

Video: Conectar un dial de teléfono giratorio a un Arduino: 6 pasos (con imágenes)

Video: Conectar un dial de teléfono giratorio a un Arduino: 6 pasos (con imágenes)
Video: Arduino desde cero en Español - Capítulo 30 - Paso a Paso (unipolar) 28BYJ-48 con Driver ULN2003 2024, Noviembre
Anonim
Interfaz de un dial de teléfono giratorio a un Arduino
Interfaz de un dial de teléfono giratorio a un Arduino
Interfaz de un dial de teléfono giratorio a un Arduino
Interfaz de un dial de teléfono giratorio a un Arduino

Un teléfono rotatorio antiguo se puede usar para varios propósitos en sus proyectos Arduino: úselo como un dispositivo de entrada novedoso, o use el Arduino para conectar un teléfono rotatorio a su computadora. Esta es una guía muy básica que describe cómo conectar el dial a un Arduino, y hacer que el número marcado pase a una computadora a través del enlace serial del Arduino.

Paso 1: quitar el dial del teléfono

Quitar el dial del teléfono
Quitar el dial del teléfono
Quitar el dial del teléfono
Quitar el dial del teléfono
Quitar el dial del teléfono
Quitar el dial del teléfono

El primer paso es quitar la unidad de marcación del teléfono. Estoy usando un teléfono GPO de algún tipo de la década de 1970. En este teléfono, el dial salió directamente, solo necesitaba darle un tirón. Si no es así, es posible que deba abrir el teléfono y averiguar cómo desconectarlo. Había cinco cables conectados a la parte posterior de la unidad de marcación. En mi teléfono, estas eran conexiones de pala regulares, así que aflojé los tornillos y los saqué. Si desea volver a ensamblar su teléfono, recuerde registrar qué cable de color va a qué conexión.

Paso 2: identificar el interruptor

Identificar el interruptor
Identificar el interruptor

Una vez que el dial está fuera, debería ser relativamente fácil ver cómo el dial convierte el movimiento giratorio en pulsos. Intente girar el dial con la mano y observe el movimiento en la parte posterior. Debería ver un interruptor que activa y desconecta un circuito rápidamente; por lo tanto, si marca el '9', el interruptor debe activarse nueve veces. vaya al número y déjelo en la cola. He documentado cómo funciona para mi teléfono en las notas de la foto a continuación. También hay un video borroso del funcionamiento del mecanismo.

Paso 3: haz el circuito

Hacer el circuito
Hacer el circuito
Hacer el circuito
Hacer el circuito

Una vez que haya encontrado el interruptor que se está haciendo y roto, debería poder identificar las conexiones siguiendo los cables de regreso a los terminales de conexión. En mi caso, los dos lados del interruptor están conectados a los dos terminales más a la izquierda. Conecta estos terminales a algunos cables de puente y ¡haz prototipos! El interruptor en mi dial está siempre encendido y está roto para cada pulso al marcar, así que usé el circuito muy simple a continuación. El pin 2 irá ALTO para cada pulso a medida que gira el dial. Cuando el teléfono no se marca, el interruptor en la unidad de marcación está cerrado (un interruptor llamado NORMALMENTE CERRADO, por razones obvias), por lo que el circuito conecta el pin 2 a tierra (que para el Arduino es BAJO). Esto se debe a que hay mucha menos resistencia a través de la resistencia de 470 ohmios que la resistencia de 10 K. Cuando se marca el teléfono, el interruptor se abre y se cierra rápidamente (para un 9, se abrirá y se cerrará nuevamente nueve veces, recuerde). Cuando el interruptor está abierto, el pin 2 no está conectado a tierra, sino que está conectado al suministro de 5 V a través de una resistencia de 10470 ohmios. Esto es interpretado por Arduino como ALTO. Si su dial tiene un interruptor NORMALMENTE ABIERTO, entonces intercambiar las posiciones de la resistencia de 10K y el dial debería funcionar.

Paso 4: Desarrolle el código

Desarrollar el Código
Desarrollar el Código

Ahora necesitamos un código para que Arduino cuente los pulsos y envíe el número total por número marcado a través del puerto serie. Mi código está a continuación. Como estamos tratando con mecánicos aquí, el suyo puede diferir. Intente jugar con la constante de rebote y la constante de 'cuánto tiempo esperamos antes de asumir que el dial ha terminado de girar'. He tratado de comentarlo tan claramente como puedo. Con suerte, es bastante simple.int needToPrint = 0; int count; int in = 2; int lastState = LOW; int trueState = LOW; long lastStateChangeTime = 0; int clear = 0; // constantsint dialHasFinishedRotatingAfterMs = 100; int debounceDelay = 10; configuración vacía () {Serial.begin (9600); pinMode (en, ENTRADA);} bucle vacío () {lectura int = digitalRead (en); if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// el dial no se está marcando, o acaba de terminar de ser marcado. if (needToPrint) {// si recién se terminó de marcar, necesitamos enviar el número por la línea de serie // y restablecer el conteo. Modificamos el conteo por 10 porque '0' enviará 10 pulsos. Serial.print (recuento% 10, DEC); needToPrint = 0; cuenta = 0; despejado = 0; }} if (leyendo! = lastState) {lastStateChangeTime = millis (); } if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - esto sucede una vez que se estabiliza if (reading! = trueState) {// esto significa que el interruptor acaba de pasar de cerrado-> abierto o viceversa. trueState = lectura; if (trueState == HIGH) {// incrementa el recuento de pulsos si es alto. contar ++; needToPrint = 1; // necesitaremos imprimir este número (una vez que el dial haya terminado de girar)}}} lastState = reading;}

Paso 5: ¡Compruebe que funciona

Verifique que funcione abriendo una ventana serial (yo uso la pantalla en una máquina Unix, es posible que desee usar Hyperterm o similar en Windows) e intente marcar algunos números. Asegúrese de que el programa serial esté configurado para leer desde el USB- > adaptador serial en su Arduino (verifique el menú Herramientas-> Puerto serial en el software Arduino si olvida cuál es), y una velocidad en baudios de 9600 bps. Debería ver el número correcto emergente cuando se marca.

Paso 6: ¡Conéctelo a algo útil

¡Conéctelo a algo útil!
¡Conéctelo a algo útil!

Se me ocurrió un archivo Quartz Composer en mi Mac para tomar la entrada y representarla bien en la pantalla. Una vez que está en la máquina como datos en serie, puedes hacer cualquier cosa con él. ¡Esperando escuchar tus ideas! Se me ocurrirá un video 'en acción' e imprimiré los números en la pantalla tan pronto como pueda conseguir a alguien. sostener la cámara por mí, ojalá tuviera tres manos.

Recomendado: