Cuprins:
- Pasul 1: Du-te la lucruri
- Pasul 2: Disecați telefonul
- Pasul 3: Determinați ce fac firele
- Pasul 4: Conectați Dialerul la cipul PIC
- Pasul 5: Asamblați codul
- Pasul 6: Testarea
- Pasul 7: Mergeți dincolo
Video: Interfață rotativă PIC: 7 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
M-am trezit cu o mulțime de telefoane rotative. De fapt, sunt peste tot unde mă uit. În speranța că o să văd cândva mai puține dintre ele, am început să le desfac și să refolosesc piesele în alte scopuri.
Din anumite motive, mi-am dat seama că creierul ar fi o idee bună să interacționeze controlul rotativ cu un cip PIC. Nu pot să mă gândesc decât la câteva utilizări vagi pentru aceasta în acest moment și niciuna nu este deosebit de utilă, dar sper să fac ceva interesant în viitor.
Pasul 1: Du-te la lucruri
Veți avea nevoie de: 1 - Telefon rotativ3 - Rezistențe de 220 ohmi 2 - Condensatori 0.1uF 2 - Rezistență de 20K (poate înlocui orice între 10K și 47K) 2 - LED-uri1 - Placă de dezvoltare PIC (am folosit mediul de dezvoltare Basic Micro) Rezonator de 1 - 20 MHZ sau cristal1 - Pană de pâine1 - Sursă de alimentare 5V1 - Un picior de sârmă de legătură1 - Șurubelniță1 - Dispozitiv de decupare
Pasul 2: Disecați telefonul
Deschideți telefonul rotativ. În interior veți observa câteva părți de bază; cadranul rotativ, soneria, două mufe, comutatorul cu cârlig și circuitele de bază care sunt de obicei încorporate într-o cutie de joncțiune metalică.
Vor fi patru fire care rulează de la selectorul rotativ la acest lucru asemănător cutiei de joncțiune. Firele trebuie ținute în poziție cu puțin mai mult decât șuruburi strânse. Slăbiți șuruburile și deconectați firele. După aceea, deconectați apelatorul rotativ de la telefonul însuși.
Pasul 3: Determinați ce fac firele
Conectați două LED-uri așa cum se arată în diagrama de mai jos.
Cele două fire albe ar trebui să fie perechea care închide comutatorul care vă anunță când este rotit cadranul. Firul albastru și verde ar trebui să fie perechea care vă permite să știți ce număr a fost format. Ca atare, atunci când rotiți cadranul, LED-ul conectat la firele albe ar trebui să se aprindă, iar atunci când eliberați cadranul, LED-ul conectat la firele albastre și verzi ar trebui să clipească și să clipească de câte ori este numărul apelat (vezi video). De exemplu, dacă formați 8, LED-ul conectat la firul verde și albastru se va stinge și se va aprinde de 8 ori. Acest lucru se întâmplă deoarece o modalitate de a forma un număr de telefon este de a întrerupe rapid conexiunea de câte ori pentru cifra pe care încercați să o formați. Deci, din nou, pentru a forma un 8, va trebui să întrerupeți rapid conexiunea de 8 ori.
Pasul 4: Conectați Dialerul la cipul PIC
Conectați selectorul rotativ la cipul PIC așa cum se vede în diagramă. Observați că citesc în starea dialerului rotativ folosind temporizarea RC. Cu alte cuvinte, cipul PIC numără de câte ori este nevoie ca un condensator să se descarce (care se schimbă când se adaugă rezistență).
Aici intervine rezistorul de 20K. Adăugarea acestuia la intrare permite o diferențiere clară între semnalul de la o conexiune de comutator rotativ închis și deschis.
Pasul 5: Asamblați codul
Pentru a programa cipul, am folosit mediul de dezvoltare MBasic disponibil de la Basic Micro. MBasic, pur și simplu, este o variantă de bază concepută pentru utilizare cu cipuri PIC. Este ușor convertibil într-un limbaj mai universal (util). Codul determină, în esență, când cineva a rotit cadranul și apoi face detectarea marginilor semnalului (determinând tranzițiile joasă-înaltă) până când cadranul revine la starea inițială. După numărarea de câte ori măsoară o tranziție a semnalului, apoi clipește LED-ul corespunzător. De exemplu, dacă formați 3, PIC va număra trei tranziții low-high și apoi va clipi un LED de 3 ori. LED-ul, după cum probabil ați dedus, nu este necesar pentru ca acest lucru să funcționeze și este doar acolo pentru a vă oferi feedback vizibil. Puteți înlocui orice dispozitiv de ieșire pe care îl considerați necesar. ********************* Iată câteva coduri: ********************* CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain: countclicks = 0repvar = 0sets / resets valueshigh B2rctime B2, 1, startcountincountclicks = 0if startcountin> 10 then go go countmeup 'checks to see trece la subrutină dacă arevergă principală '================ = număr mare: mare B1rctime B1, 1, clackerets compară valoareegoto countmeuploop' =========== ===== countmeuploop: high B1rctime B1, 1, clicker'checks counting valuelargefig = clacker + 100 setează o valoare pentru pragul care va fi mai mare 'decât 0, dar mai mică decât valorile posibile pin-highif largefig <clicker thencountclicks = countclicks + 1endif 'adaugă 1 valoare de fiecare dată când se înregistrează o tranziție de la scăzut la mare B2rctime mare B2, 1, startcountinif startcountin <10 apoi dacă contclicks> 0 apoi trece la clipiresegoto mainendifendif' verifică dacă discul a revenit la starea nitială „dacă are și s-a apelat un număr, merge la rutina LED” în caz contrar, dacă nu a fost apelat numărul, merge la mainclacker = clicker”resetează valoarea de comparație la valoarea curentă a pinului ! '================ intermitent: repvar = repvar + 1' contorizează fiecare repetare a acestei rutine înaltă B3pause 1000bază B3pause 1000'clipește LED-ul dacă repvar = countclicks thenrepvar = 0moto mainendif'if repetări sunt egale cu numărul de LED-uri care ar trebui să clipească, apoi se întoarce la rutina principală
Pasul 6: Testarea
Dacă ai făcut totul la fel ca mine, ar trebui să funcționeze (vezi video).
Dacă nu funcționează, asigurați-vă că ați conectat totul corect și că codul este copiat corect. De asemenea, asigurați-vă că rezonatorul (sau cristalul) dvs. este de 20 MHZ. Dacă ați scris propriul cod, asigurați-vă că nu există pauze în rutina care verifică tranzițiile joase-mari.
Pasul 7: Mergeți dincolo
Descoperiți un alt fel de utilizare pentru cadranul rotativ, în afară de clipirea unui LED.
Recomandat:
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)
Controlul volumului pentru apelare telefonică rotativă vintage: 7 pași (cu imagini)
Controlul volumului pentru apelare telefonică rotativă vintage: dacă sunteți ca mine, veți găsi destul de des schimbarea volumului de pe computer. Unele videoclipuri sunt mai puternice decât altele, uneori doriți ca volumul să fie dezactivat pe computer în timp ce ascultați podcast-uri sau muzică și este posibil să aveți nevoie să
Mașină rotativă de masaj V1.0 (prototip): 7 pași
Rotary Massage Machine V1.0 (Prototype): Rotary Massage Machine, este un dispozitiv care vă ajută să vă relaxați mușchii atunci când sunt tensionați. De asemenea, poate ajuta la dezlegarea nodurilor musculare sau poate fi folosit pentru tratamentul adânc al țesuturilor. Cele două butoane de pe partea inferioară au o zonă ridicată pentru a ieși din țesut
Afișare Nextion - Interfață și protocol explicate cu PIC și Arduino: 10 pași
Afișare Nextion | Interfață și protocol explicate cu PIC și Arduino: Nextion Display este foarte ușor de utilizat și interfață ușoară cu microcontroler. Cu ajutorul editorului Nextion putem configura afișajul și putem proiecta interfața de utilizare pe ecran. Deci pe baza evenimentelor sau comenzilor Afișare Nextion va acționa pe pentru a afișa
Carcasă rotativă pentru telefon Raspberry Pi: 10 pași (cu imagini)
Carcasă rotativă pentru telefon Raspberry Pi: Căutam un proiect distractiv pentru Raspberry Pi și am decis că un caz ar fi distractiv. Am găsit un telefon rotativ vechi și l-am transformat într-o carcasă pentru Pi. Am avut nevoie de piese în valoare de aproximativ 40 USD, s-ar putea să o puteți face pentru mai puțin. Întregul proiect a durat