Leer un dial rotatorio con Arduino.

La idea es transformar un antiguo telefono analogico en movil con un Arduino y un shield GSM/GPRS.

telefono heraldo

El primer paso que tenemos que dar es entender como se decodifican los pulsos del dial rotativo de este tipo de telefonos en numeros que podamos utilizar.

dial

El modelo al que vamos a relizar la modificacion es un Heraldo de Telefonica, el dial con el que cuenta este aparato tiene 5 cables. Desconozco la funcion de los 3 restantes pero los que interesan para el caso son los dos que conectan las pestañas que se remarcan en la captura.

patillas

Siempre estan en contacto por lo que al leer obtendremos un circuito cerrado. Cuando rotamos el dial, dependiendo de que numero queramos codificar, se realizaran un numero determinado de pulsos en forma de aperturas del circuito que podremos contar con el arduino.

La codificacion es dos pulsos multiplicados por el numero seleccionado. Es decir, dos pulsos representaran al 1, cuatro al 2, seis al 3, …. .

Por otra parte y para asegurar una correcta lectura del estado de las pestañas debemos añadir al circuito una resistencia de pull-down tal y como se aprecia en el esquema.

esquema dial

Por ultimo este es el sketch para arduino que permite contar y mostrar los numeros obtenidos de los pulsos. En cada ciclo de funcionamiento interpreta el digito codificado por una rotacion y lo acumula en un array, cuando completa los 9 digitos los envia por el puerto seria para que podamos verificar si lo ha hecho correctamente.

 

 

4 pensamientos en “Leer un dial rotatorio con Arduino.

  1. johny

    hola un cordial saludo para usted, quisiera que me ayude con una duda sobre este este proyecto, es decir no se cual son las salidas, si marco con el dial uno debe salir una salida de switch?

  2. kurtsik Autor

    Hola Johny.

    Son dos clicks por numero, es decir: si lees 4 clicks representara el numero 2, si lees 10 clicks representara el numero 5, … .

    Un saludo.

  3. johny

    HOLA UN CORDIAL SALUDO PARA USTED, yo necesito sacar 10 salidas degitales para yo confirmar. al marcar con el radial, por ejemplo, con el radial marco el uno y automáticamente me salga una salida, me explico esa dicha salida conecto un led y ahi yo confirmo que me esta marcando bien, en eso quisiera que me ayude para programar en arduino.

    int codificarPulsos(int pulsos){
    switch (pulsos){
    case 2:
    int ledPin = 1;
    pinMode(ledPin1,OUTPUT); // El p1n 1 será una salida digital
    void loop()
    digitalWrite(ledPin1, HIGH); // Enciende el LED
    delay(1000); // Pausa de 1 segundo
    digitalWrite(ledPin1, LOW); // Apaga el LED
    delay(1000); // Pausa de 1 segundo

    al cargar me sale error en eso tengo problema

  4. johny

    Perdone por el comentario interior, ya tengo claro que cada giro rotatorio el led del mismo circuito arduino me indica, lo que pasa es que quiero sacar salidas por los pines DIGITAL PWM, me explico por ejemplo si giro numero 8 me salga una salida por el pin 8 y asi con los demas pines, espero su cordial respuesta gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *