Cuprins:

Interfață rotativă PIC: 7 pași
Interfață rotativă PIC: 7 pași

Video: Interfață rotativă PIC: 7 pași

Video: Interfață rotativă PIC: 7 pași
Video: Apple Watch Seria 7: cel mai modern ceas inteligent de pe piață 2024, Iulie
Anonim
Interfață PIC cu apelare rotativă
Interfață PIC cu apelare rotativă

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

Du-te și primește lucruri
Du-te și primește 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

Disecați telefonul
Disecați telefonul
Disecați telefonul
Disecați telefonul
Disecați telefonul
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

Determinați ce fac firele
Determinați ce fac firele
Determinați ce fac firele
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 Dialerul la cipul PIC
Conectați Dialerul la cipul PIC
Conectați Dialerul la cipul PIC
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

Asamblați codul
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

Testarea
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

A merge mai departe
A merge mai departe

Descoperiți un alt fel de utilizare pentru cadranul rotativ, în afară de clipirea unui LED.

Recomandat: