Índice:
- Etapa 1: vá buscar as coisas
- Etapa 2: dissecar o telefone
- Etapa 3: determinar o que os fios fazem
- Etapa 4: Conecte o discador ao chip PIC
- Etapa 5: monte o código
- Etapa 6: Teste
- Etapa 7: Vá além
Vídeo: Interface PIC do discador giratório: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Encontrei-me com uma abundância de telefones rotativos. Na verdade, eles estão em todos os lugares que eu olho. Na esperança de um dia ver menos deles, comecei a desmontá-los e reutilizá-los para outros fins.
Por alguma razão, coloquei no meu cérebro que seria uma boa ideia fazer a interface do controle giratório com um chip PIC. Só consigo pensar em alguns usos vagos para ele no momento e nenhum é particularmente útil, mas espero fazer algo legal com isso no futuro.
Etapa 1: vá buscar as coisas
Você precisará de: 1 - Telefone rotativo3 - resistores de 220 ohms2 - capacitores de 0,1uF 2 - resistor de 20K (pode substituir qualquer coisa entre 10K e 47K) 2 - LEDs1 - placa de desenvolvimento PIC (usei o ambiente de desenvolvimento Micro Básico) 1 - Ressonador de 20 MHz ou crystal1 - Breadboard1 - Fonte de alimentação de 5V1 - Um pé ou mais de fio de conexão1 - Chave de fenda1 - Decapador de fio
Etapa 2: dissecar o telefone
Abra o seu telefone rotativo. No interior, você notará algumas partes básicas; o botão giratório, a campainha, dois conectores, o botão de gancho e o circuito básico que geralmente é envolto em uma caixa de junção de metal.
Haverá quatro fios que vão do discador rotativo até essa coisa parecida com uma caixa de junção. Os fios devem ser mantidos no lugar por pouco mais do que parafusos apertados. Afrouxe os parafusos e desconecte os fios. Depois disso, desconecte o discador rotativo do próprio telefone.
Etapa 3: determinar o que os fios fazem
Conecte dois LEDs conforme mostrado no diagrama abaixo.
Os dois fios brancos devem ser o par que fecha a chave que permite saber quando o dial é girado. O fio azul e verde deve ser o par que permite saber qual número foi discado. Assim, quando você gira o dial, o LED conectado aos fios brancos deve acender, e quando você solta o dial, o LED conectado aos fios azul e verde deve piscar e desligar tantas vezes quanto o número que você discado (veja o vídeo). Por exemplo, se você discar 8, o LED conectado aos fios verde e azul irá desligar e ligar 8 vezes. Isso acontece porque uma forma de discar um número de telefone é interromper rapidamente a conexão o número de vezes para o dígito que você está tentando discar. Portanto, novamente, para discar um 8, você teria que interromper rapidamente a conexão 8 vezes.
Etapa 4: Conecte o discador ao chip PIC
Conecte o discador rotativo ao chip PIC, conforme mostrado no diagrama. Observe que estou lendo no estado do discador rotativo usando o tempo RC. Em outras palavras, o chip PIC está contando o número de vezes que um capacitor leva para descarregar (que muda quando a resistência é adicionada).
É aí que entra o resistor de 20K. Adicioná-lo à entrada permite uma diferenciação clara entre o sinal de uma conexão de chave rotativa fechada e aberta.
Etapa 5: monte o código
Para programar o chip, usei o ambiente de desenvolvimento MBasic disponível na Basic Micro. MBasic, simplesmente, é uma variação do Basic projetada para uso com chips PIC. É facilmente conversível em uma linguagem mais universal (útil). O código é essencialmente determinando quando alguém girou o dial e então faz a detecção de borda no sinal (determinando as transições baixo-alto) até que o dial volte ao seu estado inicial. Depois de contar o número de vezes que ele mede uma transição de sinal, ele pisca o LED de acordo. Por exemplo, se você discar 3, o PIC contará três transições baixo-alto e piscará um LED 3 vezes. O LED, como você pode ter inferido, é desnecessário para que isso funcione e está lá apenas para fornecer um feedback visível. Você pode substituir qualquer dispositivo de saída que julgar necessário. ********************* Aqui está algum código: ********************* CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain: countclicks = 0repvar = 0'sets / resets valueshigh B2rctime B2, 1, startcountincountclicks = 0if startcountin> 10 então goto countmeup 'verifica vai para a sub-rotina se hasgoto main '================ countmeup: high B1rctime B1, 1, clacker'sets compare valuegoto countmeuploop' =========== ===== countmeuploop: high B1rctime B1, 1, clicker'checks contando valuelargefig = clacker + 100's define um valor para o limite que será maior 'do que 0, mas menor do que os possíveis valores pin-highif largefig <clicker thencountclicks = countclicks + 1endif'adiciona 1 valor toda vez que uma transição baixa para alta é gravada alta B2rctime B2, 1, startcountinif startcountin <10 thenif countclicks> 0 thengoto blinkelsegoto mainendifendif'verifica para ver se o dial voltou para seu i estado inicial'se tiver e um número for discado vai para a rotina de LED 'caso contrário, se nenhum número for discado, vai para mainclacker = clicker'redefine o valor de comparação para o valor do pino atualegoto contagemmeuploop'no pausas AT ALL nesta rotina ! '================ pisca: repvar = repvar + 1'conta cada repetição desta rotina alta B3pausa 1000baixo B3pausa 1000'pisca o LEDif repvar = countclicks thenrepvar = 0goto mainendif'se o repetições igual ao número de vezes que o LED deve piscar, então ele volta para a rotina principal - para o pisca-pisca
Etapa 6: Teste
Se você fez tudo igual a mim, deve funcionar (veja o vídeo).
Se não funcionar, certifique-se de que conectou tudo corretamente e que o código foi copiado corretamente. Além disso, certifique-se de que seu ressonador (ou cristal) seja de 20 MHz. Se você escreveu seu próprio código, certifique-se de que não haja pausas na rotina que verificam as transições baixo-alto.
Etapa 7: Vá além
Descubra algum outro tipo de uso para o botão giratório além de piscar um LED.
Recomendado:
Discador analógico DIY para teclado USB: 4 etapas
Diálogo analógico DIY para teclado USB: Fiz este projeto apenas por diversão, mas essa coisa funciona como um teclado normal com tudo. Divirta-se
Introdução à interface do sensor I2C ?? - Interface do seu MMA8451 usando ESP32s: 8 etapas
Introdução à interface do sensor I2C ?? - Faça a interface do seu MMA8451 usando ESP32s: neste tutorial, você aprenderá tudo sobre como iniciar, conectar e fazer com que o dispositivo I2C (acelerômetro) funcione com o controlador (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Botão de interface de interface - Noções básicas do Arduino: 3 etapas
Botão de interface - Arduino Básico: O botão de pressão é um componente que conecta dois pontos em um circuito quando você o pressiona. Quando o botão de pressão está aberto (não pressionado), não há conexão entre as duas pernas do botão de pressão, então o pino é conectado a 5 volts (através do pull-up resi
Como usar o motor de passo como codificador giratório e display OLED para etapas: 6 etapas
Como usar o motor de passo como codificador giratório e display OLED para etapas: Neste tutorial, aprenderemos como rastrear as etapas do motor de passo no display OLED. Assista a um vídeo de demonstração. O crédito do tutorial original vai para o usuário do youtube " sky4fly "
Como interpretar a direção de rotação de um seletor giratório digital com um PIC: 5 etapas
Como interpretar a direção de rotação de uma chave rotativa digital com um PIC: O objetivo deste Instructable é ilustrar como fazer a interface de uma chave rotativa digital (codificada em quadratura) com um microcontrolador. Não se preocupe, vou explicar o quê? Codificado em quadratura? significa para nós. Esta interface e o software que o acompanha irão