Sommario:

Interfaccia una manopola telefonica con un Arduino: 6 passaggi (con immagini)
Interfaccia una manopola telefonica con un Arduino: 6 passaggi (con immagini)

Video: Interfaccia una manopola telefonica con un Arduino: 6 passaggi (con immagini)

Video: Interfaccia una manopola telefonica con un Arduino: 6 passaggi (con immagini)
Video: Control ANY Grow Light With AC Infinity Controller 69! 3 Ways! 2025, Gennaio
Anonim

Un vecchio telefono rotante può essere utilizzato per una serie di scopi nei tuoi progetti Arduino: usalo come un nuovo dispositivo di input o usa Arduino per interfacciare un telefono rotante al tuo computer. Questa è una guida molto semplice che descrive come interfacciare il quadrante ad un Arduino e ottenere il numero composto passato in un computer tramite il collegamento seriale di Arduino.

Passaggio 1: rimuovere il quadrante dal telefono

Il primo passo è rimuovere l'unità di composizione dal telefono. Sto usando un telefono GPO di qualche tipo degli anni '70. Su questo telefono, il quadrante è uscito direttamente - avevo solo bisogno di dargli uno strattone. In caso contrario, potrebbe essere necessario aprire il telefono e capire come toglierlo. C'erano cinque cavi collegati al retro dell'unità di composizione. Sul mio telefono, questi erano normali collegamenti a forcella, quindi ho allentato le viti e le ho tirate fuori. Se vuoi riassemblare il tuo telefono, ricordati di registrare quale filo di colore va a quale connessione.

Passaggio 2: identificare l'interruttore

Una volta che il quadrante è fuori, dovrebbe essere relativamente facile vedere come il quadrante converte il movimento rotatorio in impulsi. Prova a girare il quadrante a mano e osservando il movimento sul retro. Dovresti vedere un interruttore che crea e interrompe rapidamente un circuito, quindi se componi "9", l'interruttore dovrebbe attivarsi nove volte. Per quelli di voi che potrebbero non aver mai usato un quadrante rotante prima - ricordate che la composizione avviene solo quando lasciate vai al numero e lascialo scorrere indietro. Ho documentato come funziona per il mio telefono nelle note della foto qui sotto. C'è anche un video sfocato del meccanismo in funzione.

Passaggio 3: crea il circuito

Una volta trovato l'interruttore che è stato creato e rotto, dovresti essere in grado di identificare le connessioni seguendo i fili fino ai terminali di connessione. Nel mio caso, i due lati dell'interruttore sono collegati ai due terminali più a sinistra. Collega questi terminali ad alcuni ponticelli e inizia la prototipazione! L'interruttore nel mio quadrante è sempre acceso ed è rotto per ogni impulso durante la composizione, quindi ho usato il circuito molto semplice di seguito. Il pin 2 andrà ALTO per ogni impulso mentre il quadrante ruota. Quando il telefono non viene composto, l'interruttore nell'unità di composizione è chiuso (un cosiddetto interruttore NORMALMENTE CHIUSO, per ovvi motivi) quindi il circuito collega il pin 2 a massa (che per Arduino è BASSO). Questo perché c'è molta meno resistenza attraverso il resistore da 470 ohm rispetto al resistore da 10K. Quando il telefono viene composto, l'interruttore si apre e si chiude rapidamente (per un 9, si aprirà e si chiuderà di nuovo nove volte, ricorda). Quando l'interruttore è aperto, il pin 2 non è collegato a massa, ma è collegato all'alimentazione a 5 V tramite una resistenza di 10470 ohm. Questo viene interpretato da Arduino come ALTO. Se il tuo quadrante ha un interruttore NORMALMENTE APERTO, scambiare le posizioni del resistore da 10K e il quadrante dovrebbe fare il trucco.

Passaggio 4: sviluppare il codice

Ora abbiamo bisogno di un codice per l'Arduino per contare gli impulsi e inviare il numero totale per numero composto attraverso la porta seriale. Il mio codice è sotto. Dato che qui abbiamo a che fare con la meccanica, la tua potrebbe differire. Prova a giocare con la costante antirimbalzo e la costante "quanto tempo aspettiamo prima di presumere che il quadrante abbia finito di ruotare". Ho cercato di commentarla nel modo più ordinato possibile. Si spera che sia abbastanza semplice.int needToPrint = 0;int count;int in = 2;int lastState = LOW;int trueState = LOW;long lastStateChangeTime = 0;int cleared = 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) { // il quadrante non viene composto o ha appena terminato di essere composto. if (needToPrint) { // se ha appena finito di essere composto, dobbiamo inviare il numero lungo la // linea seriale e azzerare il conteggio. Modifichiamo il conteggio di 10 perché '0' invierà 10 impulsi. Serial.print(count % 10, DEC); bisognoToPrint = 0; conteggio = 0; cancellato = 0; } } if (lettura != lastState) { lastStateChangeTime = millis(); } if ((millis() - lastStateChangeTime) > debounceDelay) { // debounce - questo accade una volta stabilizzato if (reading != trueState) { // questo significa che l'interruttore è appena passato da closed->open o viceversa. trueState = lettura; if (trueState == HIGH) { // incrementa il conteggio degli impulsi se è aumentato. contare++; bisognoToPrint = 1; // dovremo stampare questo numero (una volta che il quadrante ha finito di ruotare) } } } lastState = reading;}

Passaggio 5: verifica che funzioni

Verifica che funzioni aprendo una finestra seriale (uso lo schermo su una macchina unix, potresti voler usare Hyperterm o simili su Windows) e prova a comporre alcuni numeri. Assicurati che il programma seriale sia impostato per leggere dall'USB- > adattatore seriale nel tuo Arduino (controlla il menu Strumenti-> Porta seriale nel software Arduino se dimentichi di cosa si tratta) e una velocità di trasmissione di 9600 bps. Dovresti vedere apparire il numero corretto mentre viene composto.

Passaggio 6: aggancialo a qualcosa di utile

Ho creato un file Quartz Composer sul mio Mac per prendere l'input e renderlo piacevolmente sullo schermo. Una volta che è nella macchina come dati seriali, puoi farci qualsiasi cosa. In attesa di sentire le tue idee! Farò un video "in azione" e stamperò i numeri sullo schermo non appena riesco a trovare qualcuno tenere la fotocamera per me - vorrei avere tre mani.