سؤال

لذلك أنا صنع رسم تخطيطي يتطلب رقمين من منفذ USB، يتحقق من حالة PIN التي تطابق الرقم، ثم تبديل PIN ON / OFF.

خذ نظرة خاطفة في المصدر

لسبب ما، عندما أرسل 13 من خلال شاشة اردوينو المسلسل، أحصل على هذه الرسالة مرة أخرى: Pin number is greater than 14, details: 490 51 541

وهذا يعني أن IDE يرسل أرقاما غريبة، أو واردوينو يعالجون خطأهم. هل يرى أي منكم مشكلة لماذا هذا لا يعمل بشكل صحيح؟

هل كانت مفيدة؟

المحلول

إذا قمت بدخول ASCII. الأحرف "1" ثم "3" ثم Serial.read() سوف يعود 49 و 51. هذا لأنه في ASCII. يتم تمثيل جدول الأحرف "1" و "3" بالأرقام 49 و 51 على التوالي. إذا كنت ترغب في العثور على الرقم الذي كتبه المستخدم عليك تحويله من ASCII..

أنا لست على دراية بلغة أردوينو، لكن افتراض أنه يشبه C يمكنك العثور على التغييرات اللازمة هنا.

أعيد كتابة البرنامج بطريقة أخرى، والتي مايو كن أكثر وضوحا اقرأ.

"0" المستخدمة في المصدر هي ببساطة طريقة أخرى لقول "الرقم المستخدم لتمثيل الحرف" 0 ""، وكذلك هو 48. باللغات C '0' == 48, '1' == 49, ، إلخ، إلخ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top