اردوينو analogRead () إرجاع غير المرغوب فيه عند طباعة عبر مسلسل

StackOverflow https://stackoverflow.com/questions/1013936

  •  06-07-2019
  •  | 
  •  

سؤال

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

  valm = analogRead(0);
  Serial.println(valm);

وما يحصل من رصد المسلسل هو هذا:     ؟ ي؟ د؟ ± μ؟ المنتديات ؟؟ JDD؟ ± μ ؟؟؟ ºjRd؟ ± μ ؟؟؟ ºj؟ د؟ ± μ؟ المنتديات ؟؟ ي؟ د؟ ± μ؟ É؟ ªjRd؟ ± μ ؟؟ ؟ ÊjRd؟ ± μ ؟؟؟ AJ؟ د؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ É ؟؟ ي     طريق؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ ؟؟؟ ºj؟ د؟ ± μ؟ É ؟؟ JRD؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ الإلكتروني؟ ÊjDd؟ ± μ ؟؟ ؟ AJ؟ د؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ É ؟؟ JRD؟ ± μ ؟؟؟؟ ي؟ د     ؟ ± μ؟ É؟ ÂjRd؟ ± μ ؟؟؟ EJ؟ د؟ ± μ ؟؟؟ ªj؟ د؟ ± μ؟ الإلكتروني؟ EJ $ د؟ ± μ ؟؟؟ ÂjRd؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ ؟؟؟؟ JDD؟ ± μ ؟؟؟؟ JRD؟ ± μ ؟؟؟ AJ؟ د؟ ±     μ؟ É؟ ÊjRd؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ Ò؟ EJ؟ د؟ ± μ؟ É؟ ÂjRd؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ É ؟؟ JRD؟ ± μ ؟؟؟ AJ؟ د؟ ± μ ؟؟؟ EJ؟ د؟ ± μ؟     ؟؟ ªj؟ د؟ ± μ ؟؟؟ EJ؟ د؟ ± μ ؟؟؟ ÂjRd؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ É ؟؟ JRD؟ ± μ ؟؟؟ AJ؟ د؟ ± μ؟ Ò؟ EJ؟ د؟ ± μ؟ É؟ ªj؟ د؟ ± μ؟ É؟     ؟ JTD؟ ± μ ؟؟؟ AJ؟ د؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ É ؟؟ JRD؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ É؟ ÂjRd؟ ± μ؟ ؟؟ EJ؟ د؟ ± μ؟ É؟ ªjRd؟ ± μ ؟؟؟ EJ؟ د؟ ± μ ؟؟؟ ºj     ؟ د؟ ± μ؟ È ؟؟ JTD؟ ± μ ؟؟؟؟ JRD؟ ± μ ؟؟؟ ªj؟ د؟ ± μ؟ عرب؟ ÂjTd؟ ± μ؟ É؟ ÊjRd؟ ± μ ؟؟؟ ªj؟ د ؟ ± μ ؟؟؟ EJ؟ د؟ ± μ ؟؟؟ ºj؟ د؟ ± μ؟ É ؟؟ JRD     ؟ ± μ ؟؟؟ EJ؟ د؟ ± μ ؟؟؟ ªj؟ د؟ ± μ؟ É؟ ÂjPd؟ ± μ ؟؟؟ EJ؟ د؟ ± μ ؟؟؟ ªj؟ د؟ ± μ؟ Â؟ EJ ؟ د؟ ± μ؟ É؟ ºjRd؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ É ؟؟ JRD؟ ±     μ ؟؟؟ ªj؟ د؟ ± μ؟ الإلكتروني؟ AJ؟ د؟ ± μ ؟؟؟ ÊjRd؟ ± μ ؟؟؟ ªj؟ د؟ ± μ؟ Ò؟ EJ؟ د؟ ± μ ؟؟؟ ºjRd؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ ؟؟؟ EJ؟ د؟ ± μ؟ الإلكتروني؟ ªjdd؟ ± μ؟     ؟؟ ÂjRd؟ ± μ ؟؟؟ AJ؟ د؟ ± μ؟ É؟ ªjPd؟ ± μ ؟؟؟ EJ؟ د؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ É ؟؟ JRD؟ ± μ؟ ؟؟ EJ؟ د؟ ± μ؟ É؟ ªjdd؟ ± μ ؟؟؟ ÂjRd؟ ± μ ؟؟؟     AJ؟ د؟ ± μ؟ É؟ ªjDd؟ ± μ ؟؟؟ EJ؟ د؟ ± μ؟ المنتديات ؟؟ ي؟ د؟ ± μ؟ É ؟؟ JRD؟ ± μ ؟؟؟ ÊjRd؟ ± μ ؟؟؟ ªj؟ د؟ ± μ؟ الإلكتروني؟ ÂjPd؟ ± μ ؟؟؟ AJ؟ د؟ ± μ ؟؟؟ ªj     ؟ د؟ ± μ؟ É؟ Êjdd؟ ± μ؟ É ؟؟ JRD؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ É؟ EJ $ د؟ ± μ ؟؟؟ ªjRd؟ ± μ ؟؟؟ AJ ؟ د؟ ± μ؟ Â؟ ÂjTd؟ ± μ ؟؟؟ ªj؟ د؟ ± μ ؟؟؟ EJ؟ د     ؟ ± μ ؟؟؟؟ JRD؟ ± μ ؟؟؟؟ ي؟ د؟ ± μ؟ É؟ ÊjTd؟ ± μ ؟؟؟ ªjRd؟ ± μ ؟؟؟ AJ؟ د؟ ± μ ؟؟؟ AJ؟ د ؟ ± μ؟ É؟ ªjRd؟ ± μ ؟؟؟ ÊjRd؟ ± μ؟ Ò ؟؟ JTD؟ ±     μ ؟؟؟؟ ي؟ د؟ ± μ ؟؟؟ EJ

لماذا؟


وتحرير:

وأنا قد وضعت دبوس رقمي من 0 إلى الإخراج، واعتقدت ربما كان ذلك مشكلة لذلك ذهبت إلى موقع اردوينو وجدت في صفحة <وأ href = "http://arduino.cc/en/ تعليمي / AnalogInputPins "يختلط =" نوفولو noreferrer "> دبابيس مدخلات تناظرية .

وهكذا حاولت قراءة من دبوس 14 الذي يقولون انه مدخلات تناظرية دبوس 0، لكني حصلت على نفس المخرج.

وبالمناسبة، أنا أحاول قراءة من التناظرية دبابيس فقط، وليس اللي تبونه واحد أيضا الرقمي.

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

المحلول

وحاول تشغيل هذا نموذج التعليمات البرمجية الموجودة على الموقع اردوينو. يجب أن لا حاجة لتحويل valm متغير أو أي شيء.

/*
  Analog input

    Reads an analog input on analog in 0, and prints the value out.

    Created 24 March 2006
    by Tom Igoe
*/

int analogValue = 0;    // Variable to hold the analog value.

void setup() {
    // open the serial port at 9600 bit/s:
    Serial.begin(9600);
}

void loop() {
    // Read the analog input on pin 0:
    analogValue = analogRead(0);

    // Print it out in many formats:
    Serial.println(analogValue);       // print as an ASCII-encoded decimal
    Serial.println(analogValue, DEC);  // print as an ASCII-encoded decimal
    Serial.println(analogValue, HEX);  // print as an ASCII-encoded hexadecimal
    Serial.println(analogValue, OCT);  // print as an ASCII-encoded octal
    Serial.println(analogValue, BIN);  // print as an ASCII-encoded binary
    Serial.println(analogValue, BYTE); // print as a raw byte value

    // Delay 10 milliseconds before the next reading:
    delay(10);
}

إذا الإخراج الخاص بك لا يزال غامضا، هناك شيء خاطئ مع محطة التسلسلي الخاص بك.

نصائح أخرى

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

وتحتاج إلى تعيين بالباود في إطار رصد المسلسل (أسفل الزاوية اليمنى) إلى نفس القيمة الذي تم تعيينه في التعليمات البرمجية (على سبيل المثال Serial.begin(9600);).

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

وكما هو سلك لكم موصول التناظرية في عائم؟ لأنه إذا كان كذلك، فإنه سوف يتصرف تماما مثل هوائي والاستيلاء الضجيج العشوائي (على الرغم من قد يكون لديك عنصر قوي 60HZ).

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