Съдържание:
- Стъпка 1: Вземете неща
- Стъпка 2: Разделете телефона
- Стъпка 3: Определете какво правят проводниците
- Стъпка 4: Свържете набирача към PIC чипа
- Стъпка 5: Съберете кода
- Стъпка 6: Тестване
- Стъпка 7: Преминете
Видео: PIC интерфейс на ротационен номер: 7 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:55
Намерих се с изобилие от ротационни телефони. Всъщност те са навсякъде, където погледна. С надеждата някой ден да видя по-малко от тях, започнах да ги разглобявам и използвам повторно частите за други цели.
По някаква причина си научих, че свързването на въртящото се управление с PIC чип би било добра идея. В момента мога да се сетя само за няколко неясни употреби за него и нито една не е особено полезна, но се надявам да направя нещо готино с това в бъдеще.
Стъпка 1: Вземете неща
Ще ви трябват: 1 - Ротационен телефон 3 - 220 ома резистори 2 - 0,1uF кондензатори 2 - 20K резистор (може да замени всичко между 10K и 47K) 2 - LED1 или кристал1 - Платка1 - 5V източник на захранване1 - Крак или повече от свързващ проводник1 - Отвертка1 - Машина за отстраняване
Стъпка 2: Разделете телефона
Отворете своя ротационен телефон. От вътрешната страна ще забележите няколко основни части; въртящият се циферблат, звъненето, двата жака, превключвателя на куката и основната схема, която обикновено е затворена в нещо подобно на метална кутия.
Ще има четири проводника, вървящи от въртящия се набирач към това нещо, подобно на съединителната кутия. Проводниците трябва да се държат на място с малко повече от затегнати винтове. Разхлабете винтовете и изключете проводниците. След това изключете въртящия се номер от самия телефон.
Стъпка 3: Определете какво правят проводниците
Свържете два светодиода, както е показано на диаграмата по -долу.
Двата бели проводника трябва да са двойката, която затваря превключвателя, която ви позволява да знаете кога циферблатът е завъртян. Синият и зеленият проводник трябва да са двойката, която ви позволява да знаете кой номер е набран. По този начин, когато завъртите циферблата, светодиодът, свързан с белите проводници, трябва да се включи, а когато пуснете циферблата, светодиодът, свързан със сините и зелените проводници, трябва да мига и изключва толкова пъти, колкото номера набрани (вижте видеоклипа). Например, ако наберете 8, светодиодът, свързан към зеления и синия проводник, ще се изключи и включи 8 пъти. Това се случва, защото един от начините за набиране на телефонен номер е бързото прекъсване на връзката колко пъти за цифрата, която се опитвате да наберете. Така че отново, за да наберете 8, трябва бързо да прекъснете връзката 8 пъти.
Стъпка 4: Свържете набирача към PIC чипа
Свържете въртящия се дайлер към PIC чипа, както е показано на диаграмата. Забележете, че чета в състояние на въртящо се набиране чрез използване на RC-синхронизация. С други думи, PIC чипът отчита броя пъти, необходими за разреждане на кондензатор (което се променя, когато се добави съпротивление).
Това е мястото, където 20K резистор идва. Добавянето на това към входа позволява ясно разграничаване на сигнала от затворена и отворена връзка с въртящ се превключвател.
Стъпка 5: Съберете кода
За програмиране на чипа използвах средата за разработка MBasic, достъпна от Basic Micro. MBasic, съвсем просто, е вариант на Basic, предназначен за използване с PIC чипове. Той лесно се конвертира в по -универсален (полезен) език. Кодът по същество определя кога някой е завъртял циферблата и след това извършва откриване на ръба на сигнала (определяне на ниско-високи преходи), докато циферблатът се върне в първоначалното си състояние. След като изчисли броя пъти, когато измерва прехода на сигнал, той съответно мига светодиода. Например, ако наберете 3, PIC ще преброи три ниско-високи прехода и след това ще премигне 3 пъти светодиод. Както може би сте предположили, светодиодът не е необходим, за да работи и е само там, за да ви даде видима обратна връзка. Можете да замените всяко изходно устройство, което сметнете за необходимо. ********************* Ето малко код: ********************* CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain: countclicks = 0repvar = 0 'задава/нулира стойностиhigh B2rctime B2, 1, startcountincountclicks = 0if startcountin се върна до 10 отива на подпрограма, ако има mainto '================ countmeup: висока B1rctime B1, 1, clacker'sets сравни valuegoto countmeuploop' =========== ===== countmeuploop: висока B1 време на работа B1, 1, clicker'проверява стойност на броенеlargefig = clacker + 100'задава стойност за прага, който ще бъде по-голям 'от 0, но по-малък от възможните pin-high стойности, ако bigfig <clicker thencountclicks = countclicks + 1endif'adds 1 стойност всеки път, когато се записва нисък към висок преход високо B2rctime B2, 1, startcountinif startcountin <10 thenif countclicks> 0 thengoto blinkelsegoto mainendifendif 'проверява дали циферблатът е отстъпил обратно към i нормално състояние "ако има и е набран номер, той отива в рутината за LED" в противен случай, ако не е набран номер, той отива в mainclacker = clicker "нулира сравнителната стойност към текущата стойност на щифта, за да преброи meuploop'no паузи на всички в тази рутина ! '================ мигач: repvar = repvar + 1'брои всяко повторение на тази рутина висока B3 пауза 1000 ниска B3пауза 1000' мига светодиода, ако repvar = countclicks thenrepvar = 0 goto mainendif' ако повторения, равен на броя пъти, когато светодиодът трябва да мига, след това се връща към основната рутина, за да преминете
Стъпка 6: Тестване
Ако сте направили всичко същото като мен, трябва да работи (вижте видеото).
Ако не работи, уверете се, че сте свързали всичко правилно и кодът е копиран правилно. Също така бъдете сигурни, че вашият резонатор (или кристал) е 20 MHZ. Ако сте написали свой собствен код, уверете се, че няма паузи в рутината, която проверява за ниско-високи преходи.
Стъпка 7: Преминете
Помислете за някаква друга употреба на въртящия се циферблат, различна от мигането на светодиод.
Препоръчано:
Вземете серийния номер на DS18B20 с Arduino: 5 стъпки
Вземете серийния номер на DS18B20 с Arduino: Това е кратко ръководство за това как да получите индивидуалните серийни номера на вашите 1-жични температурни сензори DS18B20. Това е удобно за проекти, които изискват множество сензори. Нещо, от което се нуждаете: Arduino 5v ( UNO, Mega, Pro Mini и др.) - Arduino UNO R3 - AliExpre
Nextion дисплей - Интерфейс и протокол, обяснени с PIC и Arduino: 10 стъпки
Nextion дисплей | Интерфейс и протокол, обяснени с PIC и Arduino: Nextion Display е много лесен за използване и лесен интерфейс с микроконтролери. С помощта на Nextion редактор можем да конфигурираме дисплея и можем да проектираме потребителски интерфейс на дисплея. Така че въз основа на събития или команди Nextion дисплей ще действа върху, за да покаже
Проста игра за отгатване на номер на Python: 11 стъпки
Проста игра за отгатване на номера на Python: В този урок ще се научим как да създаваме проста игра за отгатване на номера на Python в приложението Pycharm. Python е скриптов език, който е чудесен както за начинаещи, така и за експерти. Стилът на кодиране в Python е лесен за четене и следва
Как да получите страхотен изцяло текстов телефонен номер с Google Voice: 7 стъпки
Как да получите страхотен изцяло текстов телефонен номер с Google Voice: Google Voice е безплатна услуга, която ви позволява да управлявате всичките си телефони с един номер, преписва гласови съобщения в текст и дава безплатни SMS. Когато се регистрирате за Google Voice, получавате за да изберете число от милионите номера, запазени от Google
Как да тълкуваме посоката на въртене от цифров ротационен превключвател с PIC: 5 стъпки
Как да интерпретираме посоката на въртене от цифров ротационен превключвател с PIC: Целта на тази инструкция е да илюстрира как да се свърже цифров (квадратурно кодиран) въртящ се превключвател с микроконтролер. Не се притеснявайте, ще обясня какво? Квадратурно кодирано? означава за нас. Този интерфейс и придружаващият го софтуер ще