Obsah:

Pripojenie otočného telefónneho voliča k Arduinu: 6 krokov (s obrázkami)
Pripojenie otočného telefónneho voliča k Arduinu: 6 krokov (s obrázkami)

Video: Pripojenie otočného telefónneho voliča k Arduinu: 6 krokov (s obrázkami)

Video: Pripojenie otočného telefónneho voliča k Arduinu: 6 krokov (s obrázkami)
Video: Что такое Проброс Портов 2024, Jún
Anonim
Pripojte otočný telefónny volič k Arduinu
Pripojte otočný telefónny volič k Arduinu
Pripojte otočný telefónny volič k Arduinu
Pripojte otočný telefónny volič k Arduinu

Starý rotačný telefón môžete vo svojich projektoch Arduino použiť na množstvo účelov - použite ho ako nové vstupné zariadenie alebo pomocou Arduina prepojte rotačný telefón s počítačom. Toto je veľmi základný sprievodca popisujúci spôsob prepojenia číselníka k Arduinu a získajte vytočené číslo do počítača cez sériové prepojenie Arduina.

Krok 1: Vyberte vytáčanie z telefónu

Vyberte vytáčanie z telefónu
Vyberte vytáčanie z telefónu
Vyberte vytáčanie z telefónu
Vyberte vytáčanie z telefónu
Vyberte vytáčanie z telefónu
Vyberte vytáčanie z telefónu

Prvým krokom je vybratie jednotky vytáčania z telefónu. Používam telefón GPO nejakého druhu zo 70. rokov. Na tomto telefóne vyskočil ciferník priamo von - potreboval som ho len potiahnuť. Ak to tak nie je, možno budete musieť telefón otvoriť a zistiť, ako ho odpojiť. K zadnej časti číselníka bolo pripojených päť káblov. V telefóne to boli pravidelné spojenia rýľom, tak som uvoľnil skrutky a vytiahol ich. Ak chcete telefón znova zostaviť, zaznamenajte si, ktorý farebný vodič prechádza do ktorého spojenia.

Krok 2: Identifikujte prepínač

Identifikujte prepínač
Identifikujte prepínač

Akonáhle je číselník vytiahnutý, malo by byť relatívne ľahké vidieť, ako číselník prevádza rotačný pohyb na impulzy. Skúste točiť číselníkom ručne a sledujte pohyb na zadnej strane. Mali by ste vidieť prepínač, ktorý rýchlo zapína a vypína obvod - takže ak vytočíte „9“, vypínač by sa mal zapnúť deväťkrát. Pre tých z vás, ktorí ste nikdy predtým nepoužívali otočný volič - pamätajte na to, že vytáčanie prebieha iba vtedy, keď necháte choďte na číslo a nechajte ho navinúť späť. Dokumentoval som, ako to funguje pre môj telefón, v poznámkach k nižšie uvedenej fotografii. K dispozícii je tiež rozmazané video fungujúceho mechanizmu.

Krok 3: Vytvorte obvod

Vytvorte obvod
Vytvorte obvod
Vytvorte obvod
Vytvorte obvod

Akonáhle nájdete spínač, ktorý sa vyrába a je zlomený, mali by ste byť schopní identifikovať spojenia sledovaním vodičov späť k spojovacím svorkám. V mojom prípade sú dve strany prepínača pripojené k dvom krajným svorkám. Pripojte tieto svorky k prepojovacím vodičom a získajte prototypy! Prepínač v mojom číselníku je vždy zapnutý a pri vytáčaní je prerušený pre každý impulz, takže som použil nižšie uvedený veľmi jednoduchý obvod. Kolík 2 bude pri otáčaní voliča prechádzať VYSOKÝ pre každý impulz. Keď telefón nie je vytáčaný, spínač v jednotke vytáčania je zatvorený (takzvaný NORMÁLNE ZATVORENÝ spínač zo zrejmých dôvodov), takže obvod spojí kolík 2 so zemou (ktorý je v Arduine NÍZKY). Je to preto, že odpor je 470 ohmov ako odpor 10K. Pri vytáčaní telefónu sa spínač rýchlo otvára a zatvára (pri čísle 9 sa otvorí a znova zatvorí deväťkrát, pamätajte). Keď je spínač otvorený, kolík 2 nie je pripojený k zemi - namiesto toho je pripojený k napájaniu 5 V cez odpor 10470 ohmov. Arduino to interpretuje ako VYSOKÉ. Ak má váš číselník prepínač NORMÁLNE OTVORENÝ, potom by malo stačiť vymeniť polohy odporu 10K a číselníka.

Krok 4: Vypracujte kódex

Vypracujte kódex
Vypracujte kódex

Teraz potrebujeme nejaký kód pre Arduino na počítanie impulzov a odoslanie celkového počtu na číslo vytočené späť cez sériový port. Môj kód je uvedený nižšie. Keďže sa tu zaoberáme mechanikou, vaše sa môžu líšiť. Skúste sa pohrať s konštantou odskoku a konštantou „ako dlho budeme čakať, kým sa predpokladá, že sa číselník skončil s otáčaním“. Pokúsil som sa to okomentovať čo najpresnejšie. Našťastie je to celkom jednoduché. Int needToPrint = 0; int count; int in = 2; int lastState = LOW; int trueState = LOW; long lastStateChangeTime = 0; int cleared = 0; // constantsint dialHasFinishedRotatingAfterMs = 100; int debounceDelay = 10; void setup () {Serial.begin (9600); pinMode (in, INPUT);} void loop () {int reading = digitalRead (in); if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// číselník sa nevytočí alebo sa práve dokončil vytáčanie. if (needToPrint) {// ak je práve dokončené vytáčanie, musíme číslo poslať na sériovú // linku a resetovať počet. Počet upravíme o 10, pretože „0“vyšle 10 impulzov. Serial.print (počet % 10, DEC); needToPrint = 0; počet = 0; vymazané = 0; }} if (reading! = lastState) {lastStateChangeTime = millis (); } if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - to sa stane, keď je to stabilizované, ak (čítanie! = trueState) {// to znamená, že prepínač buď práve prešiel zo zatvoreného -> otvoreného alebo naopak. trueState = čítanie; if (trueState == HIGH) {// zvýši počet impulzov, ak sa zvýši. počítať ++; needToPrint = 1; // toto číslo budeme musieť vytlačiť (keď sa číselník otočí)}}} lastState = čítanie;}

Krok 5: Skontrolujte, či to funguje

Otvorte sériové okno (používam obrazovku na unixovom zariadení, v systéme Windows možno budete chcieť použiť Hyperterm alebo podobné) a skúste vytočiť niektoré čísla. Uistite sa, že je sériový program nastavený na čítanie z portu USB. > sériový adaptér vo vašom Arduino (ak zabudnete, čo to je, skontrolujte ponuku Nástroje-> ponuka Sériový port v softvéri Arduino) a prenosovú rýchlosť 9600 b / s. Pri vytočení by sa vám malo objaviť správne číslo.

Krok 6: Pripojte to k niečomu užitočnému

Pripojte to k niečomu užitočnému!
Pripojte to k niečomu užitočnému!

Na počítači Mac som vymyslel súbor Quartz Composer, aby som prevzal vstup a pekne ho vykreslil na obrazovku. Akonáhle je to v stroji ako sériové údaje, môžete s ním robiť čokoľvek. Čakám na vaše nápady! Vymyslím video z toho „v akcii“a vytlačím čísla na obrazovku, akonáhle niekoho získam. aby mi držal fotoaparát - prajem si, aby som mal tri ruky.

Odporúča: