Talaan ng mga Nilalaman:

Rotary Dialer PIC Interface: 7 Mga Hakbang
Rotary Dialer PIC Interface: 7 Mga Hakbang

Video: Rotary Dialer PIC Interface: 7 Mga Hakbang

Video: Rotary Dialer PIC Interface: 7 Mga Hakbang
Video: LDmicro 19: Rotary Encoder Menu Navigation (Microcontroller PLC Ladder Programming with LDmicro) 2024, Nobyembre
Anonim
Rotary Dialer PIC Interface
Rotary Dialer PIC Interface

Natagpuan ko ang aking sarili sa isang kasaganaan ng mga umiinog na telepono. Sa katunayan, kahit saan ako tumingin. Sa pag-asa na maaaring makita ko balang araw sa mas kaunti sa kanila, sinimulan ko silang ihiwalay at muling gamitin ang mga bahagi para sa iba pang mga layunin.

Para sa ilang kadahilanan nakuha ko ito sa aking utak na ang pag-interfaces ng rotary control sa isang PIC chip ay isang magandang ideya. Maaari ko lamang maiisip ang isang hindi malinaw na paggamit para sa mga ito sa ngayon at wala ay partikular na kapaki-pakinabang, ngunit inaasahan kong gumawa ng isang bagay na cool sa ito sa hinaharap.

Hakbang 1: Pumunta Kumuha ng Bagay

Pumunta Kumuha ng Bagay
Pumunta Kumuha ng Bagay

Kakailanganin mo ang: 1 - Rotary phone3 - 220 ohm resistors2 - 0.1uF capacitors 2 - 20K resistor (maaaring kapalit ng anuman sa pagitan ng 10K at 47K) 2 - LEDs1 - PIC development board (Ginamit ko ang Pangunahing Micro development environment) 1 - 20 MHZ resonator o kristal1 - Breadboard1 - 5V pinagmulan ng kuryente1 - Isang paa o higit pa ng hookup wire1 - Screwdriver1 - Wire stripper

Hakbang 2: Idiskonekta ang Telepono

I-disect ang Telepono
I-disect ang Telepono
I-disect ang Telepono
I-disect ang Telepono
I-disect ang Telepono
I-disect ang Telepono

Buksan ang iyong umiinog na telepono. Sa loob ay mapapansin mo ang ilang mga pangunahing bahagi; ang rotary dial, ang ringer, dalawang jacks, ang hook switch at ang pangunahing circuitry na karaniwang nakapaloob sa isang metal-junction-box-like na bagay.

Magkakaroon ng apat na wires na tumatakbo mula sa rotary dialer patungo sa bagay na tulad ng kantong-kahon. Ang mga wire ay dapat na gaganapin sa lugar ng kaunti pa kaysa sa mas mahigpit na mga turnilyo. Paluwagin ang mga turnilyo at idiskonekta ang mga wire. Pagkatapos nito, idiskonekta ang rotary dialer mula sa telepono mismo.

Hakbang 3: Tukuyin ang Gawin ng mga Wires

Tukuyin ang Ginagawa ng mga Wires
Tukuyin ang Ginagawa ng mga Wires
Tukuyin ang Ginagawa ng mga Wires
Tukuyin ang Ginagawa ng mga Wires

Wire up ng dalawang LEDs tulad ng ipinakita sa diagram sa ibaba.

Ang dalawang puting wires ay dapat na ang pares na magsasara ng switch na ipaalam sa iyo kapag nakabukas ang dial. Ang asul at berde na kawad ay dapat ang pares na nagbibigay-alam sa iyo kung anong numero ang na-dial. Tulad ng naturan, kapag binuksan mo ang dial, ang LED na konektado sa puting mga wire ay dapat na i-on, at kapag binitawan mo ang pag-dial, ang LED na konektado sa asul at berde na mga wire ay dapat magpikit at mag-off ng maraming beses sa bilang mo na-dial (tingnan ang video). Halimbawa, kung nag-dial ka ng 8, ang LED na konektado sa berde at asul na kawad ay papatayin at sa 8 beses. Nangyayari ito dahil ang isang paraan upang mag-dial ng isang numero ng telepono ay upang mabilis na masira ang koneksyon ng bilang ng beses para sa digit na sinusubukan mong i-dial. Kaya, muli, upang mag-dial ng isang 8 kakailanganin mong mabilis na masira ang koneksyon ng 8 beses.

Hakbang 4: Ikonekta ang Dialer sa PIC Chip

