আপনি অবশ্যই শুনেছেন আইসি PCF8574, একটি চিপ যা আলাদাভাবে ক্রয় করা যেতে পারে বা ইতিমধ্যে অন্য অনেকের মতো মডিউলে মাউন্ট করা যেতে পারে বৈদ্যুতিক যন্ত্রপাতি আপনার আরডুইনো বোর্ডের সাথে আপনার সংহতকরণের সুবিধার্থে। এই ক্ষেত্রে, এটি ইনপুট এবং আউটপুটগুলির প্রসারক আই 2 সি বাস.
আপনি ভাবতে পারেন যে আরডিনো এর ইতিমধ্যে নিজস্ব রয়েছে ইন্টিগ্রেটেড আই 2 সি বাস, এবং এটা সত্য। তবে পিসিএফ 8574 আপনার বাস বোর্ডের সীমা ছাড়িয়ে এই বাসটি প্রসারিত করতে সহায়তা করতে পারে, যা কিছু নির্মাতাদের পক্ষে আর্দুইনোর সরবরাহের চেয়ে আরও বেশি প্রয়োজন যাঁদের পক্ষে যথেষ্ট সহায়ক হতে পারে।
আই 2 সি বাস কি?
আই 2 সি নামটি এসেছে আন্তঃসংহত সার্কিট বা আন্তঃসংহত সার্কিট। এর সংস্করণ ১.০ 1.0 সালে ফিলিপস তৈরি করেছিলেন। তারপরে দ্বিতীয় ২.১ আসতে পারে ২০০০ সালে এবং আজ এটি একটি স্ট্যান্ডার্ডে পরিণত হয়েছে (১০০ কেবিট / সেকেন্ডে, যদিও এটি ৩.৪ এমবিট / সেকেন্ডের সর্বাধিক অনুমতি দেয়) যখন পেটেন্টটি 1992 সালে শেষ হয়েছিল এবং অবাধে ব্যবহার করা যেতে পারে।
বর্তমানে এটি শিল্পে বহুল ব্যবহৃত হয় যোগাযোগের জন্য, এবং একটি আইসিতে সংহত বিভিন্ন মাইক্রোকন্ট্রোলার এবং পেরিফেরিয়াল যোগাযোগের জন্য তাদের প্রকল্পগুলির জন্য নির্মাতাদের দ্বারা খুব প্রশংসা করা হয়েছে।
El আই 2 সি একটি বাস সিরিয়াল যোগাযোগ থেকে সুপরিচিত। এটি কেবলমাত্র 2 টি চ্যানেলের সাথে একটি সিঙ্ক্রোনাস যোগাযোগ প্রোটোকল ব্যবহার করে (একটি তৃতীয়াংশ রয়েছে তবে এটি রেফারেন্স বা জিএনডি মিলিয়ে তৈরি করা হয়েছে) বাস্তবে এটি টিডব্লিউআই (টু ওয়্যার ইন্টারফেস) নামেও পরিচিত:
- ঘড়ির জন্য একটি (এসসিএল)।
- ডেটা (এসডিএ) এর জন্য অন্যান্য।
এটি ইঙ্গিত দেয় যে মাস্টার এবং দাস তারা একই কেবল বা ট্র্যাকের মাধ্যমে ডেটা প্রেরণ করে যা প্রথমটি যা ঘড়ি সংকেত উত্পন্ন করে তার দ্বারা নিয়ন্ত্রিত হয়। আই 2 সি বাসের সাথে সংযুক্ত প্রতিটি পেরিফেরাল ডিভাইসগুলির সংক্রমণকে নির্দেশ দেওয়ার জন্য একটি অনন্য ঠিকানা দেওয়া হবে। তবে এটি প্রয়োজনীয় নয় যে মাস্টার সর্বদা একই (বহু-মাস্টার) থাকে, সর্বদা তিনিই স্থানান্তর শুরু করেন।
আমি ইতিমধ্যে নিবন্ধে ব্যাখ্যা করেছি আরডুইনো আই 2 সি আমি আগে উল্লেখ করেছি, প্রতিটি বোর্ডের বিভিন্ন জায়গায় এই আই 2 সি সংযোগ রয়েছে। এটি এমন কিছু যা আপনাকে প্লেটের প্রতিটি সংস্করণে এটি সঠিকভাবে ব্যবহার করতে সক্ষম হতে হবে তা মনে রাখতে হবে:
- Arduino UNO: এসডিএ এ 4 এ এবং এস 5 কে এ XNUMX-তে রয়েছে
- আরডুইনো ন্যানো: আগের মতই।
- আরডুইনো মিনি প্রো: একই।
- আরডুইনো মেগা: এসডিএ পিনের 20 এবং এসসিকে 21-এ রয়েছে।
- প্লেট সম্পর্কে আরও তথ্য।
আপনি ইতিমধ্যে জানেন যে আপনি আপনার স্কেচের জন্য সহজেই I2C ব্যবহার করতে পারেন, যেহেতু তারের এই সিরিয়াল যোগাযোগের জন্য বিভিন্ন ফাংশন সহ:
- শুরু (): ওয়্যার লাইব্রেরি শুরু করুন এবং এটি মাস্টার বা ক্রীতদাস কিনা তা নির্দিষ্ট করুন
- অনুরোধক্রমে (): দাসের কাছ থেকে ডেটা অনুরোধ করার জন্য মাস্টার দ্বারা ব্যবহৃত।
- সূচনা ট্রান্সমিশন (): দাস দিয়ে সংক্রমণ শুরু।
- শেষ ট্রান্সমিশন (): শেষ সংক্রমণ।
- লিখুন ()- মাস্টারের অনুরোধের জবাবে কোনও গোলামের কাছ থেকে ডেটা লিখুন, বা আপনি কোনও মাস্টারের সংক্রমণকে সারি করতে পারেন।
- উপলব্ধ (): পড়ার জন্য বাইট সংখ্যা প্রদান করবে।
- পড়ুন (): কোনও ক্রীতদাস থেকে কোনও মাস্টার বা এর বিপরীতে স্থানান্তরিত একটি বাইট পড়ুন।
- অনপ্রাপ্ত (): কোনও দাস যখন কোনও মাস্টারের কাছ থেকে সংক্রমণ গ্রহণ করে তখন একটি ফাংশন কল করে।
- অনুরোধে (): কোনও দাস যখন কোনও মাস্টার থেকে ডেটা অনুরোধ করে তখন একটি ফাংশন কল করে।
পাড়া আরও তথ্য আরডুইনো প্রোগ্রামিং এবং ফাংশন সম্পর্কে আপনি আমাদের ডাউনলোড করতে পারেন পিডিএফ টিউটোরিয়াল.
পিসিএফ 8574 কী?
পিসিএফ 8574 এ আই 2 সি বাসের ডিজিটাল ইনপুট এবং আউটপুট (I / O) প্রসারকারী। এটি আইসি এবং মডিউলগুলিতে উপলভ্য ছাড়াও বিভিন্ন নির্মাতারা তৈরি করতে পারেন। যাইহোক, এটি আপনার আরডুইনো বোর্ডের সাথে সংযুক্ত করা এবং মাদারবোর্ড যতটা অনুমতি দেয় তার চেয়ে বেশি ডিভাইস নিয়ন্ত্রণ করার ক্ষমতা রাখার পক্ষে এটি অত্যন্ত ব্যবহারিক।
El PCF8574 পিনআউট এটি সহজ, কারণ এটি কেবল অন্তর্ভুক্ত 8 পাইন্স দ্বিখণ্ডিত (পি 0-পি 7 যেখানে যোগাযোগের জন্য চিপগুলি সংযুক্ত রয়েছে), এবং অন্যদিকে আপনার এসডিএ এবং এসসিএল রয়েছে যে আপনাকে অবশ্যই আরডুইনো বোর্ডের সাথে সংযুক্ত করতে হবে, পাশাপাশি মডিউলটি পাওয়ার জন্য ভিসিসি এবং জিএনডিও থাকতে হবে। এবং যোগাযোগের ডিভাইসগুলির মধ্যে কোন ডিভাইসটি নির্দেশিত হয় তা চয়ন করতে তিনটি ঠিকানা পিন A0, A1, A2 ভুলে যাবেন না ...
এটা আছে অন্যান্য বৈশিষ্ট্য আপনার জানা উচিত:
- এটির সংযোগগুলি, একটি খোলার ড্রেন হওয়ায় হতে পারে ইনপুট এবং আউটপুট উভয় হিসাবে ব্যবহৃত.
- La সরবচচ স্রোত এটি 25mA হয় যখন এটি আউটপুট হিসাবে কাজ করে (ডুবে, যখন বর্তমান PCF8574 এর দিকে প্রবাহিত হয়) এবং 300 µA (উত্স, PCF8574 থেকে বর্তমান প্রবাহ)।
- La চিন্তা বিদ্যুৎ সরবরাহ 2.5 এবং 6v হয়। স্ট্যান্ড-বাই খরচ খুব কম, কেবল 10 .A।
- সমস্ত আউটপুট লেচ আছে, বাহ্যিক কর্মের প্রয়োজন ছাড়াই রাষ্ট্র বজায় রাখতে। আপনি যখন রাষ্ট্র পরিবর্তন করতে চান কেবল তখনই আপনাকে কাজ করতে হবে।
- আপনি 8 পেতে পারেন সম্ভাব্য দিকনির্দেশ, সেটি হল, 8 টি ডিভাইস যোগাযোগ করতে বা এটিতে 8 টি মডিউল ব্যবহার করে এটি 64 ডিভাইস পর্যন্ত প্রসারিত করতে পারে। ঠিকানাগুলি (পিন A0, A1, A2) হবে:
- 000: ঠিকানা 0x20
- 001: ঠিকানা 0x21
- 010: ঠিকানা 0x22
- 011: ঠিকানা 0x23
- 100: ঠিকানা 0x24
- 101: ঠিকানা 0x25
- 110: ঠিকানা 0x26
- 111: ঠিকানা 0x27
- ভর্তি করে বাধা (INT) ক্রমাগত পর্যবেক্ষণ না করে ডেটা সনাক্ত করার জন্য একটি বিশেষ লাইনের মাধ্যমে।
আরডুইনোর সাথে একীকরণ
আরডুইনোর সাথে সংযোগটি খুব সহজ, আপনাকে কেবল ভিসিটি আরডুইনো বোর্ডের 5 ভি পিনের সাথে, এবং জিআএনডি আরডুইনোর জিএনডি দিয়ে সংযুক্ত করতে হবে। অন্যদিকে, PCF8574 এসডিএ এবং এসসিএল মডিউলটির পিনগুলি হতে পারে পিনের সাথে সংযুক্ত 14 (এ 5 এসসিএল) এবং 15 (এ 4 এসডিএ)। কেবলমাত্র এটির সাথেই এটি কাজ শুরু হবে, স্পষ্টতই আপনি যোগাযোগ করতে চান এমন ডিভাইসগুলি সংযোগ করতে আপনি Px ব্যবহার করতে পারেন ...
তাহলে এটি কেবল অনুপস্থিত হবে উদাহরণস্বরূপ স্কেচ দিয়ে শুরু করুন আরডুইনো আইডিইতে। আপনি অতিরিক্ত লাইব্রেরি ব্যবহার না করে এটি করতে পারেন যেমন ...
#include <Wire.h> const int address = 0x38; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { for (short channel = 0; channel < 8; channel++) { // Escribir dato en cada uno de los 8 canales Wire.beginTransmission(address); Wire.write(~(1 << channel)); Wire.endTransmission(); // Lee dato del canal delay(500); } }
ইনপুট হিসাবে:
#include <Wire.h> const int address = 0x38; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { short channel = 1; byte value = 0; // Leer el dato del canal Wire.requestFrom(pcfAddress, 1 << channel); if (Wire.available()) { value = Wire.read(); } Wire.endTransmission(); // Mostrar el valor leido por el monitor serie Serial.println(value); }
বা এছাড়াও লাইব্রেরি ব্যবহার করুনযেমন আপনি করতে পারেন এমন পিসিএফ 8574৮XNUMX৪ এখানে ডাউনলোড করুন এবং এই লাইব্রেরির সাথে যে উদাহরণটি আসে তা থেকেই এটির মতো কোড ব্যবহার করুন:
#include <Wire.h> #include "PCF8574.h" PCF8574 expander; void setup() { Serial.begin(9600); expander.begin(0x20); /* Setup some PCF8574 pins for demo */ expander.pinMode(0, OUTPUT); expander.pinMode(1, OUTPUT); expander.pinMode(2, OUTPUT); expander.pinMode(3, INPUT_PULLUP); /* Blink hardware LED for debug */ digitalWrite(13, HIGH); /* Toggle PCF8574 output 0 for demo */ expander.toggle(); /* Blink hardware LED for debug */ digitalWrite(13, LOW); } void loop() { }