Оглавление:
- Шаг 1. Снимите циферблат с телефона
- Шаг 2. Определите коммутатор
- Шаг 3: Сделайте схему
- Шаг 4: Разработайте код
- Шаг 5: Убедитесь, что это работает
- Шаг 6: Подключите его к чему-нибудь полезному
Видео: Интерфейс дискового переключателя телефона с Arduino: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:55
Старый поворотный телефон можно использовать для различных целей в ваших проектах Arduino - используйте его как новое устройство ввода или используйте Arduino для подключения поворотного телефона к компьютеру. Это очень простое руководство, описывающее, как взаимодействовать с диском. к Arduino, и получите набранный номер, переданный в компьютер по последовательному каналу Arduino.
Шаг 1. Снимите циферблат с телефона
Первый шаг - снять блок набора с телефона. Я использую какой-то телефон GPO 1970-х годов. На этом телефоне циферблат выскочил наружу - мне просто нужно было его потянуть. В противном случае вам, возможно, придется открыть телефон и решить, как его снять. К задней части блока набора номера было подключено пять кабелей. В моем телефоне это были обычные лопаточные соединения, поэтому я ослабил винты и вытащил их. Если вы хотите собрать телефон заново, не забудьте записать провод какого цвета к какому разъему идет.
Шаг 2. Определите коммутатор
Как только циферблат выключен, должно быть относительно легко увидеть, как циферблат преобразует вращательное движение в импульсы. Попробуйте покрутить циферблат вручную и понаблюдать за движением на спине. Вы должны увидеть, как переключатель быстро замыкает и размыкает цепь - поэтому, если вы наберете «9», переключатель должен сработать девять раз. Для тех из вас, кто, возможно, никогда раньше не пользовался поворотным переключателем, помните, что набор номера происходит только тогда, когда вы позволяете наберите номер и дайте ему вернуться обратно. Я задокументировал, как это работает для моего телефона, в примечаниях к фотографии ниже. Также есть размытое видео работы механизма.
Шаг 3: Сделайте схему
Как только вы найдете выключатель, который был собран и сломан, вы сможете определить соединения, проследив за проводами до соединительных клемм. В моем случае две стороны переключателя подключены к двум крайним левым клеммам. Подключите эти клеммы к некоторым перемычкам и получите прототип! Переключатель на моем циферблате всегда включен и ломается при каждом импульсе при наборе номера, поэтому я использовал очень простую схему, представленную ниже. Контакт 2 будет ВЫСОКИМ для каждого импульса при вращении шкалы. Когда телефон не набирается, переключатель в блоке набора замкнут (так называемый переключатель НОРМАЛЬНО ЗАКРЫТ по понятным причинам), поэтому схема соединяет контакт 2 с землей (который для Arduino имеет низкий уровень). Это связано с тем, что сопротивление резистора 470 Ом намного меньше, чем сопротивление резистора 10 кОм. Когда телефон набирает номер, переключатель быстро размыкается и замыкается (для 9 он будет размыкаться и замыкаться снова девять раз, помните). Когда переключатель разомкнут, контакт 2 не подключен к земле - вместо этого он подключен к источнику питания 5 В через сопротивление 10470 Ом. Это интерпретируется Arduino как ВЫСОКОЕ. Если на вашем циферблате есть переключатель НОРМАЛЬНО ОТКРЫТ, то поменяйте местами резистор 10 кОм и циферблат.
Шаг 4: Разработайте код
Теперь нам нужен код для Arduino для подсчета импульсов и отправки общего числа на набранный номер через последовательный порт. Мой код ниже. Поскольку здесь мы имеем дело с механикой, ваша может отличаться. Попробуйте поиграть с константой debounce и константой «сколько нам ждать, прежде чем предположить, что циферблат закончил вращаться». Я попытался прокомментировать это как можно аккуратнее. Надеюсь, это довольно просто. 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 чтение = digitalRead (in); if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// набор номера не набирается или только что закончился набор. if (needToPrint) {// если набор только что закончился, нам нужно отправить номер по последовательной // строке и сбросить счетчик. Мы модифицируем счетчик на 10, потому что «0» отправит 10 импульсов. Serial.print (count% 10, DEC); needToPrint = 0; count = 0; очищено = 0; }} если (чтение! = lastState) {lastStateChangeTime = millis (); } if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - это происходит после стабилизации if (reading! = trueState) {// это означает, что переключатель только что перешел с закрытого-> открытого состояния или наоборот. trueState = чтение; if (trueState == HIGH) {// увеличиваем счетчик импульсов, если он стал высоким. count ++; needToPrint = 1; // нам нужно будет распечатать это число (когда циферблат закончит вращаться)}}} lastState = reading;}
Шаг 5: Убедитесь, что это работает
Убедитесь, что он работает, открыв окно последовательного порта (я использую screen на машине unix, возможно, вы захотите использовать Hyperterm или что-то подобное в Windows) и попробуйте набрать несколько номеров. Убедитесь, что программа последовательного порта настроена на чтение с USB- > последовательный адаптер в вашем Arduino (проверьте меню Tools-> Serial Port в программном обеспечении Arduino, если вы забыли, что это такое) и скорость передачи 9600 бит / с. Вы должны увидеть, как правильный номер появляется при его наборе.
Шаг 6: Подключите его к чему-нибудь полезному
Я придумал файл Quartz Composer на моем Mac, чтобы принимать входные данные и красиво отображать их на экране. Как только он появится в машине в виде последовательных данных, вы можете делать с ним все, что угодно. Жду ваших идей! Я придумываю видео об этом в действии и распечатываю числа на экране, как только смогу кого-нибудь найти. Держать камеру за меня - жаль, что у меня не было трех рук.
Рекомендуемые:
Как сделать схему переключателя хлопков: 12 шагов (с изображениями)
Как сделать схему переключателя хлопков: Привет, друг, сегодня я собираюсь сделать схему переключателя хлопков. Когда мы хлопаем в ладоши, светодиод будет светиться. Эта схема потрясающая. Чтобы сделать эту схему, я буду использовать LM555 IC и транзистор C945. начать
Волосатые айфон! СЛУЧАЙ ДЛЯ ТЕЛЕФОНА DIY Life Hacks - Чехол для телефона с горячим клеем: 6 шагов (с изображениями)
Волосатые айфон! СЛУЧАЙ ДЛЯ ТЕЛЕФОНА DIY Life Hacks - Чехол для телефона с горячим клеем: держу пари, вы никогда не видели волосатый iPhone! Что ж, в этом руководстве по созданию чехлов для телефона своими руками вы обязательно это сделаете! :)) Поскольку наши телефоны в настоящее время немного похожи на нашу вторую личность, я решил сделать " миниатюра меня "… Немного жутковато, но очень весело
Улучшение USB-переключателя: 5 шагов (с изображениями)
Улучшение переключателя USB: дома я использую два компьютера, подключенных вместе к одному монитору, одной клавиатуре и одной мыши через переключатель KVM. На столе у меня также есть принтер, который я использую на обоих компьютерах. К сожалению, KVM-переключатель не поддерживает мультиплексирование USB и
Используйте прошивку Homie для управления модулем переключателя Sonoff (на базе ESP8266): 5 шагов (с изображениями)
Используйте прошивку Homie для управления модулем коммутатора Sonoff (на основе ESP8266): это продолжение инструкций, я написал его немного после статьи «Создание устройств Homie для IoT или домашней автоматизации». В последнем случае основное внимание уделялось базовому мониторингу (DHT22, DS18B20, свет) плат D1 Mini. На этот раз я хотел бы показать
Делайте потрясающие макро-снимки с помощью любой камеры телефона, камеры телефона особенно iPhone: 6 шагов
Делайте потрясающие макро-снимки с помощью любой камеры телефона Камера … Особенно iPhone: Всегда хотел сделать одну из этих потрясающих фотографий крупным планом … ту, которая гласит … ВАУ!? … с камерой телефона не меньше !? По сути, это дополнение для любой камеры телефона с камерой, позволяющее увеличить объектив существующей камеры, чтобы снимать