সিরিয়াল তথ্য অদ্ভুত দেখাচ্ছে


12

আমার একটি সাধারণ স্কেচ রয়েছে যা "হ্যালো ওয়ার্ল্ড" সিরিয়ালে প্রিন্ট করে, তবে আমি তার বদলে একগুচ্ছ জিব্বারিশ পাচ্ছি।

void setup() {
    Serial.begin(9600);
}

void loop() {
    Serial.println("Hello World");
    delay(1000);
}

কোড বলার মতো এটি কেন "হ্যালো ওয়ার্ল্ড" মুদ্রণ করছে না?


সিরিয়াল পোর্টের সূচনা সঠিক কিনা এবং পিসি সিরিয়াল টার্মিনালের সাথে মেলে কিনা তা আপনি পরীক্ষা করেছেন? সেটআপে () এর সিরিয়াল.বেগিন (9600) এর মতো কিছু থাকা উচিত;
রাজেন্দ্র

@ রাজেন্দ্র যে লাইনটি আমি দিয়েছি কোড উদাহরণে রয়েছে। তদতিরিক্ত, আমি আসলে সমস্যা করছি না। এটি শুরুর পক্ষে একটি সাধারণ সমস্যা এবং আমি নীচের প্রশ্নের উত্তর দিয়েছি।
সেচলীন

উত্তর:


8

বোর্ড এবং টার্মিনাল সম্ভবত একই বাড রেট ব্যবহার করছে না। আরডুইনো সিরিয়াল টার্মিনালের নীচের ডান দিকের কোণটি পরীক্ষা করুন এবং এটি 9600 এ সেট করা আছে তা নিশ্চিত করুন।

ক্রমিক তথ্য

সিরিয়াল যোগাযোগ একবারে পুরো ডেটা স্ট্রিম প্রেরণ করে কাজ করে। এটি স্ট্যান্ডার্ড প্যারালাল পোর্টের বিপরীতে যা একবারে এক বাইট প্রেরণ করে। উভয় ডিভাইসটি কী গতিতে ডেটা পাঠানো হচ্ছে তা জানতে হবে। তদতিরিক্ত, উভয় ডিভাইস একই গতিতে অপারেটিং করা প্রয়োজন। একে বাউড রেট বলে।

বড হার

বাউডের সত্যিকার অর্থে প্রতি সেকেন্ডে ডাল। সিরিয়াল যোগাযোগের প্রসঙ্গে, এর অর্থ প্রতি সেকেন্ডে কত বিট সংক্রমণ হয়। সর্বাধিক সাধারণ মানগুলির মধ্যে একটি হ'ল 9600, তবে অন্যান্য সাধারণ রয়েছে যাগুলি কারণ বা গুণন যা 9600। এটি উভয় ডিভাইস একই গতিতে চালিত হওয়া অবধি সত্যিই কিছু যায় আসে না।

আমি যদি বার্তা পাচ্ছি তার চেয়ে দ্রুততর বার্তা দিচ্ছি তবে আপনি ডেটা হারাবেন। আমি যদি আপনার কাছে প্রাপ্ত বার্তার তুলনায় ধীরগতিতে আপনাকে বার্তা পাঠাচ্ছি, তবে আমি আপনাকে যা প্রেরণ করেছি তার সাথে আপনি মিশ্রিত হবেন।

ডেটা, সমতা, বিট বন্ধ করুন

আপনি যদি ডকুমেন্টেশনের দিকে নজর দেন তবে begin()আপনি দেখতে পাবেন এটি দুটি পরামিতি নিতে পারে:

Serial.begin(speed)
Serial.begin(speed, config)

আশা করি আপনি এখন গতি বুঝতে পারবেন, এটি প্রতি সেকেন্ডের বিট যা আরডুইনো যোগাযোগ করবে।

