Tabla de contenido:
- Paso 1: quitar el dial del teléfono
- Paso 2: identificar el interruptor
- Paso 3: haz el circuito
- Paso 4: Desarrolle el código
- Paso 5: ¡Compruebe que funciona
- Paso 6: ¡Conéctelo a algo útil
Video: Conectar un dial de teléfono giratorio a un Arduino: 6 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:45
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
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
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
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
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
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:
Teléfono móvil con dial giratorio de estilo retro: 4 pasos (con imágenes)
Teléfono móvil de dial giratorio de estilo retro: este proyecto fue impulsado tanto por la necesidad práctica como por el deseo de hacer algo divertido. Como la mayoría de las familias modernas, dejamos de tener un verdadero " hogar " teléfono (con cable) hace muchos años. En cambio, tenemos una tarjeta SIM adicional asociada con nuestro " antiguo " número de casa
Convierta un teléfono giratorio en una radio y viaje en el tiempo: 5 pasos (con imágenes)
Convierta un teléfono de disco en una radio y viaje a través del tiempo: ¡pirateé un teléfono de disco en una radio! ¡Levanta el teléfono, elige un país y una década, y escucha buena música! Cómo funciona Este teléfono de disco tiene una microcomputadora incorporada (una Raspberry Pi), que se comunica con radiooooo.com, una radio web. Los
Control de volumen de PC con dial giratorio vintage: 7 pasos (con imágenes)
Control de volumen de PC Vintage Rotary Phone Dial: si eres como yo, te encontrarás cambiando el volumen de tu computadora con bastante frecuencia. Algunos videos suenan más fuertes que otros, a veces desea que el volumen de su computadora esté silenciado mientras escucha podcasts o música, y es posible que deba silenciar
Estuche para teléfono giratorio Raspberry Pi: 10 pasos (con imágenes)
Estuche para teléfono rotativo Raspberry Pi: Estaba buscando un proyecto divertido para mi Raspberry Pi y decidí que un estuche sería divertido. Encontré un viejo teléfono de disco y lo convertí en un estuche para mi Pi. Necesitaba piezas por un valor aproximado de $ 40, es posible que pueda hacerlo por menos. Todo el proyecto tomó
Spooky Teddy - Silla auto-mecedora con motor Arduino y cabezal giratorio: 11 pasos (con imágenes)
Spooky Teddy - Silla auto-mecedora con Arduino y cabezal giratorio: Spooky Teddy es una decoración de Halloween de 2 partes. La primera parte es el osito de peluche que tiene un mecanismo impreso en 3d que puede girar con un Arduino UNO y un solenoide. La segunda parte es una silla auto-mecedora impulsada por un Arduino nano y un solenoide adjunto