جدول المحتويات:

توصيل قرص هاتف دوار بأردوينو: 6 خطوات (بالصور)
توصيل قرص هاتف دوار بأردوينو: 6 خطوات (بالصور)

فيديو: توصيل قرص هاتف دوار بأردوينو: 6 خطوات (بالصور)

فيديو: توصيل قرص هاتف دوار بأردوينو: 6 خطوات (بالصور)
فيديو: طريقة تصنيع النقود المعدنيه #الجزائر #مصر #العراق #السعودية 2024, يوليو
Anonim
قم بتوصيل قرص هاتف دوار مع Arduino
قم بتوصيل قرص هاتف دوار مع Arduino
قم بتوصيل قرص هاتف دوار مع Arduino
قم بتوصيل قرص هاتف دوار مع Arduino

يمكن استخدام الهاتف الدوار القديم لعدد من الأغراض في مشاريع Arduino - استخدمه كجهاز إدخال جديد ، أو استخدم Arduino لربط هاتف دوار بجهاز الكمبيوتر الخاص بك ، هذا دليل أساسي للغاية يصف كيفية توصيل الاتصال الهاتفي إلى Arduino ، والحصول على الرقم الذي تم الاتصال به والذي يتم تمريره إلى جهاز كمبيوتر عبر رابط Arduino التسلسلي.

الخطوة 1: إزالة الاتصال الهاتفي من الهاتف

قم بإزالة الطلب من الهاتف
قم بإزالة الطلب من الهاتف
قم بإزالة الطلب من الهاتف
قم بإزالة الطلب من الهاتف
قم بإزالة الطلب من الهاتف
قم بإزالة الطلب من الهاتف

الخطوة الأولى هي إزالة وحدة الاتصال من الهاتف. أنا أستخدم هاتف GPO من نوع ما من السبعينيات ، على هذا الهاتف ، ظهر الاتصال مباشرة - كنت بحاجة فقط إلى جره. إذا لم يحدث ذلك ، فقد تضطر إلى فتح الهاتف ومعرفة كيفية إزالته. كانت هناك خمسة كبلات متصلة بالجزء الخلفي من وحدة الاتصال. على هاتفي ، كانت هذه اتصالات الأشياء بأسمائها الحقيقية ، لذلك قمت بفك البراغي وسحبها. إذا كنت ترغب في إعادة تجميع هاتفك ، تذكر أن تقوم بتسجيل سلك اللون الذي ينتقل إلى أي اتصال.

الخطوة 2: تحديد المفتاح

تحديد التبديل
تحديد التبديل

بمجرد خروج الاتصال الهاتفي ، سيكون من السهل نسبيًا أن ترى كيف يحول القرص الحركة الدوارة إلى نبضات. حاول تدوير القرص باليد ومشاهدة الحركة على الظهر. يجب أن ترى مفتاحًا يقوم بعمل وكسر دائرة بسرعة - لذلك إذا قمت بالاتصال بالرقم 9 ، فيجب أن يتم تشغيل المفتاح تسع مرات. انتقل إلى الرقم واتركه يستعيد التخزين المؤقت لقد وثقت كيف يعمل مع هاتفي في ملاحظات الصورة أدناه ، وهناك أيضًا مقطع فيديو ضبابي لآلية العمل.

الخطوة 3: اصنع الدائرة

اصنع الدائرة
اصنع الدائرة
اصنع الدائرة
اصنع الدائرة

بمجرد العثور على المفتاح الذي يتم تصنيعه وكسره ، يجب أن تكون قادرًا على تحديد الاتصالات عن طريق متابعة الأسلاك مرة أخرى إلى أطراف التوصيل. في حالتي ، يتم توصيل جانبي المحول بالمحطتين الموجودتين في أقصى اليسار. قم بربط هذه المحطات ببعض أسلاك التوصيل ، واحصل على نماذج أولية! المفتاح الموجود في الاتصال الهاتفي يعمل دائمًا ، ويتم كسره لكل نبضة عند الاتصال ، لذلك استخدمت الدائرة البسيطة جدًا أدناه. سوف يرتفع الدبوس 2 لكل نبضة أثناء تدوير القرص. عندما لا يتم الاتصال بالهاتف ، يتم إغلاق المفتاح الموجود في وحدة الاتصال (ما يسمى بمفتاح مغلق NORMALLY CLOSED ، لأسباب واضحة) بحيث تقوم الدائرة بتوصيل دبوس 2 بالأرض (وهو منخفض في Arduino). هذا بسبب وجود مقاومة أقل بكثير من خلال المقاوم 470 أوم من المقاوم 10K. عندما يتم الاتصال بالهاتف ، يفتح المفتاح ويغلق بسرعة (بالنسبة لـ 9 ، سيتم فتحه وإغلاقه مرة أخرى تسع مرات ، تذكر). عندما يكون المفتاح مفتوحًا ، لا يتم توصيل الدبوس 2 بالأرض - بدلاً من ذلك يتم توصيله بمصدر 5 فولت من خلال مقاومة 10470 أوم. يفسر Arduino هذا على أنه مرتفع. إذا كان الاتصال الهاتفي الخاص بك يحتوي على مفتاح مفتوح بشكل طبيعي ، فعندئذٍ قم بتبديل مواضع المقاوم 10K وسيؤدي الاتصال الهاتفي إلى الحيلة.

الخطوة 4: تطوير الكود

تطوير المدونة
تطوير المدونة

نحتاج الآن إلى بعض التعليمات البرمجية لـ Arduino لحساب النبضات وإرسال الرقم الإجمالي لكل رقم يتم الاتصال به مرة أخرى عبر المنفذ التسلسلي. نظرًا لأننا نتعامل مع الميكانيكيين هنا ، فقد تختلف سيارتك. حاول التلاعب بثابت debounce و "كم من الوقت ننتظر قبل أن نفترض أن الاتصال الهاتفي قد انتهى من الدوران" ، لقد حاولت أن أعلق عليه بدقة قدر المستطاع. نأمل أن يكون الأمر بسيطًا جدًا.int needToPrint = 0 ؛ عدد صحيح ؛ int in = 2 ؛ int lastState = LOW ؛ int trueState = LOW ؛ long lastStateChangeTime = 0 ؛ int cleared = 0 ؛ // constantsint dialHasFinishedRotatingAfterMs = 100 ؛ int debounceDelay = 10 ؛ إعداد باطل () {Serial.begin (9600) ؛ pinMode (in ، INPUT) ؛} حلقة باطلة () {قراءة int = digitalRead (in) ؛ if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// لم يتم الاتصال بالطلب ، أو انتهى الاتصال به للتو. إذا (needToPrint) {// إذا انتهى الأمر للتو ، فنحن بحاجة إلى إرسال الرقم لأسفل في السطر التسلسلي // وإعادة تعيين العد. نقوم بتعديل العد بمقدار 10 لأن الرقم "0" سيرسل 10 نبضات. Serial.print (عدد٪ 10 ، DEC) ؛ needToPrint = 0 ؛ العد = 0 ؛ مسح = 0 ؛ }} if (reading! = lastState) {lastStateChangeTime = millis ()؛ } if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - يحدث هذا بمجرد استقراره إذا كان (reading! = trueState) {// هذا يعني أن المحول إما قد انتقل للتو من مغلق-> مفتوح أو العكس. trueState = قراءة ؛ if (trueState == HIGH) {// قم بزيادة عدد النبضات إذا كانت مرتفعة. العد ++ ؛ needToPrint = 1 ؛ // سنحتاج إلى طباعة هذا الرقم (بمجرد انتهاء القرص من الدوران)}}} lastState = Reading؛}

الخطوة 5: تحقق من أنها تعمل

تحقق من أنه يعمل عن طريق فتح نافذة تسلسلية (أستخدم شاشة على جهاز unix ، قد ترغب في استخدام Hyperterm أو ما شابه على Windows) ، وحاول طلب بعض الأرقام. تأكد من ضبط البرنامج التسلسلي للقراءة من USB- > محول تسلسلي في Arduino الخاص بك (تحقق من قائمة Tools-> Serial Port في برنامج Arduino إذا نسيت ما هو) ، ومعدل الباود 9600 بت في الثانية. يجب أن ترى الرقم الصحيح المنبثق عند الطلب.

الخطوة 6: اربطه بشيء مفيد

اربطه بشيء مفيد!
اربطه بشيء مفيد!

لقد توصلت إلى ملف Quartz Composer على جهاز Mac الخاص بي لأخذ الإدخال وعرضه بشكل جيد على الشاشة. بمجرد إدخالها في الجهاز كبيانات تسلسلية ، يمكنك فعل أي شيء بها ، في انتظار سماع أفكارك ، سأخرج مقطع فيديو لها "قيد التشغيل" وأطبع الأرقام على الشاشة بمجرد أن أحصل على شخص ما لعقد الكاميرا من أجلي - أتمنى لو كان لدي ثلاث أيدي.

موصى به: