Съдържание:

Свържете ротационен телефон с Arduino: 6 стъпки (със снимки)
Свържете ротационен телефон с Arduino: 6 стъпки (със снимки)

Видео: Свържете ротационен телефон с Arduino: 6 стъпки (със снимки)

Видео: Свържете ротационен телефон с Arduino: 6 стъпки (със снимки)
Видео: Leap Motion SDK 2024, Юли
Anonim
Свържете ротационен телефон с Arduino
Свържете ротационен телефон с Arduino
Свържете ротационен телефон с Arduino
Свържете ротационен телефон с Arduino

Стар ротационен телефон може да се използва за редица цели във вашите проекти на Arduino - използвайте го като ново входно устройство или използвайте Arduino, за да свържете интерфейсен ротационен телефон към вашия компютър. към Arduino и наберете набрания номер в компютър през серийната връзка на Arduino.

Стъпка 1: Премахнете циферблата от телефона

Извадете циферблата от телефона
Извадете циферблата от телефона
Извадете циферблата от телефона
Извадете циферблата от телефона
Извадете циферблата от телефона
Извадете циферблата от телефона

Първата стъпка е да премахнете циферблата от телефона. Използвам GPO телефон от 70 -те години. На този телефон циферблатът изскочи направо - просто трябваше да го дръпна. Ако това не стане, може да се наложи да отворите телефона и да разберете как да го свалите. Имаше пет кабела, свързани към задната част на циферблата. На телефона ми това бяха обикновени връзки с лопата, така че разхлабих винтовете и ги извадих. Ако искате да съберете отново телефона си, не забравяйте да запишете кой цветен проводник отива към коя връзка.

Стъпка 2: Идентифицирайте превключвателя

Идентифицирайте превключвателя
Идентифицирайте превключвателя

След като циферблатът излезе, би трябвало да бъде сравнително лесно да се види как циферблатът превръща въртящото се движение в импулси. Опитайте да завъртите циферблата на ръка и да наблюдавате движението на гърба. Трябва да видите как превключвателят прави и прекъсва веригата бързо - така че ако наберете „9“, превключвателят трябва да се включи девет пъти. За тези от вас, които може би никога не са използвали въртящ се диск преди това - не забравяйте, че набирането се случва само когато позволите отидете на номера и го оставете да се навие обратно. Документирах как работи за моя телефон в бележките на снимката по -долу. Има и размазан видеоклип на функциониращия механизъм.

Стъпка 3: Направете веригата

Направете веригата
Направете веригата
Направете веригата
Направете веригата

След като откриете превключвателя, който е направен и счупен, трябва да можете да идентифицирате връзките, като следвате проводниците обратно към терминалите за свързване. В моя случай двете страни на превключвателя са свързани към двата крайни ляви извода. Превключвателят в циферблата ми е винаги включен и е счупен за всеки импулс при набиране, затова използвах много простата схема по-долу. Пин 2 ще върви ВИСОКО за всеки импулс, докато циферблатът се върти. Когато телефонът не се набира, превключвателят в циферблата се затваря (т.нар. НОРМАЛНО ЗАТВОРЕН ключ, по очевидни причини), така че веригата свързва щифт 2 към земята (който към Arduino е НИСКИ). Това е така, защото съпротивлението през резистора от 470 ома е много по -малко от резистора 10 K. Когато телефонът се набира, превключвателят се отваря и затваря бързо (за 9, той ще се отваря и затваря отново девет пъти, не забравяйте). Когато превключвателят е отворен, щифт 2 не е свързан към земята - вместо това той е свързан към 5V захранването чрез съпротивление от 10470 ома. Това се интерпретира от Arduino като ВИСОКО. Ако вашият циферблат има превключвател NORMALLY OPEN, тогава размяната на позициите на 10K резистора и циферблатът трябва да свършат работа.

Стъпка 4: Разработете кода

Разработете кодекса
Разработете кодекса

Сега имаме нужда от код за Arduino, за да преброи импулсите и да изпрати общия брой на набран номер обратно през серийния порт. Моят код е по -долу. Тъй като тук имаме работа с механика, вашите може да се различават. Опитайте да си поиграете с константата на debounce и константата „колко време чакаме, преди да приемем, че циферблатът е завършил въртенето“. Опитах се да го коментирам възможно най -добре. Да се надяваме, че е доста просто. Int needToPrint = 0; int count; int in = 2; int lastState = LOW; int trueState = LOW; void setup () {Serial.begin (9600); pinMode (in, INPUT);} void loop () {int read = digitalRead (in); if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// циферблатът не се набира или току -що приключи. if (needToPrint) {// ако току -що приключи набирането, трябва да изпратим номера по серийния // ред и да нулираме броя. Ние модифицираме броя с 10, защото „0“ще изпрати 10 импулса. Serial.print (брой % 10, DEC); needToPrint = 0; брой = 0; изчистен = 0; }} if (четене! = lastState) {lastStateChangeTime = millis (); } if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - това се случва, след като се стабилизира if (четене! = trueState) {// това означава, че превключвателят или е излязъл от затворен-> отворен или обратно. trueState = четене; if (trueState == HIGH) {// увеличава броя на импулсите, ако той е висок. брой ++; needToPrint = 1; // ще трябва да отпечатаме този номер (след като циферблатът завърши завъртането)}}} lastState = четене;}

Стъпка 5: Проверете дали работи

Проверете дали работи, като отворите сериен прозорец (използвам екран на Unix машина, може да искате да използвате Hyperterm или подобен в Windows) и опитайте да наберете някои номера. Уверете се, че серийната програма е настроена да чете от USB- > сериен адаптер във вашия Arduino (проверете менюто Tools-> Serial Port в софтуера Arduino, ако забравите какво е това) и скорост на предаване от 9600 bps. Трябва да видите правилния номер, който се появява, когато се набира.

Стъпка 6: Включете го в нещо полезно

Закачете го в нещо полезно!
Закачете го в нещо полезно!

Измислих Quartz Composer файл на моя Mac, за да използвам въведените данни и да ги изобразя добре на екрана. След като е в машината като серийни данни, можете да правите всичко с нея. В очакване да чуя вашите идеи! Ще измисля видеоклип от нея „в действие“и ще отпечатам номерата на екрана веднага щом мога да намеря някого да ми държи камерата - дано имам три ръце.

Препоръчано: