Оглавление:
- Шаг 1: Приобретите материал
- Шаг 2: рассеките телефон
- Шаг 3: Определите, что делают провода
- Шаг 4: Подключите номеронабиратель к микросхеме PIC
- Шаг 5: Соберите код
- Шаг 6: Тестирование
- Шаг 7: выходите за рамки
Видео: Интерфейс PIC Rotary Dialer: 7 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
Я обнаружил, что у меня множество поворотных телефонов. Фактически, они везде, куда я смотрю. В надежде, что когда-нибудь я смогу увидеть их меньше, я начал разбирать их и повторно использовать части для других целей.
По какой-то причине мне пришло в голову, что соединение поворотного регулятора с микросхемой PIC было бы хорошей идеей. На данный момент я могу придумать только несколько смутных вариантов его использования, и ни одно из них не является особенно полезным, но я надеюсь сделать что-нибудь классное с этим в будущем.
Шаг 1: Приобретите материал
Вам понадобятся: 1 - поворотный телефон 3 - резисторы 220 Ом 2 - конденсаторы 0,1 мкФ 2 - резистор 20 кОм (можно заменить что угодно от 10 кОм до 47 кОм) 2 - светодиоды 1 - плата разработки PIC (я использовал среду разработки Basic Micro) 1 - 20 МГц резонатор или кристалл1 - Макетная плата1 - Источник питания 5В1 - Около фута соединительного провода1 - Отвертка1 - Инструмент для зачистки проводов
Шаг 2: рассеките телефон
Откройте свой поворотный телефон. Внутри вы заметите несколько основных частей; поворотный переключатель, звонок, два разъема, рычажный переключатель и основные схемы, которые обычно заключены в металлическую распределительную коробку.
От дискового номеронабирателя к этой штуке, похожей на распределительную коробку, будет идти четыре провода. Провода должны удерживаться на месте чуть более затянутыми винтами. Ослабьте винты и отсоедините провода. После этого отключите дисковую звонилку от самого телефона.
Шаг 3: Определите, что делают провода
Подключите два светодиода, как показано на схеме ниже.
Два белых провода должны быть парой, которая замыкает переключатель, который сообщает вам, когда диск повернут. Синий и зеленый провод должны быть парой, позволяющей узнать, какой номер был набран. Таким образом, когда вы поворачиваете циферблат, светодиод, подключенный к белым проводам, должен включаться, а когда вы отпускаете циферблат, светодиод, подключенный к синему и зеленому проводам, должен мигать столько раз, сколько вы набрал (см. видео). Например, если вы наберете 8, светодиод, подключенный к зеленому и синему проводу, погаснет и загорится 8 раз. Это происходит потому, что один из способов набора номера телефона - это быстро разорвать соединение столько раз, сколько раз набрать цифру, которую вы пытаетесь набрать. Итак, опять же, чтобы набрать 8, вам придется 8 раз быстро разорвать соединение.
Шаг 4: Подключите номеронабиратель к микросхеме PIC
Подключите дисковый номеронабиратель к микросхеме PIC, как показано на схеме. Обратите внимание, что я читаю в состоянии дискового набора номера с помощью RC-тайминга. Другими словами, микросхема PIC подсчитывает количество раз, которое требуется для разрядки конденсатора (которое изменяется при добавлении сопротивления).
Вот тут и пригодится резистор 20 кОм. Добавление его ко входу позволяет четко различать сигнал от замкнутого и разомкнутого соединения поворотного переключателя.
Шаг 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 = 0, если startcountin> 10' проверяется, если проверяется число переходит в подпрограмму, если у нее есть goto main '================ countmeup: high B1rctime B1, 1, clacker'sets compare valuegoto countmeuploop' =========== ===== countmeuploop: high B1rctime B1, 1, clicker'checks counting valuelargefig = clacker + 100 'устанавливает значение для порога, которое будет больше 0, но меньше возможных значений pin-high if largefig <clicker thencountclicks = countclicks + 1 endif 'добавляет 1 значение каждый раз, когда записывается переход от низкого к высокому уровню B2 rctime B2, 1, startcountin, если startcountin <10 then if countclicks> 0 thengoto blinkelsegoto mainendifendif' проверяет, отскочил ли циферблат обратно в исходное положение. начальное состояние 'если он есть и был набран номер, он переходит в процедуру LED', в противном случае, если номер не был набран, он переходит в mainclacker = кликер устанавливает значение сравнения на текущее значение пина goto countmeuploop 'нет ВСЕГО пауз в этой процедуре ! '========== количество повторений равно количеству миганий светодиода, затем он возвращается к основной процедуре перейти к миганию
Шаг 6: Тестирование
Если вы сделали все так же, как я, должно работать (см. Видео).
Если это не сработает, убедитесь, что вы все правильно подключили и что код скопирован правильно. Также убедитесь, что ваш резонатор (или кристалл) составляет 20 МГц. Если вы написали свой собственный код, убедитесь, что в подпрограмме, проверяющей переходы от низкого к высокому, нет пауз.
Шаг 7: выходите за рамки
Придумайте какое-нибудь другое использование поворотного переключателя, кроме мигания светодиода.
Рекомендуемые:
Аналоговый интерфейс для осциллографа: 6 шагов (с изображениями)
Аналоговый интерфейс для осциллографа: дома у меня есть несколько дешевых звуковых USB-карт, которые можно купить на Banggood, Aliexpress, Ebay или в других глобальных интернет-магазинах за несколько долларов. Мне было интересно, для чего их можно использовать, и я решил попробовать сделать низкочастотный прицел для ПК с
Jammarduino DUE - интерфейс DIY PC и Jamma для игровых шкафов: 6 шагов
Jammarduino DUE - DIY PC to Jamma Interface для аркадных шкафов: в этой инструкции вы узнаете, как создать простой экран для Arduino DUE, чтобы подключить настоящий аркадный автомат с ЭЛТ низкого разрешения и разъемом jamma к вашему ПК. для усиления видеосигнала, исходящего от видео
Интерфейс Arduino Mega с модулем GPS (Neo-6M): 8 шагов
Интерфейс Arduino Mega с модулем GPS (Neo-6M). В этом проекте я показал, как подключить модуль GPS (Neo-6M) к Arduino Mega. Библиотека TinyGPS используется для отображения данных долготы и широты, а TinyGPS ++ используется для отображения широты, долготы, высоты, скорости и количества спутников
Начало работы с интерфейсом датчика I2C ?? - Интерфейс вашего MMA8451 с использованием ESP32: 8 шагов
Начало работы с интерфейсом датчика I2C ?? - Интерфейс вашего MMA8451 с использованием ESP32: в этом руководстве вы узнаете все о том, как запустить, подключить и получить устройство I2C (акселерометр), работающее с контроллером (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Дисплей Nextion - Интерфейс и протокол, объясненные с помощью PIC и Arduino: 10 шагов
Дисплей Nextion | Интерфейс и протокол, объясненные с помощью PIC и Arduino: Nextion Display очень прост в использовании и имеет легкий интерфейс с микроконтроллером. С помощью редактора Nextion мы можем настроить дисплей и создать пользовательский интерфейс на дисплее. Таким образом, на основе событий или команд Nextion display будет действовать для отображения