Ikonekta ang Dialer sa PIC Chip
Ikonekta ang Dialer sa PIC Chip
Ikonekta ang Dialer sa PIC Chip
Ikonekta ang Dialer sa PIC Chip

Ikonekta ang rotary dialer sa PIC chip tulad ng nakikita sa diagram. Pansinin na nagbabasa ako sa estado ng rotary dialer sa pamamagitan ng paggamit ng RC-timing. Sa madaling salita, ang PIC chip ay binibilang ang bilang ng mga beses na kinakailangan para sa isang kapasitor upang maalis (na nagbabago kapag idinagdag ang paglaban).

Iyon ay kung saan ang 20K risistor ay pumasok. Ang pagdaragdag nito sa input ay nagbibigay-daan para sa isang malinaw na pagkita ng pagkakaiba sa pagitan ng signal mula sa isang sarado at bukas na koneksyon ng paikot na switch.

Hakbang 5: Magtipon ng Code

Ipunin ang Code
Ipunin ang Code

Upang maprograma ang chip, ginamit ko ang kapaligiran sa pag-unlad ng MBasic na magagamit mula sa Basic Micro. Ang MBasic, medyo simple, ay isang pagkakaiba-iba ng Pangunahing dinisenyo para magamit sa mga chip ng PIC. Madali itong mapapalitan sa isang mas pangkalahatang (kapaki-pakinabang) na wika. Mahalaga ang pagtukoy ng code kapag ang isang tao ay nakabukas ang dial at pagkatapos ay nag-edge-detection sa signal (pagtukoy ng mababang-mataas na mga paglipat) hanggang sa mag-dial ang dial sa paunang estado nito. Matapos tally ang bilang ng mga beses na sumusukat ito ng isang paglipat ng signal, pagkatapos ay kumurap ito sa LED nang naaayon. Halimbawa, kung nag-dial ka ng 3, bibilangin ng PIC ang tatlong mababang-mataas na mga paglipat at pagkatapos ay kumurap ng isang LED ng 3 beses. Ang LED, na maaaring pinag-isipan mo, ay hindi kinakailangan upang gumana ito at naroroon lamang upang bigyan ka ng nakikitang puna. Maaari mong palitan ang anumang output aparato na sa tingin mo kinakailangan. ***** = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain: countclicks = 0repvar = 0'sets / resets valueshigh B2rctime B2, 1, startcountincountclicks = 0if startcountin> 10 pagkatapos ng goto countmeup ay nasuri at nakita kung napupunta sa subroutine kung mayroong hasgoto pangunahing '=_ countmeup: mataas na B1rctime B1, 1, ihinahambing ng mga clacker ang halaga ng countgup na countup'op = === countmeuploop: mataas na B1rctime B1, 1, clicker'check na binibilang valuelargefig = clacker + 100'sets ang isang halaga para sa threshold na magiging mas malaki 'kaysa sa 0 ngunit mas mababa sa posibleng pin-mataas na mga halaga kung malalaki ang <clicker thencountclicks = countclicks + 1endif'adds 1 halaga tuwing ang isang mababa sa mataas na paglipat ay naitala mataas B2rctime B2, 1, startcountinif startcountin <10 pagkatapos countclicks> 0 pagkataposgoto blinkelsegoto mainendifendif'checks upang makita kung ang pag-dial ay bumalik sa kanyang i nitial state'if meron ito at isang numero ang na-dial pumunta ito sa LED na gawain kung hindi man, kung walang numero na na-dial pumunta ito sa mainclacker = clicker'resets ang halaga ng paghahambing sa kasalukuyang pin valuegoto countmeuploop'no pause AT ALL in this routine ' ang mga pag-uulit na katumbas ng bilang ng beses na dapat blink ng LED pagkatapos ay bumalik ito sa pangunahing routinegoto blinker

Hakbang 6: Pagsubok

Pagsubok
Pagsubok

Kung ginawa mo ang lahat nang katulad ng sa akin, dapat itong gumana (tingnan ang video).

Kung hindi ito gagana, tiyaking na-wire mo nang tama ang lahat at tama ang pagkopya ng code. Gayundin, tiyaking ang iyong resonator (o kristal) ay 20 MHZ. Kung sumulat ka ng iyong sariling code siguraduhing walang mga pag-pause sa gawain na sumusuri para sa mababang-mataas na mga pagbabago.

Hakbang 7: Higit pa

Lagpasan
Lagpasan

Alamin ang ilang uri ng iba pang paggamit para sa rotary dial bukod sa pagpikit ng isang LED.

Inirerekumendang: