Përmbajtje:

Ndërfaqja e një thirrjeje rrotulluese të telefonit me një Arduino: 6 hapa (me fotografi)
Ndërfaqja e një thirrjeje rrotulluese të telefonit me një Arduino: 6 hapa (me fotografi)

Video: Ndërfaqja e një thirrjeje rrotulluese të telefonit me një Arduino: 6 hapa (me fotografi)

Video: Ndërfaqja e një thirrjeje rrotulluese të telefonit me një Arduino: 6 hapa (me fotografi)
Video: CS50 2014 - Week 1, continued 2024, Nëntor
Anonim
Ndërfaqe një Dial Phone Rotary me një Arduino
Ndërfaqe një Dial Phone Rotary me një Arduino
Ndërfaqe një Dial Phone Rotary me një Arduino
Ndërfaqe një Dial Phone Rotary me një Arduino

Një telefon i vjetër rrotullues mund të përdoret për një numër qëllimesh në projektet tuaja Arduino - përdorni atë si një pajisje hyrëse të re ose përdorni Arduino për të ndërlidhur një telefon rrotullues me kompjuterin tuaj. Ky është një udhëzues shumë themelor që përshkruan mënyrën e ndërfaqes së numrit te një Arduino, dhe merrni numrin e thirrur të kalojë në një kompjuter mbi lidhjen serike të Arduino.

Hapi 1: Hiqni numrin nga telefoni

Hiqni numrin nga telefoni
Hiqni numrin nga telefoni
Hiqni numrin nga telefoni
Hiqni numrin nga telefoni
Hiqni numrin nga telefoni
Hiqni numrin nga telefoni

Hapi i parë është të hiqni njësinë e thirrjes nga telefoni. Unë jam duke përdorur një telefon GPO të një lloji nga vitet 1970. Në këtë telefon, numri i telefonit doli jashtë - më duhej vetëm ta tërhiqja. Nëse jo, mund t'ju duhet të hapni telefonin dhe të kuptoni se si ta hiqni atë. Kishte pesë kabllo të lidhur në pjesën e pasme të njësisë së thirrjes. Në telefonin tim, këto ishin lidhje të rregullta me lopatë, kështu që unë lirova vidhat dhe i nxora jashtë. Nëse doni të montoni përsëri telefonin tuaj, mos harroni të regjistroni se cili tel ngjyra shkon në cilën lidhje.

Hapi 2: Identifikoni Ndërruesin

Identifikoni Ndërprerësin
Identifikoni Ndërprerësin

Pasi të jetë dalë dial, duhet të jetë relativisht e lehtë të shihet se si dial shndërron lëvizjen rrotulluese në impulse. Provoni ta rrotulloni numrin me dorë dhe të shikoni lëvizjen në anën e pasme. Ju duhet të shihni një ndërprerës që bën dhe thyen një qark me shpejtësi - kështu që nëse thirrni '9', çelësi duhet të përfshihet nëntë herë. Për ata prej jush që mund të mos kenë përdorur kurrë një dial rrotullues më parë - mbani mend se thirrja ndodh vetëm kur lejoni shkoni numrin dhe lëreni të kthehet mbrapsht. Unë kam dokumentuar se si funksionon për telefonin tim në Shënimet e fotos më poshtë. Ekziston gjithashtu një video e paqartë e mekanizmit që funksionon.

Hapi 3: Bëni qarkun

Bëni qarkun
Bëni qarkun
Bëni qarkun
Bëni qarkun

Pasi të keni gjetur çelësin që po bëhet dhe prishet, duhet të jeni në gjendje të identifikoni lidhjet duke ndjekur telat përsëri në terminalet e lidhjes. Në rastin tim, të dy anët e ndërprerësit janë të lidhura me dy terminalet më të majtë. Lidheni këto terminale me disa tela kërcyes dhe merrni prototipizim! Çelësi në numrin tim është gjithmonë i ndezur dhe është i prishur për çdo puls kur telefononi, kështu që unë përdor qarkun shumë të thjeshtë më poshtë. Kunja 2 do të shkojë LART për secilin puls ndërsa rrotulluesi rrotullohet. Kur telefoni nuk është duke u thirrur, çelësi në njësinë e thirrjes është i mbyllur (i ashtuquajturi ndërprerës NORMALLY CLOSED, për arsye të dukshme) kështu që qarku lidh pin 2 me tokëzimin (i cili në Arduino është I ULT). Kjo ndodh sepse ka shumë më pak rezistencë përmes rezistencës 470 ohm sesa rezistenca 10K. Kur telefoni është duke u thirrur, çelësi hapet dhe mbyllet me shpejtësi (për një 9, ai do të hapet dhe mbyllet përsëri nëntë herë, mbani mend). Kur kaloni është i hapur, kunja 2 nuk është e lidhur me tokën - përkundrazi ajo është e lidhur me furnizimin me 5V përmes një rezistence prej 10470 ohms. Kjo interpretohet nga Arduino si një LART HIGH. Nëse çelësi juaj ka një çelës NORMALLY OPEN, atëherë ndërroni pozicionet e rezistencës 10K dhe dial duhet të bëjë mashtrimin.

Hapi 4: Zhvilloni Kodin

Zhvilloni Kodin
Zhvilloni Kodin

Tani na duhet një kod që Arduino të numërojë pulset dhe të dërgojë numrin e përgjithshëm për numrin e thirrur përsëri përmes portit serik. Kodi im është më poshtë. Ndërsa kemi të bëjmë me mekanikë këtu, tuajat mund të ndryshojnë. Provoni të luani me konstantën e debunimit dhe 'sa kohë presim para se të supozojmë se dial ka përfunduar rrotullimin' konstante. Unë jam përpjekur ta komentoj atë sa më me kujdes që të mundem. Shpresojmë se është mjaft e thjeshtë.int needToPrint = 0; int count; int in = 2; int lastState = LOW; int trueState = LOW; long lastStateChangeTime = 0; int pastruar = 0; // constantsint dialHasFinishedRotatingAfterMs = 100; int debounceDelay = 10; void setup () {Serial.begin (9600); pinMode (in, INPUT);} loop void () {int leximi = digitalRead (in); nëse ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// dial nuk po formohet, ose sapo ka përfunduar së thirruri. nëse (needToPrint) {// nëse sapo ka përfunduar së thirruri, duhet të dërgojmë numrin poshtë linjës seriale // dhe të rivendosim numërimin. Ne e modifikojmë numërimin me 10 sepse '0' do të dërgojë 10 impulse. Serial.print (numërimi % 10, DEC); needToPrint = 0; numërimi = 0; pastruar = 0; }} if (leximi! = lastState) {lastStateChangeTime = millis (); } if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - kjo ndodh pasi të jetë stabilizuar nëse (leximi! = trueState) {// kjo do të thotë që çelësi ose sapo ka shkuar nga mbyllur-> hapur ose anasjelltas Me trueState = leximi; nëse (trueState == LART) {// shtoni numrin e impulseve nëse është e lartë. numëroni ++; needToPrint = 1; // do të na duhet të printojmë këtë numër (sapo çelësi të ketë përfunduar rrotullimin)}}} lastState = leximi;}

Hapi 5: Kontrolloni që funksionon

Kontrolloni që funksionon duke hapur një dritare serike (unë përdor ekranin në një makinë unix, ju mund të dëshironi të përdorni Hyperterm ose të ngjashme në Windows), dhe provoni të telefononi disa numra. Sigurohuni që programi serik të jetë i lexuar nga USB- > përshtatës serik në Arduino tuaj (kontrolloni menunë Tools-> Port Serial në softuerin Arduino nëse harroni atë që është), dhe një normë baud prej 9600 bps. Ju duhet të shihni që numri i saktë të shfaqet kur është thirrur.

Hapi 6: Lidheni atë në diçka të dobishme

Lidheni atë në diçka të dobishme!
Lidheni atë në diçka të dobishme!

Kam dalë me një skedar Quartz Composer në Mac tim për të marrë hyrjen dhe për ta bërë atë bukur në ekran. Pasi të jetë në makinë si të dhëna serike, ju mund të bëni gjithçka me të. Duke pritur të dëgjoj idetë tuaja! Unë do të dal me një video të tij 'në veprim' dhe printimin e numrave në ekran sa më shpejt që të mund të marr dikë të më mbajë kamerën - do të doja të kisha tre duar.

Recommended: