Mündəricat:

Rotary Dialer PIC İnterfeysi: 7 addım
Rotary Dialer PIC İnterfeysi: 7 addım

Video: Rotary Dialer PIC İnterfeysi: 7 addım

Video: Rotary Dialer PIC İnterfeysi: 7 addım
Video: He Took A Photo Of His Pregnant Wife, But When He Saw The Photo 2024, Noyabr
Anonim
Rotary Dialer PIC İnterfeysi
Rotary Dialer PIC İnterfeysi

Özümü çoxlu fırlanan telefonlarla tapdım. Əslində, baxdığım hər yerdədirlər. Nə vaxtsa onlardan daha azını görəcəyim ümidi ilə onları parçalamağa və hissələri başqa məqsədlər üçün yenidən istifadə etməyə başladım.

Nədənsə fırlanan idarəetmə elementini PIC çipi ilə birləşdirməyin yaxşı bir fikir olacağını beynimə aldım. Hal -hazırda bunun üçün yalnız bir neçə qeyri -müəyyən istifadə düşünə bilərəm və bunların heç biri xüsusilə faydalı deyil, amma gələcəkdə bununla sərin bir şey edəcəyimi ümid edirəm.

Addım 1: Şeylər Alın

Get Əşyalar Al
Get Əşyalar Al

Ehtiyacınız olacaq: 1 - Döner telefon 3 - 220 ohm rezistorlar2 - 0.1uF kondansatörler 2 - 20K müqavimət (10K ilə 47K arasında bir şeyi əvəz edə bilər) 2 - LEDlər1 - PIC inkişaf lövhəsi (Əsas Mikro inkişaf mühitindən istifadə etdim) 1-20 MHZ rezonator və ya büllur1 - Çörək lövhəsi1 - 5V enerji mənbəyi1 - Bir ayağa yaxın bir tel bağlama1 - Tornavida1 - Tel çıxarıcı

Addım 2: Telefonu ayırın

Telefonu ayırın
Telefonu ayırın
Telefonu ayırın
Telefonu ayırın
Telefonu ayırın
Telefonu ayırın

Dönən telefonunuzu açın. İçəridə bir neçə əsas hissəni görəcəksiniz; fırlanan kadran, zəngi, iki kriko, çəngəl açarı və ümumiyyətlə metal qovşağa bənzər bir şeylə örtülmüş əsas dövrə.

Dönər çeviricidən bu qovşaq qutusuna bənzər bir şeyə gedən dörd tel olacaq. Tellər, sıxılmış vintlərdən bir az çox yerində tutulmalıdır. Vintləri gevşetin və telləri ayırın. Bundan sonra, fırlanan çeviricini telefonun özündən ayırın.

Addım 3: Tellərin nə etdiyini təyin edin

Tellərin nə etdiyini təyin edin
Tellərin nə etdiyini təyin edin
Tellərin nə etdiyini təyin edin
Tellərin nə etdiyini təyin edin

Aşağıdakı diaqramda göstərildiyi kimi iki LED bağlayın.

İki ağ tel, kadr çevrildikdə sizə xəbər verən açarı bağlayan cüt olmalıdır. Mavi və yaşıl tel hansı nömrənin yığıldığını bilmənizi təmin edən cüt olmalıdır. Buna görə də, düyməni çevirdiyiniz zaman ağ tellərə qoşulmuş LED açılmalı və düyməni buraxdığınız zaman mavi və yaşıl tellərə qoşulmuş LED sizin sayınız qədər yanıb sönməlidir. yığılıb (videoya baxın). Məsələn, 8 -ə zəng etsəniz, yaşıl və mavi telə qoşulmuş LED 8 dəfə sönəcək və yanacaq. Bunun səbəbi, telefon nömrəsini yığmağın bir yolu, yığmağa çalışdığınız rəqəmin neçə dəfə əlaqəni tez bir zamanda kəsmək olmasıdır. Yenə də 8 -i yığmaq üçün əlaqəni 8 dəfə sürətlə kəsmək lazım gələcək.

Addım 4: Dialeri PIC çipinə qoşun

Dialeri PIC çipinə qoşun
Dialeri PIC çipinə qoşun
Dialeri PIC çipinə qoşun
Dialeri PIC çipinə qoşun

Şəkildə göründüyü kimi fırlanan çeviricini PIC çipinə qoşun. Diqqət yetirin, RC-zamanlama istifadə edərək fırlanan çevirici vəziyyətində oxuyuram. Başqa sözlə, PIC çipi bir kondansatörün boşalma müddətini hesablayır (müqavimət əlavə edildikdə dəyişir).

20K müqavimətinin gəldiyi yer budur. Bunu girişə əlavə etmək, qapalı və açıq fırlanan keçid bağlantısından gələn siqnal arasında aydın bir fərq yaratmağa imkan verir.

Addım 5: Kodu yığın

Kodu toplayın
Kodu toplayın

Çipi proqramlaşdırmaq üçün Basic Micro -da mövcud olan MBasic inkişaf mühitindən istifadə etdim. MBasic, sadəcə olaraq, PIC çipləri ilə istifadə üçün nəzərdə tutulmuş bir Basic versiyasıdır. Daha universal (faydalı) bir dilə asanlıqla çevrilə bilər. Kod mahiyyətcə kiminsə döngəni çevirdiyini və sonra yığımın ilkin vəziyyətinə qayıdana qədər siqnalda kənar algılama (aşağı yüksək keçidləri təyin edən) təyin edir. Siqnal keçidini neçə dəfə hesabladıqdan sonra LED -i buna uyğun olaraq yanıb -sönür. Məsələn, 3-ü yığarsanız, PIC üç aşağı keçid sayacaq və sonra LED-i 3 dəfə yanıb-sönəcək. LED, təxmin etdiyiniz kimi, bunun işləməsi üçün lazımsızdır və sizə görünən rəy vermək üçün yalnız oradadır. Lazım bildiyiniz hər hansı bir çıxış cihazını əvəz edə bilərsiniz. ********************* Budur bir kod: ********************* CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain: countclicks = 0repvar = 0'sets/sıfırlanır dəyərlər yüksək B2rctime B2, 1, startcountincountclicks = 0 əgər startcountin> 10 yoxlanılıbsa əsas proqrama sahibdirsə alt proqrama keçir '================ countmeup: yüksək B1rctime B1, 1, clackerets dəyərləri sayma qrupu ilə müqayisə edir' =========== ===== countmeuploop: yüksək B1rctime B1, 1, clicker'sayarlama dəyərini yoxlayırlarlargefig = clacker + 100, eşik üçün '0-dan daha böyük, lakin mümkün olan pin-yüksək dəyərlərdən daha kiçik olan bir dəyər təyin edir. + 1endif hər dəfə aşağıdan yuxarıya keçid qeydə alındıqda yüksək B2 saatı B2, 1, startcountinif startcountin <10 sonra sayına vurduqda> 0 sonra blinkelsegoto mainendifendif'yi yoxlayaraq kadranın geri döndüyünü yoxlayır nitial vəziyyətə sahib olduqda və bir nömrə yığılmışsa LED rejiminə keçir 'əks halda, əgər heç bir nömrə yığılmamışsa mainclacker = clicker'ə gedir müqayisə dəyərini cari pin dəyərinə sıfırlayın Countupuploop'BÜTÜN bu rejimdə heç bir ara vermir ! '=============== yanıb -sönən: repvar = repvar + 1'Bu rutinin hər bir təkrarını sayar yüksək B3pause 1000low B3pause 1000'yığır LEDif repvar = kliklər sonrarepvar = 0göndərirsə təkrarlama, LED -in yanıb sönmə sayına bərabərdir, sonra əsas işə qayıdır

Addım 6: Test

Test
Test

Hər şeyi mənim kimi etdinizsə, işləməlidir (videoya baxın).

İşləmirsə, hər şeyi düzgün bağladığınızdan və kodun düzgün kopyalandığından əmin olun. Ayrıca, rezonatorunuzun (və ya kristalınızın) 20 MHZ olduğuna əmin olun. Öz kodunuzu yazmısınızsa, aşağı yüksək keçidləri yoxlayan rutində heç bir fasilə olmadığından əmin olun.

Addım 7: Ardınca gedin

Ötüb keçmək
Ötüb keçmək

Bir LED -in yanıb -sönməsindən başqa, fırlanan kadr üçün başqa bir növ istifadəni düşünün.

Tövsiyə: