Tabla de contenido:
- Paso 1: Ve a buscar cosas
- Paso 2: disecciona el teléfono
- Paso 3: Determine qué hacen los cables
- Paso 4: conecte el marcador al chip PIC
- Paso 5: Reúna el código
- Paso 6: Prueba
- Paso 7: Ve más allá
Video: Interfaz PIC del marcador rotatorio: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Me he encontrado con una gran cantidad de teléfonos de disco. De hecho, están en todas partes donde miro. Con la esperanza de que algún día pueda ver menos de ellos, comencé a desarmarlos y reutilizar las partes para otros fines.
Por alguna razón, se me ocurrió que la interconexión del control giratorio con un chip PIC sería una buena idea. Solo puedo pensar en un par de usos vagos para él en este momento y ninguno es particularmente útil, pero espero hacer algo bueno con esto en el futuro.
Paso 1: Ve a buscar cosas
Necesitará: 1 - Teléfono giratorio 3 - Resistencias de 220 ohmios 2 - Condensadores de 0,1 uF 2 - Resistencia de 20 K (puede sustituir cualquier cosa entre 10 K y 47 K) 2 - LED 1 - Placa de desarrollo PIC (utilicé el entorno de desarrollo Micro básico) 1 - Resonador de 20 MHZ o cristal1 - Placa de pruebas1 - Fuente de alimentación de 5 V1 - Un pie o más de cable de conexión1 - Destornillador1 - Pelacables
Paso 2: disecciona el teléfono
Abre tu teléfono de disco. En el interior notarás las pocas partes básicas; el dial giratorio, el timbre, dos enchufes, el interruptor de gancho y el circuito básico que generalmente está encerrado en una caja de conexiones de metal.
Habrá cuatro cables que van desde el marcador giratorio a esta cosa parecida a una caja de conexiones. Los cables deben mantenerse en su lugar con poco más de tornillos apretados. Afloje los tornillos y desconecte los cables. Después de eso, desconecte el marcador rotatorio del teléfono.
Paso 3: Determine qué hacen los cables
Conecte dos LED como se muestra en el diagrama a continuación.
Los dos cables blancos deben ser el par que cierra el interruptor que le permite saber cuándo se gira el dial. El cable azul y verde debe ser el par que le permita saber qué número se marcó. Como tal, cuando gira el dial, el LED conectado a los cables blancos debe encenderse, y cuando suelta el dial, el LED conectado a los cables azul y verde debe parpadear tantas veces como el número que usted marcado (ver video). Por ejemplo, si marca 8, el LED conectado al cable verde y azul se apagará y encenderá 8 veces. Esto sucede porque una forma de marcar un número de teléfono es interrumpir rápidamente la conexión la cantidad de veces para el dígito que está intentando marcar. Entonces, nuevamente, para marcar un 8, tendría que romper rápidamente la conexión 8 veces.
Paso 4: conecte el marcador al chip PIC
Conecte el marcador giratorio al chip PIC como se muestra en el diagrama. Observe que estoy leyendo en el estado del marcador rotatorio mediante el uso de temporización RC. En otras palabras, el chip PIC está contando la cantidad de veces que tarda un capacitor en descargarse (que cambia cuando se agrega resistencia).
Ahí es donde entra la resistencia de 20K. Agregar esto a la entrada permite una clara diferenciación entre la señal de una conexión de interruptor giratorio cerrada y abierta.
Paso 5: Reúna el código
Para programar el chip, utilicé el entorno de desarrollo MBasic disponible en Basic Micro. MBasic, simplemente, es una variación de Basic diseñada para usarse con chips PIC. Es fácilmente convertible a un lenguaje más universal (útil). Básicamente, el código determina cuándo alguien ha girado el dial y luego detecta los bordes de la señal (determinando las transiciones bajo-alto) hasta que el dial retrocede a su estado inicial. Después de contar el número de veces que mide una transición de señal, el LED parpadea en consecuencia. Por ejemplo, si marca 3, el PIC contará tres transiciones bajo-alto y luego parpadeará un LED 3 veces. El LED, como puede haber inferido, es innecesario para que esto funcione y solo está ahí para brindarle retroalimentación visible. Puede sustituir cualquier dispositivo de salida que considere necesario. ********************* Aquí hay un código: ******************** CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain: countclicks = 0repvar = 0'sets / reset valueshigh B2rctime B2, 1, startcountincountclicks = 0 si startcountin> 10 entonces goto countmeup 'comprueba y verifica si el dial se ha girado para ver si va a la subrutina si tiene goto main '================ countmeup: high B1rctime B1, 1, clacker'sets compare valuegoto countmeuploop' =========== ===== countmeuploop: high B1rctime B1, 1, clicker'checks count valuelargefig = clacker + 100'establece un valor para el umbral que será mayor 'que 0 pero menor que los posibles valores de pin-high si largefig <clicker luegocountclicks = countclicks + 1endif 'agrega 1 valor cada vez que se registra una transición de baja a alta. High B2rctime B2, 1, startcountinif startcountin <10 thenif countclicks> 0 thengoto blinkelsegoto mainendifendif'checks para ver si el dial ha retrocedido a su i estado inicial 'si lo tiene y se marcó un número, va a la rutina de LED' de lo contrario, si no se marcó ningún número, va a mainclacker = clicker 'restablece el valor de comparación al valor del pin actual goto countmeuploop'no se detiene EN TODO en esta rutina ! '================ blinker: repvar = repvar + 1' cuenta cada repetición de esta rutina high B3pause 1000low B3pause 1000 'parpadea el LED si repvar = countclicks thenrepvar = 0goto mainendif'if the las repeticiones equivalen al número de veces que el LED debería parpadear y luego vuelve a la rutina principal.
Paso 6: Prueba
Si hiciste todo lo mismo que yo, debería funcionar (ver video).
Si no funciona, asegúrese de haber cableado todo correctamente y de que el código se haya copiado correctamente. Además, asegúrese de que su resonador (o cristal) sea de 20 MHZ. Si escribió su propio código, asegúrese de que no haya pausas en la rutina que comprueba las transiciones de bajo a alto.
Paso 7: Ve más allá
Averigüe algún otro uso para el dial giratorio que no sea parpadear un LED.
Recomendado:
Reemplazo del codificador rotatorio ISDT Q6: 4 pasos
Reemplazo del codificador rotatorio ISDT Q6: este tutorial es para ayudar a las personas cuyos codificadores Q6 se han estropeado con el tiempo y ahora no se pueden utilizar. El mío comenzó a desplazarse en direcciones aleatorias y erráticas, e incluso después de volver a aflojar las juntas de soldadura y limpiar el codificador con alcohol, todavía era disfuncional
Introducción a la interfaz del sensor I2C - Interfaz de su MMA8451 usando ESP32s: 8 pasos
Introducción a la interfaz del sensor I2C - Interfaz de su MMA8451 usando ESP32s: en este tutorial, aprenderá todo sobre cómo iniciar, conectar y hacer que el dispositivo I2C (acelerómetro) funcione con el controlador (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Luces del marcador Arduino: 3 pasos
Luces de marcador de Arduino: este es un proyecto que hice para una sección de un marcador de esgrima. Quería algo que sonara y se iluminara. Pronto me di cuenta de que técnicamente se podía usar esto para muchos deportes diferentes y no solo para la esgrima. Lo que realmente hace el proyecto, yo
Tutorial del kit de codificador rotatorio: 5 pasos
Tutorial del kit de codificador rotatorio: Descripción: Este kit de codificador rotatorio se puede utilizar para detectar la posición y la velocidad del motor. Es un kit muy simple que consta de un sensor de haz óptico (optointerruptor, fototransistor) y un trozo de disco ranurado. Se puede conectar a cualquier microcontro
Interfaz del sensor PIR con el microcontrolador Pic: 5 pasos
Interfaz del sensor PIR con el microcontrolador Pic: interfaz del sensor PIR con el microcontrolador pic y guía paso a paso