Sisukord:

Pöörleva telefonivaliku liides Arduinoga: 6 sammu (piltidega)
Pöörleva telefonivaliku liides Arduinoga: 6 sammu (piltidega)

Video: Pöörleva telefonivaliku liides Arduinoga: 6 sammu (piltidega)

Video: Pöörleva telefonivaliku liides Arduinoga: 6 sammu (piltidega)
Video: Вращение против и по часовой стрелке 2024, November
Anonim
Ühendage pöörlev telefonivalija Arduinoga
Ühendage pöörlev telefonivalija Arduinoga
Ühendage pöörlev telefonivalija Arduinoga
Ühendage pöörlev telefonivalija Arduinoga

Vana pöörlevat telefoni saab teie Arduino projektides kasutada mitmel otstarbel - kasutage seda uudse sisendseadmena või kasutage Arduino, et liidestada pöörlev telefon arvutiga. See on väga lihtne juhend, mis kirjeldab valimisliidese liidestamist Arduinole ja laske valitud number edastada arvutisse Arduino jadalingi kaudu.

Samm: eemaldage telefonilt valimisklahv

Eemaldage telefonilt valimisklahv
Eemaldage telefonilt valimisklahv
Eemaldage telefonilt valimisklahv
Eemaldage telefonilt valimisklahv
Eemaldage telefonilt valimisklahv
Eemaldage telefonilt valimisklahv

Esimene samm on valimisseadme eemaldamine telefonist. Ma kasutan 1970 -ndatest pärit GPO -telefoni. Sellel telefonil hüppas ketas otse välja - mul oli lihtsalt vaja seda pukseerida. Kui seda ei juhtu, peate võib -olla telefoni avama ja välja selgitama, kuidas seda eemaldada. Valimisseadme tagaküljele oli ühendatud viis kaablit. Minu telefonis olid need tavalised labidaühendused, nii et keerasin kruvid lahti ja tõmbasin need välja. Kui soovite telefoni uuesti kokku panna, ärge unustage salvestada, millist värvi juhe millisele ühendusele läheb.

Samm: tuvastage lüliti

Tuvastage lüliti
Tuvastage lüliti

Kui ketas on väljas, peaks olema suhteliselt lihtne näha, kuidas ketas pöörleva liikumise impulssideks muudab. Proovige ketast käsitsi keerata ja jälgida liikumist tagaküljel. Te peaksite nägema lülitit, mis teeb vooluringi kiiresti ja katkestab - nii et kui valite "9", peaks lüliti üheksa korda sisse lülituma. Neile, kes pole kunagi varem pöördketast kasutanud - pidage meeles, et valimine toimub ainult siis, kui lubate minge numbrile ja laske sellel tagasi kerida. Olen dokumenteerinud, kuidas see minu telefoni jaoks töötab, alloleva foto märkustes. Samuti on hägune video mehhanismi toimimisest.

Samm: tehke vooluring

Tehke ringrada
Tehke ringrada
Tehke ringrada
Tehke ringrada

Kui olete valmistamise ja purunemise lüliti leidnud, peaksite ühendusi tuvastama, järgides juhtmeid tagasi ühenduse klemmide juurde. Minu puhul on lüliti kaks külge ühendatud kahe vasakpoolse klemmiga. Võtke need klemmid mõne hüppaja juhtme külge ja hankige prototüüp! Minu lüliti on alati sisse lülitatud ja valimisel on iga impulsi korral katki, nii et kasutasin allpool olevat väga lihtsat vooluahelat. Tihvt 2 liigub ketta pöörlemisel iga impulsi jaoks KÕRGE. Kui telefoni ei valita, on valimisseadme lüliti suletud (nn arusaadavatel põhjustel nn NORMALLY CLOSED lüliti), nii et ahel ühendab tihvti 2 maandusega (mis on Arduinoga LOW). Selle põhjuseks on asjaolu, et 470 oomi takisti kaudu on takistus palju väiksem kui 10K takistil. Telefoni valimisel avaneb ja sulgub lüliti kiiresti (9 puhul avaneb ja sulgub uuesti üheksa korda, pidage meeles). Kui lüliti on avatud, ei ole tihvt 2 maandusega ühendatud - selle asemel ühendatakse see 5V toiteallikaga vastupanu 10470 oomi kaudu. Arduino tõlgendab seda kui HIGH. Kui teie dialil on NORMALLY OPEN lüliti, peaks 10K takisti ja ketta asendite vahetamine seda trikki tegema.

Samm: koodeksi väljatöötamine

Töötage koodeks välja
Töötage koodeks välja

Nüüd vajame Arduino jaoks koodi, et impulsid kokku lugeda ja saata jadaporti kaudu tagasi valitud numbrite koguarv. Minu kood on allpool. Kuna me tegeleme siin mehaanikaga, võivad teie omad erineda. Proovige mängida tagasilöögikonstandiga ja "kui kaua me ootame, enne kui eeldame, et ketas on pöörlemise lõpetanud". Olen proovinud seda võimalikult täpselt kommenteerida. Loodetavasti on see üsna lihtne. void setup () {Serial.begin (9600); pinMode (in, INPUT);} void loop () {int lugemine = digitalRead (in); if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// valijat ei valita või see on just lõpetatud. if (needToPrint) {// kui selle valimine on alles lõppenud, peame numbri saatma jada // reale alla ja loendama. Me muudame arvu 10 võrra, sest '0' saadab 10 impulssi. Serial.print (loend % 10, DEC); needToPrint = 0; loendus = 0; kustutatud = 0; }} if (lugemine! = lastState) {lastStateChangeTime = millis (); } if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - see juhtub siis, kui see on blokeeritud, kui (lugemine! = trueState) {// see tähendab, et lüliti on suletud -> avatud või vastupidi. trueState = lugemine; if (trueState == HIGH) {// suurendab impulsside arvu, kui see on kõrge. loe ++; needToPrint = 1; // peame selle numbri välja printima (kui ketas on pöörlemise lõpetanud)}}} lastState = lugemine;}

Samm: kontrollige, kas see töötab

Kontrollige, kas see töötab, avades seeriaakna (ma kasutan Unix-masina ekraani, võib-olla soovite Windowsis kasutada Hypertermi või muud sarnast) ja proovige valida mõned numbrid. Veenduge, et jadaprogramm on seadistatud lugema USB- > jadaadapter teie Arduino'is (kui unustate, mis see on, vaadake Arduino tarkvara menüüd Tööriistad-> jadaport) ja edastuskiirus 9600 bps. Valimise ajal peaksite nägema õiget numbrit.

6. samm: ühendage see millekski kasulikuks

Ühendage see millegi kasulikuga!
Ühendage see millegi kasulikuga!

Mõtlesin oma Macis kvartskomposisti faili, et sisend võtta ja see kenasti ekraanile tuua. Kui see on masinas seeriaandmetena, saate sellega kõike teha. Ootan teie ideid! Ma esitan sellest video "tegevuses" ja prindin numbrid ekraanile niipea, kui saan kellegi hankida minu eest kaamerat hoida - soovin, et mul oleks kolm kätt.

Soovitan: