সমস্ত সফ্টওয়্যার সিরিয়াল লাইব্রেরির মধ্যে পার্থক্য কী? কোনটি আরডুইনো ন্যানো সামঞ্জস্যপূর্ণ?


11

অনেকগুলি সফ্টওয়্যার সিরিয়াল লাইব্রেরি আছে, তাদের মধ্যে পার্থক্যগুলি কী? এবং আমার আরডিনো ন্যানোর সাথে আমি কোনটি ব্যবহার করতে পারি? আমার আরডুইনো ন্যানোর জন্য আমার একটি হার্ডওয়্যার সিরিয়াল পোর্ট এবং একটি সফ্টওয়্যার সিরিয়াল পোর্ট 115200 এর বাড রেটে দরকার।

আরডুইনো ন্যানোর কোন পিনে আমি সফটওয়্যার সিরিয়াল লাইব্রেরিটি ব্যবহার করতে পারি?


আমি আই 2 সি কীপ্যাডের সাথে নিওস্বারিয়াল ব্যবহার করছি, তবে আমি যখন key=getKey();আমার জিএসএম যুক্ত করি (পিন 2 এবং 3 আরডুইনো ইউনো ব্যবহার করে) এসএমএস পায় না। আমাকে দয়া করে সাহায্য.
Nguyễn Trường Hải

উত্তর:


16

এই উত্তরটি 4 টি মৌলিক পছন্দগুলি তালিকাভুক্ত করে:

  • HardwareSerial, সবসময় ভাল. কেবল প্রাক-সংজ্ঞায়িত Serialভেরিয়েবলটি ব্যবহার করুন । কিছু Arduinos উপর এখানে অতিরিক্ত HardwareSerial পোর্ট বলা হয় Serial1, Serial2ইত্যাদি দ্য ন্যানো শুধুমাত্র হয়েছে Serial

  • AltSoftSerial, সফ্টওয়্যার সিরিয়াল লাইব্রেরি সেরা। কেবলমাত্র একটি উদাহরণ অনুমোদিত, এবং এটি অবশ্যই ইনপুট ক্যাপচার পিনগুলির একটিতে ব্যবহার করতে হবে (ন্যানোর জন্য পিন 8 এবং 9)।

  • আমার NeoSWSerialপরের সেরা। এটি যে কোনও দুটি পিনের জন্য কাজ করে তবে কেবলমাত্র বাড রেটে 9600, 19200 এবং 38400।

  • SoftwareSerialসবচেয়ে খারাপ পছন্দ। এটি যে কোনও দুটি পিনে কাজ করে তবে এটি খুব অদক্ষ। এটি কোনও চরিত্র পাঠানো বা প্রাপ্ত হওয়ার পুরো সময়টির জন্য বাধা অক্ষম করে এবং এটি একই সাথে উভয়ই করতে পারে না (অন্যান্য সমস্ত সিরিয়াল পছন্দগুলি থেকে পৃথক)। এটি আপনার স্কেচের অন্যান্য অংশে, অন্যান্য ডিভাইস যোগাযোগগুলিতে বা লাইব্রেরির সাথে হস্তক্ষেপ করতে পারে।

আপনি যদি ধীর গতির রেট ব্যবহার করতে পারেন তবে আপনি নিজের ডিবাগ প্রিন্টগুলি চালিয়ে যেতে Serialপারেন এবং আপনার ডিভাইসের জন্য AltSoftSerialবা NeoSWSerialব্যবহার করতে পারেন ।

তবে আপনার যদি 115200 ব্যবহার করতে হয় তবে একমাত্র নির্ভরযোগ্য পছন্দ Serial। যদিও AltSoftSerialএবং SoftwareSerialএই বাড রেটের অনুমতি দেয়, তারা সঠিকভাবে ডেটা প্রেরণ / গ্রহণ করতে পারে না।

Serialসেক্ষেত্রে আমি 115200 ডিভাইসটি ব্যবহার করার পরামর্শ দেব । আপনি যদি আইএসপি ব্যবহার না করেন তবে আপনি ইউএসবি-তে নতুন স্কেচ আপলোড করতে ডিভাইসটি সংযোগ বিচ্ছিন্ন করতে হবে।

তারপরে AltSoftSerialবা NeoSWSerialআপনার ডিবাগের বিবৃতিগুলির জন্য ব্যবহার করুন । পিসিতে সংযোগের জন্য আপনার নির্বাচিত পিনগুলিতে একটি টিটিএল সিরিয়াল থেকে ইউএসবি অ্যাডাপ্টার (ওরফে এফটিডিআই) প্রয়োজন হবে। Serial Monitorবা অন্যান্য টার্মিনাল এমুলেটর প্রোগ্রামটি যে ইউএসবি এর COM পোর্ট থেকে পড়বে।


পারফরম্যান্স এবং বৈশিষ্ট্যগুলিতে কি আল্টসফটসারিয়াল একই, কেবল নিওসিআরশিয়াল কীসের কার্যকারিতা যুক্ত করে? আমি পুরোপুরি বুঝতে পারি নি। github.com/SlashDevin/NeoICSerial
উইলিয়াম রায়

2
@ উইলিয়ামআর, NeoICSerialকেবল এই attachInterruptপদ্ধতিটিতে যুক্ত করুন AltSoftSerial। আপনার সম্ভবত বিরতিতে প্রতিটি চরিত্র পরিচালনা করার দরকার নেই। কেবল ব্যবহার করুন AltSoftSerialএবং কল করুন available()এবং তারপরে read()একটি গৃহস্থালি প্রস্তুত থাকলে। একইভাবে, NeoHWSerialকোরটিতে একই attachInterruptবৈশিষ্ট্য যুক্ত করা হয় HardwareSerial। তবে NeoSWSerialএটি সম্পূর্ণ আলাদা শ্রেণি (এটিতে attachInterruptবৈশিষ্ট্যটিও রয়েছে)।
স্ল্যাশ-দেব

-2

সিরিয়াল সফ্টওয়্যার একটি সিরিয়াল পোর্ট অনুকরণ করে, একটি নেটিভ বন্দর থেকে ডিফেরেন্ট যা সমস্ত বিটগুলি যাতে সংরক্ষণের জন্য নিবন্ধভুক্ত করে এবং তারা মূল লুপকে কল করতে একটি পতাকা সেট করে, একটি সফ্টওয়্যার সিরিয়ালের কিছুই নেই। সফ্টওয়্যার সিরিয়ালটি অবশ্যই একে একে সমস্ত বিট গ্রহণ করবে, তাই আপনাকে অবশ্যই একটি ডিজিটাল পোর্ট পড়তে হবে, একটি নির্দিষ্ট সময় অপেক্ষা করতে হবে এবং আবার ডিজিটাল পিনটি পড়তে হবে। আপনাকে অবশ্যই এটি 10 ​​বার করতে হবে (1 স্টার্ট বিট, 8 ডেটা বিট এবং 1 এন্ড বিট)। সময়টি খুব গুরুত্বপূর্ণ। একটি সফ্টওয়্যার সিরিয়াল ব্যবহারের জন্য আপনাকে পারফরম্যান্স সম্পর্কে আরও চিন্তা করতে হবে।

আপনি আরএক্স পিনের জন্য একটি ডিজিটাল ইন্টারপেন পিন ব্যবহার করতে পারেন, তাই আপনাকে ডাউন বর্ডারে "স্টার্ট বিট" এবং প্রাপ্ত 8 বিট প্রাপ্ত হবে।


1
এটি এমনকি মূল প্রশ্নের উত্তর দেওয়ার চেষ্টা করে না ।
এডগার বোনেট

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