Turinys:

Rotary Dialer PIC sąsaja: 7 žingsniai
Rotary Dialer PIC sąsaja: 7 žingsniai

Video: Rotary Dialer PIC sąsaja: 7 žingsniai

Video: Rotary Dialer PIC sąsaja: 7 žingsniai
Video: Top 5 High Speed Bus in Bangladesh 2024, Lapkritis
Anonim
Rotary Dialer PIC sąsaja
Rotary Dialer PIC sąsaja

Aš atsidūriau su besisukančių telefonų gausa. Tiesą sakant, jie yra visur, kur žiūriu. Tikėdamasis, kad kada nors jų pamatysiu mažiau, pradėjau jas ardyti ir pakartotinai naudoti dalis kitiems tikslams.

Kažkodėl man į galvą atėjo mintis, kad būtų gerai sujungti sukamąjį valdiklį su PIC mikroschema. Šiuo metu galiu galvoti tik apie keletą neaiškių jo naudojimo būdų ir nė vienas nėra ypač naudingas, bet tikiuosi, kad ateityje padarysiu ką nors šaunaus.

1 veiksmas: eikite gauti daiktų

Eik „Daiktų“
Eik „Daiktų“

Jums reikės: 1 - rotacinis telefonas 3 - 220 omų rezistoriai 2 - 0,1uF kondensatoriai 2 - 20K rezistorius (gali pakeisti bet ką nuo 10K iki 47K) 2 - šviesos diodai1 - PIC kūrimo plokštė (naudojau pagrindinę mikro plėtros aplinką) 1 - 20 MHZ rezonatorius arba kristalas1 - Duonos lenta1 - 5V maitinimo šaltinis1 - Maždaug pėda prijungimo laido1 - Atsuktuvas1 - Vielos nuėmiklis

2 žingsnis: išskirkite telefoną

Išardykite telefoną
Išardykite telefoną
Išardykite telefoną
Išardykite telefoną
Išardykite telefoną
Išardykite telefoną

Atidarykite rotacinį telefoną. Viduje pastebėsite keletą pagrindinių dalių; sukamasis ratukas, skambėjimo signalas, du kėlikliai, kablio jungiklis ir pagrindinė grandinė, kuri paprastai yra supakuota į metalinį jungiamąją dėžę.

Nuo rotacinio rinkiklio iki šio jungties dėžutės panašaus dalyko eis keturi laidai. Laidai turėtų būti laikomi ne daugiau nei priveržtais varžtais. Atsukite varžtus ir atjunkite laidus. Po to atjunkite rotacinį rinkiklį nuo paties telefono.

3 žingsnis: nustatykite, ką veikia laidai

Nustatykite, ką daro laidai
Nustatykite, ką daro laidai
Nustatykite, ką veikia laidai
Nustatykite, ką veikia laidai

Prijunkite du šviesos diodus, kaip parodyta žemiau esančioje diagramoje.

Du balti laidai turėtų būti pora, kuri uždaro jungiklį, kuris jums praneš, kai ratukas pasukamas. Mėlyna ir žalia viela turėtų būti pora, leidžianti žinoti, koks numeris buvo surinktas. Kai pasuksite ratuką, šviesos diodas, prijungtas prie baltų laidų, turėtų įsijungti, o kai paleisite ratuką, prie mėlynos ir žalios spalvos laidų prijungtas šviesos diodas turėtų mirksėti tiek kartų, kiek numeris rinkta (žiūrėkite vaizdo įrašą). Pvz., Jei surinksite 8, prie žalios ir mėlynos spalvos laido prijungtas šviesos diodas išsijungs ir įsijungs 8 kartus. Taip atsitinka todėl, kad vienas iš būdų surinkti telefono numerį yra greitai nutraukti ryšį tiek kartų, kiek kartų bandoma surinkti skaitmenį. Taigi, norėdami surinkti 8, turėsite greitai nutraukti ryšį 8 kartus.

4 veiksmas: prijunkite rinkiklį prie PIC lusto

Prijunkite rinkiklį prie PIC lusto
Prijunkite rinkiklį prie PIC lusto
Prijunkite rinkiklį prie PIC lusto
Prijunkite rinkiklį prie PIC lusto

Prijunkite rotacinį rinkiklį prie PIC lusto, kaip parodyta diagramoje. Atkreipkite dėmesį, kad aš skaitau rotacinio rinkiklio būsenoje, naudodamas RC laiką. Kitaip tariant, PIC lustas skaičiuoja, kiek kartų reikia kondensatoriui išsikrauti (kuris pasikeičia, kai pridedama pasipriešinimas).

Būtent čia įeina 20K rezistorius. Pridėjus jį prie įvesties, galima aiškiai atskirti signalą nuo uždaro ir atviro sukamojo jungiklio jungties.

5 žingsnis: surinkite kodą

Surinkite kodą
Surinkite kodą

Norėdami suprogramuoti lustą, naudoju „MBasic“kūrimo aplinką, kurią galima įsigyti iš „Basic Micro“. „MBasic“yra „Basic“variantas, skirtas naudoti su PIC lustais. Jis lengvai konvertuojamas į universalesnę (naudingesnę) kalbą. Kodas iš esmės nustato, kada kas nors pasuko ratuką ir tada nustato signalo kraštą (nustato žemus ir didelius perėjimus), kol ratukas grįš į pradinę būseną. Suskaičiavus, kiek kartų jis matuoja signalo perėjimą, jis atitinkamai mirksi. Pvz., Jei surinksite 3, PIC suskaičiuos tris žemo ir aukšto lygio perėjimus ir 3 kartus sumirksės LED. Šviesos diodas, kaip jūs galėjote numanyti, yra nereikalingas, kad jis veiktų, ir yra tik tam, kad suteiktų jums matomą grįžtamąjį ryšį. Galite pakeisti bet kurį išvesties įrenginį, kuris, jūsų manymu, yra būtinas. ********************* Čia yra keletas kodų: ********************* CPU = 16F877MHZ = 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, tada eikite į skaičiavimo patikrinimą eina į paprogramę, jei ji tapo pagrindine. ===== countmeuploop: didelis B1rctime B1, 1, clicker'checks counting valuelargefig = clacker + 100 nustato slenksčio reikšmę, kuri bus didesnė 'nei 0, bet mažesnė už galimas aukščiausios vertės reikšmes if largefig <clicker thencountclicks = countclicks + 1endif prideda 1 reikšmę kiekvieną kartą, kai užregistruojamas perėjimas nuo žemo iki aukšto B2 didelis veiksmo laikas B2, 1, startcountinif jei startcountin <10, tada jei skaičiaus paspaudimai> 0 thengoto blinkelsegoto mainendifendif'tikrina, ar ratukas grįžo atgal į savo i nitialinė būsena "jei ji turi ir buvo surinktas numeris, ji pereina prie šviesos diodų rutinos" kitaip, jei nebuvo surinktas numeris, jis eina į mainclacker = clicker "iš naujo nustato palyginimo vertę su dabartine kaiščio verte. ! '================= pasikartojimų skaičius yra toks, kiek kartų šviesos diodas turi mirksėti, tada jis grįžta prie pagrindinio įprastinio

6 žingsnis: bandymas

Testavimas
Testavimas

Jei viską darėte taip pat, kaip ir aš, tai turėtų veikti (žr. Vaizdo įrašą).

Jei tai neveikia, įsitikinkite, kad viską prijungėte teisingai ir kodas nukopijuotas teisingai. Taip pat įsitikinkite, kad jūsų rezonatorius (arba kristalas) yra 20 MHZ. Jei parašėte savo kodą, įsitikinkite, kad rutinoje nėra pertraukų, kurios tikrina, ar nėra žemo aukšto lygio perėjimų.

7 žingsnis: eikite toliau

Eik toliau
Eik toliau

Sugalvokite kitokį sukamojo ratuko naudojimą, išskyrus šviesos diodo mirksėjimą.

Rekomenduojamas: