Índice:
- Etapa 1: remover a discagem do telefone
- Etapa 2: identificar o switch
- Etapa 3: faça o circuito
- Etapa 4: Desenvolva o Código
- Etapa 5: verifique se funciona
- Etapa 6: conecte-o a algo útil
Vídeo: Interface de um dial de telefone rotativo para um Arduino: 6 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:40
Um telefone rotativo antigo pode ser usado para vários fins em seus projetos do Arduino - use-o como um novo dispositivo de entrada ou use o Arduino para fazer a interface de um telefone rotativo com o seu computador. Este é um guia muito básico que descreve como fazer a interface do dial para um Arduino e obter o número discado passado para um computador através do link serial do Arduino.
Etapa 1: remover a discagem do telefone
O primeiro passo é remover a unidade de discagem do telefone. Estou usando um telefone GPO de algum tipo da década de 1970. Neste telefone, o botão saiu imediatamente - eu só precisava dar um puxão. Do contrário, talvez seja necessário abrir o telefone e descobrir como retirá-lo. Havia cinco cabos conectados à parte traseira da unidade de discagem. No meu telefone, essas eram conexões de espada regulares, então eu afrouxei os parafusos e os retirei. Se você quiser remontar o seu telefone, lembre-se de registrar a cor do fio que vai para qual conexão.
Etapa 2: identificar o switch
Uma vez que o dial está fora, deve ser relativamente fácil ver como o dial converte o movimento giratório em pulsos. Experimente girar o dial com a mão e observar o movimento na parte de trás. Você deve ver uma chave abrindo e interrompendo um circuito rapidamente - então, se você discar '9', a chave deve engatar nove vezes. Para aqueles de vocês que nunca usaram um botão giratório antes - lembre-se de que a discagem só acontece quando você permite vá para o número e deixe-o voltar. Eu documentei como ele funciona para o meu telefone nas notas da foto abaixo. Há também um vídeo borrado do mecanismo funcionando.
Etapa 3: faça o circuito
Depois de encontrar a chave que está sendo feita e quebrada, você deve ser capaz de identificar as conexões seguindo os fios de volta aos terminais de conexão. No meu caso, os dois lados do switch estão conectados aos dois terminais mais à esquerda. Ligue esses terminais a alguns fios de ligação e faça um protótipo! A chave em meu dial está sempre ligada e é interrompida para cada pulso ao discar, então usei o circuito muito simples abaixo. O pino 2 ficará ALTO para cada pulso conforme o dial gira. Quando o telefone não está sendo discado, a chave na unidade de discagem é fechada (chamada de chave NORMALMENTE FECHADA, por motivos óbvios), de modo que o circuito conecta o pino 2 ao aterramento (que para o Arduino é BAIXO). Isso ocorre porque há muito menos resistência no resistor de 470 ohms do que no resistor de 10K. Quando o telefone está sendo discado, a chave abre e fecha rapidamente (para um 9, ele abrirá e fechará novamente nove vezes, lembre-se). Quando a chave está aberta, o pino 2 não está conectado ao aterramento - em vez disso, está conectado à fonte de 5 V por meio de uma resistência de 10470 ohms. Isso é interpretado pelo Arduino como um ALTO. Se o seu dial tiver uma chave NORMALLY OPEN, trocar as posições do resistor de 10K e do dial deve resolver.
Etapa 4: Desenvolva o Código
Agora precisamos de algum código para o Arduino contar os pulsos e enviar o número total por número discado de volta pela porta serial. Meu código está abaixo. Como estamos lidando com mecânica aqui, a sua pode ser diferente. Tente brincar com a constante de debounce e a constante de 'quanto tempo esperamos antes de assumir que o dial terminou de girar'. Tentei comentar da forma mais organizada que pude. Esperançosamente, é bem simples.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; void setup () {Serial.begin (9600); pinMode (in, INPUT);} void loop () {int reading = digitalRead (in); if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// o dial não está sendo discado, ou acabou de ser discado. if (needToPrint) {// se ele acabou de ser discado, precisamos enviar o número pela linha // serial e zerar a contagem. Modificamos a contagem em 10 porque '0' enviará 10 pulsos. Serial.print (contagem% 10, DEC); needToPrint = 0; contagem = 0; apagado = 0; }} if (lendo! = lastState) {lastStateChangeTime = millis (); } if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - isso acontece uma vez que é estabilizado if (reading! = trueState) {// isso significa que o switch acabou de sair de fechado-> aberto ou vice-versa. trueState = leitura; if (trueState == HIGH) {// incrementa a contagem de pulsos se estiver alto. contagem ++; needToPrint = 1; // precisaremos imprimir este número (assim que o dial terminar de girar)}}} lastState = reading;}
Etapa 5: verifique se funciona
Verifique se funciona abrindo uma janela serial (eu uso a tela em uma máquina Unix, você pode querer usar Hyperterm ou similar no Windows) e tente discar alguns números. Certifique-se de que o programa serial está configurado para ler a partir do USB- > adaptador serial em seu Arduino (verifique o menu Ferramentas-> Porta serial no software Arduino se você esquecer o que é) e uma taxa de transmissão de 9600 bps. Você deve ver o número correto aparecer enquanto é discado.
Etapa 6: conecte-o a algo útil
Eu criei um arquivo Quartz Composer no meu Mac para pegar a entrada e renderizá-la bem na tela. Uma vez na máquina como dados seriais, você pode fazer qualquer coisa com eles. Esperando ouvir suas idéias! Farei um vídeo "em ação" e imprimirei os números na tela assim que conseguir alguém para segurar a câmera para mim - gostaria de ter três mãos.
Recomendado:
Telefone móvel rotativo estilo retro: 4 etapas (com fotos)
Telefone móvel com mostrador rotativo retro: este projeto foi impulsionado tanto pela necessidade prática quanto pelo desejo de fazer algo divertido. Como a maioria das famílias modernas, deixamos de ter uma " casa " telefone (com fio) há muitos anos. Em vez disso, temos um cartão SIM extra associado ao nosso " antigo " casa num
Transforme um telefone rotativo em um rádio e viaje no tempo: 5 etapas (com fotos)
Transforme um telefone rotativo em um rádio e viaje no tempo: Transformei um telefone rotativo em um rádio! Pegue o telefone, escolha um país e uma década e ouça uma ótima música! Como funcionaEste telefone rotativo tem um microcomputador embutido (um Raspberry Pi), que se comunica com o radiooooo.com, uma rádio da web. O
Smart Dial - um telefone inteligente tradicional com correção automática: 8 etapas
Smart Dial - um telefone inteligente tradicional com autocorreção: O Smart Dial é um telefone inteligente com autocorreção criado para idosos com necessidades especiais e permite que os idosos disquem diretamente de telefones tradicionais aos quais estão acostumados. Foi apenas por meio do voluntariado em um centro de atendimento a idosos local que eu
Suporte de telefone para carro de madeira para carregamento sem fio do Google Home: 7 etapas (com imagens)
Suporte para telefone automotivo de madeira de carregamento sem fio do Google Home: Bem-vindo! Você já quis fazer uma pergunta ao Google enquanto dirigia sem abrir o telefone? O Google Assistente é um ótimo aplicativo com recursos interessantes, mas requer que você desbloqueie o telefone e abra o aplicativo ou mantenha pressionado o botão home para
Como transformar seu telefone celular LG EnV 2 em um modem dial-up portátil para seu laptop (ou desktop): 7 etapas
Como transformar seu telefone celular LG EnV 2 em um modem dial-up portátil para seu laptop (ou desktop): Todos nós, em algum momento, tivemos a necessidade de usar a Internet onde simplesmente não era possível, como no carro , ou nas férias, onde cobram uma quantia cara de dinheiro por hora para usar seu wi-fi. finalmente, descobri uma maneira simples de obter