দ্বিতীয় প্যারামিটার, configআপনাকে সিরিয়াল ডেটা সংক্রমণ সম্পর্কে কিছু অন্যান্য জিনিস কনফিগার করতে দেয়। এগুলি হ'ল ডেটা, প্যারিটি এবং স্টপ বিট। আপনি পৃষ্ঠার এটা মান পছন্দ হয়েছে দেখতে পাবেন 5N1, 6N1এবংSERIAL_8N1 (the default)

প্রথম সংখ্যাটি কতগুলি বিট উপস্থাপন করে। দ্বিতীয় চরিত্রটি আপনাকে জানায় যে সেখানে কী ধরণের সাম্য বিট রয়েছে। Eএমনকি সমতা Oজন্য, বিজোড় সমতা জন্য, বা Nনা সমতা জন্য। তৃতীয় সংখ্যাটি আপনাকে জানায় কতগুলি বিট বন্ধ করে।

সুতরাং সত্যই, 8 এন 1 এর সাথে আমাদের "আপনার" ডেটার প্রতিটি 8 বিটের জন্য 10 বিট প্রেরণ করা হচ্ছে। 1 স্টার্ট বিট, 8 ডেটা বিট এবং 1 স্টপ বিট।

যাইহোক, উভয় পক্ষের এই তথ্যের পাশাপাশি গতির বিষয়েও একমত হওয়া দরকার। আরডুইনো সিরিয়াল টার্মিনাল আপনাকে এই সেটিংস পরিবর্তন করার বিকল্পটি দেয় না, তবে অন্যরাও তাই করে, তাই আপনাকে নিশ্চিত হওয়া দরকার যে এই কনফিগারেশন সেটিংসের সমস্ত একই are

উইকিতে আরও তথ্য: অ্যাসিনক্রোনাস সিরিয়াল যোগাযোগ


0

শচলিনের উত্তর (উপরে) বলেছেন:

The board and terminal are probably not using the same baud rate. 
Check the bottom right corner of the Arduino Serial Terminal
and make sure it is set to 9600.

যদি এই সংখ্যাটি 9600 হয় এবং আপনি এখনও গার্ডড ডেটা পান তবে কোডটি আপলোড করার সময় আপনি প্রাপ্ত আউটপুটটি পরীক্ষা করে দেখুন check এটি এমন কিছু পড়তে হবে:

Sketch uses 2754 bytes (8%) of program storage space. Maximum is 30720 bytes.
Global variables use 195 bytes (9%) of dynamic memory, leaving 1853 bytes for local variables. Maximum is 2048 bytes.
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM5 -b57600 -D -Uflash:w:C:\Users\Owner\AppData\Local\Temp\arduino_build_457862/LockCode.ino.hex:i 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM5
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600

এই নীচের লাইনটি (আমি যা পোস্ট করেছি তার) আপনার ডিভাইসের ডিফল্ট বাউড্রেট কী বলে। আমার জন্য, আমি পরিবর্তন করেছি Serial.begin(9600);-> Serial.begin(57600);এবং আমার আরডুইনো সিরিয়াল টার্মিনালের নীচের ডানদিকে 57600 পড়ার বিষয়টি পরীক্ষা করে দেখেছি।

আমি এটি চালানোর পরে, এবং এটি কাজ করার পরে, আমি 9600 এ ফিরে যেতে এবং নন-গারবেলড ডেটা পেতে সক্ষম হয়েছি। আরডুইনো মনে হচ্ছে ...


0

আমি এটি সমাধান করার চেষ্টা করে আধ ঘন্টা ব্যয় করেছি এবং এটি ছিল আমার আরডিনো প্রো মিনি যা 3.3V এবং আমি আরডুইনো আইডিইতে (পিসিতে) 5 ভি নির্বাচন করেছি। সিরিয়াল প্রিন্ট কখনও একই বাড রেট সংজ্ঞায়িত করে এমন কাজ করে না।

আরডুইনো আইডিইতে সঠিক বোর্ডটি নির্বাচন করুন

পরিষ্কার হওয়ার জন্য, সরঞ্জাম ট্যাবের অধীনে সঠিক প্রসেসর (ভোল্টেজ / ঘড়ির গতি) নির্বাচন করতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.