Sadržaj:

Povežite rotacijski brojčanik s Arduinom: 6 koraka (sa slikama)
Povežite rotacijski brojčanik s Arduinom: 6 koraka (sa slikama)

Video: Povežite rotacijski brojčanik s Arduinom: 6 koraka (sa slikama)

Video: Povežite rotacijski brojčanik s Arduinom: 6 koraka (sa slikama)
Video: Lesson 97: Controlling Servo Motor using Rotary Encoder and Display Angle On LCD 2024, Srpanj
Anonim
Povežite rotacijski brojčanik s Arduinom
Povežite rotacijski brojčanik s Arduinom
Povežite rotacijski brojčanik s Arduinom
Povežite rotacijski brojčanik s Arduinom

Stari rotacijski telefon može se koristiti u brojne svrhe u vašim Arduino projektima - koristite ga kao novi ulazni uređaj ili upotrijebite Arduino za povezivanje rotacijskog telefona s vašim računalom. Ovo je vrlo osnovni vodič koji opisuje kako spojiti brojčanik na Arduino i birani broj proslijedite računalu preko Arduinove serijske veze.

Korak 1: Uklonite brojčanik s telefona

Uklonite brojčanik s telefona
Uklonite brojčanik s telefona
Uklonite brojčanik s telefona
Uklonite brojčanik s telefona
Uklonite brojčanik s telefona
Uklonite brojčanik s telefona

Prvi korak je ukloniti jedinicu za biranje broja s telefona. Koristim GPO telefon iz 1970 -ih. Na ovom telefonu brojčanik je iskočio - samo sam ga trebao povući. Ako se to ne dogodi, možda ćete morati otvoriti telefon i smisliti kako ga skinuti. Bilo je pet kabela spojenih na stražnju stranu brojčanika. Na mom telefonu to su bile obične veze lopatica, pa sam olabavio vijke i izvukao ih. Ako želite ponovno sastaviti telefon, ne zaboravite zabilježiti koja žica u boji ide na koju vezu.

Korak 2: Identificirajte prekidač

Prepoznajte prekidač
Prepoznajte prekidač

Nakon što je brojčanik van, trebalo bi biti relativno lako vidjeti kako brojčanik pretvara rotacijsko kretanje u impulse. Pokušajte okretati brojčanik ručno i promatrati kretanje na stražnjoj strani. Trebali biste vidjeti kako prekidač brzo stvara i prekida krug - pa ako birate '9', prekidač bi se trebao aktivirati devet puta. Za one od vas koji možda nikada prije niste koristili okretni brojčanik - imajte na umu da se biranje događa samo kad dopustite idite na broj i pustite ga da se spool vrati. Dokumentirao sam kako radi za moj telefon u bilješkama na fotografiji ispod. Tu je i mutni video o mehanizmu koji radi.

Korak 3: Napravite krug

Napravite krug
Napravite krug
Napravite krug
Napravite krug

Nakon što pronađete prekidač koji je napravljen i slomljen, trebali biste moći identificirati veze slijedeći žice natrag do priključaka za povezivanje. U mom slučaju, dvije strane prekidača spojene su na dva krajnja lijeva terminala. Priključite ove terminale na neke kratkospojne žice i nabavite prototipove! Prekidač na brojčaniku je uvijek uključen i prekida se za svaki impuls pri biranju, pa sam upotrijebio vrlo jednostavan krug u nastavku. Pin 2 će ići visoko za svaki impuls kako se brojčanik okreće. Kada se telefon ne bira, prekidač u jedinici za biranje je zatvoren (tzv. NORMALNO ZATVOREN prekidač, iz očiglednih razloga) pa krug spaja pin 2 na masu (što je za Arduino NISKO). To je zato što otpor ima otpornik od 470 ohma nego otpornik od 10 K. Puno je manji otpor. Dok se telefon bira, prekidač se brzo otvara i zatvara (za 9 će se otvoriti i zatvoriti devet puta, zapamtite). Kad je sklopka otvorena, pin 2 nije spojen na masu - umjesto toga, spojen je na 5V napajanje kroz otpor od 10470 ohma. Arduino to tumači kao VISOKO. Ako vaš brojčanik ima prekidač NORMALNO OPEN, tada zamjena položaja 10K otpornika i brojčanik bi trebali uspjeti.

Korak 4: Razvijte Kodeks

Razvijte Kodeks
Razvijte Kodeks

Sada nam je potreban neki kôd za Arduino da broji impulse i šalje ukupan broj po biranom broju nazad kroz serijski port. Moj kôd je ispod. Kako ovdje imamo posla s mehanikom, vaši se mogu razlikovati. Pokušajte se poigrati konstantom debounce i konstantom 'koliko dugo čekamo prije nego što pretpostavimo da je brojčanik završio rotiranje'. Pokušao sam to komentirati što je moguće urednije. Nadajmo se da je to prilično jednostavno.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 čitanje = digitalRead (in); if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// brojčanik nije biran ili je upravo završen. if (needToPrint) {// ako je biranje tek završeno, moramo poslati broj niz serijski // redak i resetirati broj. Modificirali smo brojanje za 10 jer će '0' poslati 10 impulsa. Serijski ispis (broj % 10, DEC); needToPrint = 0; count = 0; očišćeno = 0; }} if (čitanje! = lastState) {lastStateChangeTime = millis (); } if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - to se događa nakon što se stabilizira ako (čitanje! = trueState) {// to znači da je prekidač upravo izašao iz zatvoreno-> otvoreno ili obrnuto. trueState = čitanje; if (trueState == HIGH) {// povećati broj impulsa ako se povećao. count ++; needToPrint = 1; // trebat ćemo ispisati ovaj broj (nakon što se brojčanik zavrti okretati)}}} lastState = čitanje;}

Korak 5: Provjerite radi li

Provjerite radi li otvaranjem serijskog prozora (ja koristim zaslon na unix stroju, možda biste htjeli koristiti Hyperterm ili slično u sustavu Windows) i pokušajte birati neke brojeve. Provjerite je li serijski program postavljen za čitanje s USB-a > serijski adapter u vašem Arduinu (provjerite izbornik Alati-> Serijski port u softveru Arduino ako ste zaboravili što je to) i brzinu prijenosa od 9600 bps. Trebali biste vidjeti točan broj koji se pojavljuje prilikom biranja.

Korak 6: Uključite ga u nešto korisno

Zakačite ga u nešto korisno!
Zakačite ga u nešto korisno!

Smislio sam datoteku Quartz Composer na svom Macu kako bih uneo unos i lijepo ga prikazao na ekranu. Nakon što se u stroju unese kao serijski podatak, možete učiniti sve s njim. Čekajući vaše ideje! Donijet ću video zapis "na djelu" i ispisati brojeve na ekran čim dobijem nekoga da mi drži kameru - volio bih da imam tri ruke.

Preporučeni: