আরডুইনোর সাথে RS485 যোগাযোগ: উদাহরণ সহ সম্পূর্ণ গাইড

  • Arduino এর সাথে RS485 যোগাযোগ স্থাপনের জন্য MAX485 মডিউল সংযোগ এবং ব্যবহার করা।
  • বিভিন্ন প্রয়োজনের জন্য কীভাবে সিমপ্লেক্স, হাফ-ডুপ্লেক্স এবং ফুল-ডুপ্লেক্স যোগাযোগ বাস্তবায়ন করা যায়।
  • একাধিক Arduinos সহ একই RS485 বাসে ডিভাইসের নিয়ন্ত্রণ।

rs485

সিরিয়াল যোগাযোগ ইলেকট্রনিক ডিভাইসের মধ্যে ডেটা আদান-প্রদানের সবচেয়ে সাধারণ উপায়গুলির মধ্যে একটি। যাইহোক, যখন দূরত্ব বৃদ্ধি পায় বা পরিবেশে ইলেক্ট্রোম্যাগনেটিক হস্তক্ষেপ থাকে, যোগাযোগ সংকেতগুলি ত্রুটির প্রবণ হতে পারে। সেখানেই RS485 কমিউনিকেশন স্ট্যান্ডার্ড কার্যকর হয়, যা একটি শক্তিশালী এবং কার্যকর বিকল্প প্রদান করে। আরডুইনো, এর বহুমুখিতা সহ, আমাদেরকে মোটামুটি সহজ উপায়ে এই প্রোটোকলের সম্পূর্ণ সুবিধা নিতে দেয়।

এই নিবন্ধে, আমরা দেখব কিভাবে RS485 কমিউনিকেশন বিভিন্ন Arduinos-এর মধ্যে ইন্টিগ্রেটেড MAX485-এর উপর ভিত্তি করে মডিউল ব্যবহার করে বাস্তবায়িত করা যেতে পারে, একটি চিপ যা TTL সিগন্যালকে (Arduino থেকে) RS485 তে রূপান্তর করে এবং এর বিপরীতে। এই টিউটোরিয়াল জুড়ে, আমরা মৌলিক ধারণা এবং ব্যবহারিক উদাহরণ উভয়ই কভার করব যা আপনাকে আরডুইনো মাইক্রোকন্ট্রোলারের মধ্যে সিমপ্লেক্স, হাফ-ডুপ্লেক্স এবং ফুল-ডুপ্লেক্স কমিউনিকেশন বাস্তবায়নের অনুমতি দেবে এবং ব্যাখ্যা করবে কিভাবে আপনি এই যোগাযোগ ব্যবস্থাকে এককভাবে একাধিক ডিভাইস পরিচালনা করতে পারবেন। RS485 বাস।

RS485 কি?

আরএস৪৮৫ এটি একটি যোগাযোগের মান যা শিল্পে ব্যাপকভাবে ব্যবহৃত হয়, যার জন্য পরিচিত অচলতা এবং এর সহ্য করার ক্ষমতা অনেক দূরবর্তী ট্রান্সমিশন, এমনকি কোলাহলপূর্ণ শিল্প পরিবেশে। অন্যান্য ধরণের সিরিয়াল কমিউনিকেশনের বিপরীতে, যেমন RS232, RS485 একাধিক ডিভাইসকে একই বাসে সংযুক্ত করার অনুমতি দেয়, এটি শিল্প অটোমেশন এবং নিয়ন্ত্রণ অ্যাপ্লিকেশনের জন্য আদর্শ করে তোলে।

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

RS485 এর অন্যতম প্রধান সুবিধা হল এটি 1200 মিটার পর্যন্ত দূরত্ব সমর্থন করে এবং স্বল্প দূরত্বে 35 Mbps পর্যন্ত গতি বাড়ায়, যেখানে দীর্ঘ তারের প্রয়োজন হয় এমন পরিবেশে শিল্প ও নিয়ন্ত্রণ অ্যাপ্লিকেশনের জন্য এটি একটি আদর্শ প্রোটোকল তৈরি করে।

RS485 যোগাযোগ মোড

rs485 পিনআউট

RS485 যোগাযোগে, আমরা সিস্টেমটিকে তিনটি ভিন্ন উপায়ে কনফিগার করতে পারি: সিমপ্লেক্স, হাফ-ডুপ্লেক্স এবং ফুল-ডুপ্লেক্স। প্রতিটির নিজস্ব বৈশিষ্ট্য রয়েছে এবং প্রকল্পের প্রয়োজন অনুযায়ী বাস্তবায়িত হয়।

সিমপ্লেক্স কমিউনিকেশন

সিমপ্লেক্স মোডে, যোগাযোগ শুধুমাত্র একটি দিকে যায়, অর্থাৎ, একটি ডিভাইস হিসাবে কাজ করে প্রেরক এবং অন্য মত রিসেপটর. এটি এমন পরিস্থিতিতে দরকারী যেখানে আপনি প্রতিক্রিয়ার প্রয়োজন ছাড়াই ডেটা পাঠাতে বা গ্রহণ করতে চান৷

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

হাফ-ডুপ্লেক্স কমিউনিকেশন

আরডুইনোতে বেশিরভাগ RS485 অ্যাপ্লিকেশনগুলি হাফ-ডুপ্লেক্স মোডে প্রয়োগ করা হয় কারণ এটি শুধুমাত্র প্রয়োজন দুটি তার, এবং আপনাকে ডেটা প্রেরণ এবং গ্রহণ উভয়ের অনুমতি দেয়, যদিও একই সাথে নয়। অর্থাৎ, যদি একটি ডিভাইস ডেটা পাঠায়, তবে অন্যান্য ডিভাইসগুলি অবশ্যই অভ্যর্থনা মোডে থাকতে হবে এবং এর বিপরীতে।

ট্রান্সমিট এবং রিসিভ মোডের মধ্যে স্যুইচ করতে, ব্যবহার করুন অতিরিক্ত পিন (RE/DE) MAX485 মডিউলে, যা আপনি কোড থেকে নিয়ন্ত্রণ করবেন ডিভাইসটি যে কোনো সময়ে পাঠানো বা গ্রহণ করা উচিত কিনা তা নির্ধারণ করতে।

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

ফুল-ডুপ্লেক্স কমিউনিকেশন

ফুল-ডুপ্লেক্স মোডে, ডিভাইসগুলি একই সময়ে ডেটা পাঠাতে এবং গ্রহণ করতে পারে। যাইহোক, RS485 এ ফুল-ডুপ্লেক্স বাস্তবায়ন করতে, দুই জোড়া পেঁচানো তার, যা তারের খরচ এবং জটিলতা বাড়ায়। অতিরিক্তভাবে, ট্রান্সমিট পরিচালনা করতে এবং আলাদাভাবে চ্যানেল গ্রহণ করতে আপনার প্রতিটি ডিভাইসের জন্য দুটি MAX485 মডিউলের প্রয়োজন হবে।

Arduino এর সাথে RS485 যোগাযোগের জন্য প্রয়োজনীয় উপাদান

আরডিনোতে একটি RS485 যোগাযোগ ব্যবস্থা বাস্তবায়ন করতে, আপনার নিম্নলিখিত উপাদানগুলির প্রয়োজন হবে:

  • এক বা একাধিক Arduinos: যেকোনো Arduino মডেল করবে, কিন্তু এই টিউটোরিয়ালে আমরা ব্যবহার করব Arduino UNO এবং উদাহরণ হিসাবে Arduino MEGA।
  • MAX485 মডিউল: এই মডিউলগুলি আপনাকে TTL সংকেতগুলিকে Arduino থেকে RS485 তে রূপান্তর করতে দেয় এবং এর বিপরীতে। এগুলি খুব সস্তা এবং AliExpress বা eBay এর মতো দোকানে পাওয়া সহজ৷
  • সমাপ্তি প্রতিরোধক: সিগন্যালে প্রতিফলন এড়াতে 120 ওহমের মধ্যে একটি প্রতিরোধক সাধারণত বাসের প্রতিটি প্রান্তে স্থাপন করা হয়। স্বল্প দূরত্বে, এগুলি ছাড়া করা সম্ভব, তবে দীর্ঘ স্থাপনায় এগুলি সংকেতের অখণ্ডতা বজায় রাখার জন্য অপরিহার্য।
  • পাকানো জোড়া তারগুলি: বিশেষ করে কোলাহলপূর্ণ শিল্প পরিবেশে ইলেক্ট্রোম্যাগনেটিক হস্তক্ষেপ কমাতে বাঁকানো জোড়া তারগুলি ব্যবহার করার পরামর্শ দেওয়া হয়।

সাধারণ সংযোগ চিত্র

MAX485 মডিউল সংযুক্ত করুন একটি Arduino বেশ সহজ. সবচেয়ে গুরুত্বপূর্ণ পিন হল A এবং B, যা RS485 বাস লাইনের সাথে মিলে যায়। এই পিনগুলি বাসের সমস্ত ডিভাইসের সাথে সংযুক্ত থাকতে হবে। উপরন্তু, মডিউলটিতে RE এবং DE পিন রয়েছে যা মডিউলটি রিসিভার বা ট্রান্সমিটার মোডে আছে কিনা তা নিয়ন্ত্রণ করে।

সাধারণভাবে, মডিউলগুলিকে Arduino এর সাথে সংযুক্ত করা নিম্নরূপ করা হয়:

  • মডিউলের VCC এবং GND আরডুইনোতে VCC এবং GND এর সাথে সংযোগ স্থাপন করে।
  • মডিউলটির DI (ডেটা ইনপুট) আরডুইনোর TX পিনের সাথে সংযোগ করে যদি মডিউলটি একটি ইমিটার হিসাবে কাজ করে।
  • মডিউলটির RO (রিসিভার আউটপুট) Arduino এর RX পিনের সাথে সংযোগ করে যদি মডিউলটি একটি রিসিভার হিসাবে কাজ করে।
  • ট্রান্সমিট এবং রিসিভ মোডের মধ্যে স্যুইচ করার জন্য DE এবং RE অবশ্যই একটি Arduino ডিজিটাল পিন থেকে নিয়ন্ত্রণ করতে হবে।

আপনার যদি শুধুমাত্র একজন প্রেরক বা রিসিভার হিসাবে কাজ করার জন্য মডিউলটির প্রয়োজন হয়, আপনি RE এবং DE কে সরাসরি উচ্চ বা নিম্নের সাথে সংযুক্ত করতে পারেন। যাইহোক, আরও জটিল যোগাযোগের জন্য যেখানে ডিভাইসটিকে ট্রান্সমিটিং এবং রিসিভিংয়ের মধ্যে পরিবর্তন করতে হয়, সফ্টওয়্যার থেকে এই পিনগুলি নিয়ন্ত্রণ করা ভাল।

RS485 যোগাযোগের জন্য কোড উদাহরণ

নীচে Arduino তে RS485 এর সাথে বিভিন্ন যোগাযোগ কনফিগারেশন কভার করার কয়েকটি উদাহরণ রয়েছে।

সিমপ্লেক্স কমিউনিকেশন

ইস্যুকারী কোড

একটি মৌলিক সিমপ্লেক্স সিস্টেমের জন্য যেখানে আমাদের শুধুমাত্র একজন প্রেরক এবং একজন রিসিভার আছে, প্রেরকের কোডটি এইরকম দেখতে পারে:

void setup() { Serial.begin(9600); } void loop() { Serial.write(analogRead(0)); delay(500); }

রিসিভার কোড

রিসিভার কেবল সিরিয়াল পোর্টের মাধ্যমে আগত ডেটা পড়বে:

void setup() { Serial.begin(9600); } void loop() { if (Serial.available()) { int data = Serial.read(); Serial.println(data); } }

হাফ-ডুপ্লেক্স কমিউনিকেশন

এই উদাহরণে, আমরা একটি হাফ-ডুপ্লেক্স সিস্টেম প্রয়োগ করি যেখানে ডিভাইসগুলি ডেটা পাঠানো এবং গ্রহণ করার মধ্যে বিকল্প।

শিক্ষক কোড

const int reDePin = 2; void setup() { pinMode(reDePin, OUTPUT); Serial.begin(9600); } void loop() { digitalWrite(reDePin, HIGH); Serial.write('H'); delay(100); digitalWrite(reDePin, LOW); if (Serial.available()) { int data = Serial.read(); Serial.println(data); } }

স্লেভ কোড

const int reDePin = 2; void setup() { pinMode(reDePin, OUTPUT); Serial.begin(9600); } void loop() { digitalWrite(reDePin, LOW); if (Serial.available()) { int data = Serial.read(); delay(100); digitalWrite(reDePin, HIGH); Serial.write(data + 1); } }

ফুল-ডুপ্লেক্স কমিউনিকেশন

ফুল-ডুপ্লেক্স যোগাযোগ বাস্তবায়ন করতে, প্রতি Arduino-এ দুটি MAX485 মডিউল প্রয়োজন হবে। মডিউলগুলির প্রতিটি জোড়া একটি ডেটা লাইন পরিচালনা করবে: একটি প্রেরণের জন্য এবং একটি গ্রহণের জন্য।

কোডটি পূর্ববর্তী উদাহরণগুলির মতোই হবে, তবে এই ক্ষেত্রে উভয় ডিভাইসই সর্বদা একযোগে প্রেরণ এবং গ্রহণ করবে।

RS485-এ একাধিক ডিভাইসে সম্প্রসারণ

RS485-এর একটি বাসে 32টি পর্যন্ত ডিভাইস সংযোগ করার ক্ষমতা রয়েছে এবং বিশেষ ক্ষেত্রে এটি আরও বেশি পৌঁছাতে পারে। এটি একাধিক মাইক্রোকন্ট্রোলার বা ডিভাইস জড়িত প্রকল্পগুলির জন্য এটি একটি চমৎকার পছন্দ করে তোলে। নেটওয়ার্কে তাদের প্রত্যেককে সনাক্ত করতে, প্রতিটি ডিভাইসের জন্য একটি ঠিকানা বা আইডি প্রয়োগ করা সাধারণ।

এই ক্ষেত্রে, মাস্টার যে ডিভাইসের সাথে যোগাযোগ করতে চায় তার ঠিকানা সহ একটি বার্তা পাঠাবে এবং শুধুমাত্র সেই ডিভাইসটি বার্তাটি প্রক্রিয়াকরণ এবং প্রতিক্রিয়া দেওয়ার দায়িত্বে থাকবে।

এর সাথে যুক্ত হয়েছে ব্যবহারের সম্ভাবনা আরো জটিল প্রোটোকল যেমন MODBUS, যা শিল্পে অত্যন্ত দক্ষ এবং সুরক্ষিত নেটওয়ার্ক তৈরি করার অনুমতি দেয়।

হোম প্রোজেক্ট বা কম চাহিদাসম্পন্ন অ্যাপ্লিকেশনের জন্য, আপনি প্রতিটি Arduino-কে একটি শনাক্তকারী বরাদ্দ করতে পারেন এবং তাদের শুধুমাত্র তাদের উদ্দেশ্যে করা বার্তাগুলির প্রতিক্রিয়া জানাতে পারেন।


মন্তব্য করতে প্রথম হতে হবে

আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: মিগুয়েল অ্যাঞ্জেল গাটান
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।