سؤال
لذلك أنا صنع رسم تخطيطي يتطلب رقمين من منفذ 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
, ، إلخ، إلخ.