INHOUDSOPGAWE:

Koppel 'n roterende telefoonskakelaar aan 'n Arduino: 6 stappe (met foto's)
Koppel 'n roterende telefoonskakelaar aan 'n Arduino: 6 stappe (met foto's)

Video: Koppel 'n roterende telefoonskakelaar aan 'n Arduino: 6 stappe (met foto's)

Video: Koppel 'n roterende telefoonskakelaar aan 'n Arduino: 6 stappe (met foto's)
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, November
Anonim
Koppel 'n roterende telefoonskakelaar aan 'n Arduino
Koppel 'n roterende telefoonskakelaar aan 'n Arduino
Koppel 'n roterende telefoonskakelaar aan 'n Arduino
Koppel 'n roterende telefoonskakelaar aan 'n Arduino

'N Ou roterende telefoon kan vir 'n aantal doeleindes in u Arduino -projekte gebruik word - gebruik dit as 'n nuwe invoertoestel, of gebruik die Arduino om 'n roterende telefoon met u rekenaar te koppel. na 'n Arduino, en laat die nommer wat geskakel word na 'n rekenaar oor die seriële skakel van die Arduino stuur.

Stap 1: Verwyder die skakelaar van die telefoon

Verwyder die skakelaar van die telefoon af
Verwyder die skakelaar van die telefoon af
Verwyder die skakelaar van die telefoon af
Verwyder die skakelaar van die telefoon af
Verwyder die skakelaar van die telefoon af
Verwyder die skakelaar van die telefoon af

Die eerste stap is om die skakelaar van die telefoon te verwyder. Ek gebruik 'n GPO -telefoon van die 1970's. Op hierdie telefoon het die draaiknop reguit uitgekom - ek moes dit net trek. As dit nie die geval is nie, moet u moontlik die telefoon oopmaak en uitvind hoe u dit kan verwyder. Daar was vyf kabels aan die agterkant van die skakelaar. Op my telefoon was dit gereelde graafverbindings, so ek het die skroewe losgemaak en dit uitgetrek. As u u telefoon weer wil monteer, moet u opneem watter kleurdraad na watter verbinding gaan.

Stap 2: Identifiseer die skakelaar

Identifiseer die skakelaar
Identifiseer die skakelaar

Sodra die draaiknop uit is, behoort dit relatief maklik te wees om te sien hoe die draaiknop draaibeweging in pulse omskakel. Probeer die draaiknop met die hand draai en kyk na die beweging op die rug. U moet 'n skakelaar sien wat 'n stroombaan vinnig maak en breek - dus as u '9' skakel, moet die skakelaar nege keer inskakel. Gaan die nommer en laat dit terugspoel. Ek het gedokumenteer hoe dit vir my telefoon werk in die aantekeninge van die foto hieronder. Daar is ook 'n vaag video van die meganisme wat werk.

Stap 3: Maak die kring

Maak die kringloop
Maak die kringloop
Maak die kringloop
Maak die kringloop

Sodra u die skakelaar gevind het wat gevind word en wat gebreek is, moet u die verbindings kan identifiseer deur die drade terug te volg na die aansluitklemme. In my geval is die twee kante van die skakelaar verbind met die twee terminale aan die linkerkant. Sluit hierdie terminale aan op 'n paar draaddrade en kry prototipering! Die skakelaar in my draaiknop is altyd aan, en word gebreek vir elke pols wanneer ek skakel, so ek gebruik die baie eenvoudige stroombaan hieronder. Speld 2 sal vir elke pols HOOG word namate die draaiknop draai. As die telefoon nie gebel word nie, is die skakelaar in die skakelaar gesluit ('n sogenaamde NORMALLY CLOSED-skakelaar, om voor die hand liggende redes), sodat die kring pen 2 met die grond verbind (wat op die Arduino LOW is). Dit is omdat die weerstand van die 470 ohm -weerstand baie minder is as die 10K -weerstand. As die telefoon gebel word, kan die skakelaar vinnig oopmaak en sluit (vir 'n 9 sal dit nege keer oopmaak en sluit, onthou). As die skakelaar oop is, is pen 2 nie aan die grond gekoppel nie - in plaas daarvan word dit met 'n weerstand van 10470 ohm aan die 5V -voeding gekoppel. Dit word deur die Arduino geïnterpreteer as 'n HOOG. As u draaiknop 'n NORMAL OOP -skakelaar het, moet u die posisies van die 10K -weerstand omruil en die draaiknop moet die ding wees.

Stap 4: Ontwikkel die kode

Ontwikkel die kode
Ontwikkel die kode

Nou benodig ons 'n kode vir die Arduino om die pulse te tel en die totale getal per nommer wat deur die seriële poort gebel is, te stuur. Aangesien ons hier met meganika te doen het, kan u s'n verskil. Probeer om te speel met die debounce -konstante en die 'hoe lank wag ons voordat die veronderstelling is dat die draaiknop klaar is'. Ek het probeer om dit so netjies moontlik te lewer. Hopelik is dit redelik eenvoudig.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; ongeldige opstelling () {Serial.begin (9600); pinMode (in, INPUT);} leemte lus () {int lees = digitalRead (in); as ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// die skakelaar nie gebel word nie, of pas gebel is. as (needToPrint) {// as die pas gebel het, moet ons die nommer langs die reël // stuur en die telling terugstel. Ons wys die telling met 10 omdat '0' 10 pulse stuur. Serial.print (telling % 10, DEC); needToPrint = 0; telling = 0; skoongemaak = 0; }} if (lees! = lastState) {lastStateChangeTime = millis (); } as ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - dit gebeur sodra dit gestabiliseer is as (lees! = trueState) {// dit beteken dat die skakelaar net van geslote-> oop is of andersom. trueState = lees; as (trueState == HOOG) {// verhoog die aantal pulse as dit hoog is. tel ++; needToPrint = 1; // ons sal hierdie nommer moet druk (sodra die draaiknop klaar is)}}} lastState = lees;}

Stap 5: Kyk of dit werk

Maak seker dat dit werk deur 'n seriële venster oop te maak (ek gebruik 'n skerm op 'n unix-masjien, u kan Hyperterm of soortgelyke in Windows gebruik) en probeer om 'n paar nommers te skakel. > seriële adapter in u Arduino (kyk na die menu Tools-> Serial Port in die Arduino-sagteware as u vergeet wat dit is) en 'n baud-tempo van 9600 bps.

Stap 6: Haak dit in iets nuttigs

Sit dit in iets nuttigs!
Sit dit in iets nuttigs!

Ek het 'n Quartz Composer -lêer op my Mac gekry om die invoer te neem en dit mooi op die skerm weer te gee. Sodra dit in die masjien is as seriële data, kan u alles daarmee doen. Wag om u idees te hoor! Ek sal 'n video daarvan 'in aksie' kry en die nommers op die skerm druk sodra ek iemand kan kry om die kamera vir my te hou - wens ek het drie hande.

Aanbeveel: