Cuprins:
- Pasul 1: Eliminați cadranul de pe telefon
- Pasul 2: Identificați comutatorul
- Pasul 3: Faceți circuitul
- Pasul 4: Elaborați codul
- Pasul 5: Verifică funcționează
- Pasul 6: Cuplați-l în ceva util
Video: Interfața unui apel telefonic rotativ cu un Arduino: 6 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:47
Un telefon rotativ vechi poate fi utilizat în mai multe scopuri în proiectele dvs. Arduino - utilizați-l ca un dispozitiv de intrare nou sau utilizați Arduino pentru a interfața un telefon rotativ cu computerul dvs. Acesta este un ghid foarte de bază care descrie modul de interfață a discului către un Arduino și obțineți numărul apelat trecut într-un computer prin link-ul serial al Arduino.
Pasul 1: Eliminați cadranul de pe telefon
Primul pas este să scoateți unitatea de apelare din telefon. Folosesc un fel de telefon GPO din anii 1970. Pe acest telefon, cadranul a ieșit direct - trebuia doar să-l trag. Dacă nu, este posibil să trebuiască să deschideți telefonul și să aflați cum să îl scoateți. Există cinci cabluri conectate la partea din spate a unității de apelare. Pe telefonul meu, acestea erau conexiuni regulate, așa că am slăbit șuruburile și le-am scos. Dacă doriți să vă reasamblați telefonul, nu uitați să înregistrați ce fir de culoare merge la ce conexiune.
Pasul 2: Identificați comutatorul
Odată ce cadranul este afară, ar trebui să fie relativ ușor să vedeți cum cadranul convertește mișcarea rotativă în impulsuri. Încercați să rotiți cadranul manual și să urmăriți mișcarea din spate. Ar trebui să vedeți un comutator care face și întrerupe rapid un circuit - deci, dacă formați „9”, comutatorul ar trebui să se acționeze de nouă ori. Mergeți numărul și lăsați-l să răsucească. Am documentat cum funcționează pentru telefonul meu în Notele fotografiei de mai jos. Există, de asemenea, un videoclip neclar cu mecanismul care funcționează.
Pasul 3: Faceți circuitul
Odată ce ați găsit comutatorul care este făcut și rupt, ar trebui să puteți identifica conexiunile urmărind cablurile înapoi la bornele conexiunii. În cazul meu, cele două părți ale comutatorului sunt conectate la cele două terminale din stânga. Conectați aceste terminale la niște fire jumper și obțineți prototipuri! Comutatorul din cadranul meu este întotdeauna pornit și este rupt pentru fiecare impuls la apelare, așa că am folosit circuitul foarte simplu de mai jos. Pinul 2 va merge HIGH pentru fiecare impuls pe măsură ce discul se rotește. Când telefonul nu este apelat, comutatorul din unitatea de apelare este închis (așa-numitul comutator ÎNCHIS NORMAL, din motive evidente), astfel încât circuitul conectează pinul 2 la masă (care la Arduino este LOW). Acest lucru se datorează faptului că rezistența este mult mai mică prin rezistența de 470 ohmi decât rezistența de 10 K. Când telefonul este format, comutatorul se deschide și se închide rapid (pentru un 9, se va deschide și se va închide din nou de nouă ori, amintiți-vă). Când comutatorul este deschis, pinul 2 nu este conectat la masă - în schimb este conectat la sursa de 5V printr-o rezistență de 10470 ohmi. Acest lucru este interpretat de Arduino ca fiind HIGH. Dacă cadranul dvs. are un comutator DESCHIS NORMAL, atunci schimbarea pozițiilor rezistorului 10K și cadranul ar trebui să facă truc.
Pasul 4: Elaborați codul
Acum avem nevoie de un cod pentru ca Arduino să numere impulsurile și să trimită numărul total pe număr apelat prin portul serial. Codul meu este mai jos. Deoarece avem de-a face cu mecanici aici, ai dvs. pot diferi. Încercați să jucați cu constanta de debounce și cu "cât timp așteptăm înainte să presupunem că cadranul a terminat de rotit" constantă. Am încercat să-l comentez cât de bine pot. Sperăm că este destul de simplu.int needToPrint = 0; int count; int in = 2; int lastState = LOW; int trueState = LOW; long lastStateChangeTime = 0; int cleared = 0; void setup () {Serial.begin (9600); pinMode (in, INPUT);} void loop () {int reading = digitalRead (in); if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// apelantul nu este format sau tocmai a terminat de formatat. if (needToPrint) {// dacă tocmai s-a terminat de apelat, trebuie să trimitem numărul pe // linia de serie și să resetăm numărul. Modificăm numărul cu 10, deoarece „0” va trimite 10 impulsuri. Serial.print (numărare% 10, DEC); needToPrint = 0; număr = 0; compensat = 0; }} if (reading! = lastState) {lastStateChangeTime = millis (); } if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - acest lucru se întâmplă odată ce este stabilit dacă (reading! = trueState) {// asta înseamnă că comutatorul fie a trecut de la închis-> deschis, fie invers. trueState = citire; if (trueState == HIGH) {// crește numărul de impulsuri dacă a crescut. conta ++; needToPrint = 1; // va trebui să imprimăm acest număr (odată ce rotirea a fost terminată)}}} lastState = reading;}
Pasul 5: Verifică funcționează
Verificați dacă funcționează deschizând o fereastră serială (folosesc ecranul pe o mașină unix, poate doriți să utilizați Hyperterm sau similar pe Windows) și încercați să formați unele numere. Asigurați-vă că programul serial este setat să citească de pe USB- > adaptor serial în Arduino (verificați meniul Instrumente-> Port serial în software-ul Arduino dacă uitați ce este) și o rată de transmisie de 9600 bps. Ar trebui să vedeți numărul corect care apare atunci când este format.
Pasul 6: Cuplați-l în ceva util
Am venit cu un fișier Quartz Composer pe Mac-ul meu pentru a prelua intrarea și a o reda frumos pe ecran. Odată ce sunt în mașină ca date seriale, puteți face orice cu ea. Așteptând să vă aud ideile! Am să vin cu un videoclip cu „în acțiune” și să tipăresc numerele pe ecran imediat ce pot obține pe cineva să țin camera pentru mine - mi-aș dori să am trei mâini.
Recomandat:
Amplificator telefonic cu PCB personalizat: 8 pași (cu imagini)
Amplificator pentru telefon cu PCB personalizat: construiesc (și încerc să perfecționez) amplificatorul pentru căști de ceva timp acum. Unii dintre voi ar fi văzut versiunile mele anterioare. Pentru cei care nu au făcut acest lucru, le-am legat mai jos. Pe versiunile mele mai vechi, am folosit întotdeauna placa prototip pentru a construi t
Noțiuni introductive despre interfața senzorului I2C ?? - Interfață MMA8451 folosind ESP32s: 8 pași
Noțiuni introductive despre interfața senzorului I2C ?? - Interfața MMA8451 folosind ESP32s: În acest tutorial, veți afla totul despre cum să porniți, să conectați și să obțineți dispozitivul I2C (accelerometru) care funcționează cu controlerul (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Interfața unui modul GPS cu Raspberry Pi: Dashcam Partea 2: 3 pași
Interfața unui modul GPS cu Raspberry Pi: Dashcam Partea 2: Aceasta este partea 2 a proiectului dashcam și în acest post vom învăța cum să interfațăm un modul GPS cu Raspberry Pi. Apoi vom folosi datele GPS și le vom adăuga la videoclip ca o suprapunere de text. Vă rugăm să citiți partea 1 folosind linkul de mai jos, înainte de a vă
Selectarea unui motor de pas și a unui driver pentru un proiect de ecran de umbră automat Arduino: 12 pași (cu imagini)
Selectarea unui motor de pas și a unui driver pentru un proiect de ecran de umbră automat Arduino: În acest instructable, voi parcurge pașii pe care i-am făcut pentru a selecta un motor de pas și un driver pentru un prototip de proiect de ecran de umbră automat. Ecranele de umbră sunt modelele populare și ieftine Coolaroo cu manivelă și am vrut să înlocuiesc t
Instalarea unui cablu de interfață IPod într-o Toyota Corolla: 5 pași
Instalarea unui cablu de interfață IPod într-un Toyota Corolla: dacă doriți o conexiune IPod la stereo din fabrică, puteți plăti magazinului de electronice local 50 - 100 USD pentru instalare; sau puteți instala singur cablul gratuit. Vreau să vă arăt cât de ușor este să instalați un