সুচিপত্র:

MCP-23008 এর প্রয়োগ রিলে ইন্টারফেস (I2C) ব্যবহার করে :: 6 টি ধাপ
MCP-23008 এর প্রয়োগ রিলে ইন্টারফেস (I2C) ব্যবহার করে :: 6 টি ধাপ

ভিডিও: MCP-23008 এর প্রয়োগ রিলে ইন্টারফেস (I2C) ব্যবহার করে :: 6 টি ধাপ

ভিডিও: MCP-23008 এর প্রয়োগ রিলে ইন্টারফেস (I2C) ব্যবহার করে :: 6 টি ধাপ
ভিডিও: Using MCP23008 port-expanders with Arduino Nano Every to drive 3 banks of 8 LEDs 2024, জুলাই
Anonim
রিলে ইন্টারফেস (I2C) ব্যবহার করে MCP-23008 এর প্রয়োগ
রিলে ইন্টারফেস (I2C) ব্যবহার করে MCP-23008 এর প্রয়োগ

হ্যালো

শুভেচ্ছা রইল.. !!

আমি (সোমাংশু চৌধুরী) Dcube প্রযুক্তি উদ্যোগের পক্ষ থেকে Arduino ন্যানো এবং MCP23008 ব্যবহার করে I2C প্রোটোকলের মাধ্যমে রিলে নিয়ন্ত্রণ করতে যাচ্ছি।

ধাপ 1: ওভারভিউ

ওভারভিউ
ওভারভিউ
  • MCP23X08 ডিভাইস 8-বিট, সাধারণ উদ্দেশ্য, I2C বাস বা SPI অ্যাপ্লিকেশনের জন্য সমান্তরাল I/O সম্প্রসারণ প্রদান করে।
  • MCP23X08 ইনপুট, আউটপুট এবং পোলারিটি নির্বাচনের জন্য একাধিক 8-বিট কনফিগারেশন রেজিস্টার নিয়ে গঠিত। সিস্টেম মাস্টার I/O কনফিগারেশন বিট লিখে ইনপুট বা আউটপুট হিসাবে I/OS সক্ষম করতে পারে। প্রতিটি ইনপুট বা আউটপুটের ডেটা সংশ্লিষ্ট ইনপুট বা আউটপুট রেজিস্টারে রাখা হয়। ইনপুট পোর্ট রেজিস্টারের পোলারিটি পোলারিটি ইনভার্সন রেজিস্টারের সাথে উল্টানো যায়। সমস্ত রেজিস্টার সিস্টেম মাস্টার দ্বারা পড়া যাবে।
  • ডেটাশীট লিঙ্ক:

ধাপ 2: আপনার কি প্রয়োজন / লিঙ্ক

আপনার কি দরকার / লিঙ্ক
আপনার কি দরকার / লিঙ্ক

1. আরডুইনো ন্যানো লিঙ্ক:

2. Arduino ন্যানো লিঙ্কের জন্য শিল্ড:

3. ইউএসবি কেবল টাইপ এ থেকে মাইক্রো টাইপ বি 6 ফুট লম্বা

4. I²C কেবল লিঙ্ক:

5. আটটি SPDT I²C নিয়ন্ত্রিত রিলে

6. অ্যাডাপ্টার লিঙ্ক:

ধাপ 3: সার্কিট ডায়াগ্রাম

বর্তনী চিত্র
বর্তনী চিত্র
বর্তনী চিত্র
বর্তনী চিত্র

ধাপ 4: প্রোগ্রামিং - I

প্রোগ্রামিং - I
প্রোগ্রামিং - I
প্রোগ্রামিং - I
প্রোগ্রামিং - I
  • এই কোডে, আমি ফাংশন প্রোগ্রামিং প্যারাডাইম ব্যবহার করি
  • আমি ফাংশন সংজ্ঞা এবং ফাংশন কলিংয়ের জন্য বিভিন্ন ট্যাব ব্যবহার করেছি

ট্যাব q এর অধীনে কোড:

// সহজ ফাংশন কলিং কোড

#অন্তর্ভুক্ত অকার্যকর সেটআপ ()

{

// MCP23008 এর I2C ঠিকানা

#MCP_ADDR 0x20 নির্ধারণ করুন

// I2C বাসে মাস্টার হিসেবে যোগ দিন

Wire.begin ();

// সিরিয়াল যোগাযোগ শুরু করুন এবং বড রেট সেট করুন

Serial.begin (9600);

// I2C বাসে প্রদত্ত ডিভাইস দিয়ে ট্রান্সমিশন শুরু করুন

Wire.beginTransmission (MCP_ADDR);

// IODIR নির্বাচন করুন - I/O নির্দেশ নিবন্ধন নিবন্ধন

Wire.write (0x00);

// প্রয়োজনীয় অপারেশন নির্বাচন করুন (আউটপুট)

Wire.write (0x00);

// কনফিগারেশন রেজিস্টার নির্বাচন করুন

Wire.write (0x05);

// প্রয়োজনীয় অপারেশন নির্বাচন করুন

Wire.write (0x0E);

// শেষ সংক্রমণ

Wire.endTransmission ();

}

অকার্যকর লুপ ()

{

a1_on ();

বিলম্ব (1000);

a1_off ();

বিলম্ব (1000);

a2_on ();

বিলম্ব (1000);

a2_off ();

বিলম্ব (1000);

a3_on ();

বিলম্ব (1000);

a3_off ();

বিলম্ব (1000);

a4_on ();

বিলম্ব (1000);

a4_off ();

বিলম্ব (1000);

a5_on ();

বিলম্ব (1000);

a5_off ();

বিলম্ব (1000);

a6_on ();

বিলম্ব (1000);

a6_off ();

বিলম্ব (1000);

a7_on ();

বিলম্ব (1000);

a7_off ();

বিলম্ব (1000);

a8_on ();

বিলম্ব (1000);

a8_off ();

}

ট্যাব q1 এর অধীনে কোড:

// এই কোডটি বোর্ডে রিলে 1 চালু এবং বন্ধ করতে হবে

অকার্যকর a1_on () {

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

অকার্যকর a1_off ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

ট্যাব q2 এর অধীনে কোড:

// এই কোডটি বোর্ডে রিলে 2 চালু এবং বন্ধ করতে হবে

অকার্যকর a2_on () {

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

অকার্যকর a2_off ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

ট্যাবের অধীনে কোড q3: // এই কোডটি বোর্ডে রিলে 3 চালু এবং বন্ধ করতে হবে

অকার্যকর a3_on ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

অকার্যকর a3_off ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

ধাপ 5: প্রোগ্রামিং - II

প্রোগ্রামিং - II
প্রোগ্রামিং - II

ট্যাব q4 এর অধীনে কোড:

// এই কোডটি বোর্ডে রিলে 4 চালু এবং বন্ধ করতে হবে

অকার্যকর a4_on ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

অকার্যকর a4_off ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

ট্যাব q5 এর অধীনে কোড:

// এই কোডটি বোর্ডে রিলে 5 চালু এবং বন্ধ করা

অকার্যকর a5_on ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

অকার্যকর a5_off ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

ট্যাবের অধীনে কোড q6: // এই কোডটি বোর্ডে রিলে 6 চালু এবং বন্ধ করতে হবে

অকার্যকর a6_on ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

অকার্যকর a6_off ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

ট্যাবের অধীনে কোড q7: // এই কোডটি বোর্ডে রিলে 7 চালু এবং বন্ধ করতে হবে

অকার্যকর a7_on () {

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

অকার্যকর a7_off ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

ট্যাবের অধীনে কোড q8: // এই কোডটি বোর্ডে রিলে 8 চালু এবং বন্ধ করতে হয়

অকার্যকর a8_on () {

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

অকার্যকর a8_off ()

{

// সংক্রমণ শুরু

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

বিলম্ব (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// পর্দায় আউটপুট

Serial.print ("GPIO মান:");

Serial.println (GPIO, BIN);

}

ধাপ 6: ভিডিও

আরও চাওয়ার জন্য নির্দ্বিধায় আমাদের সাইটে যান:

www.dcubetechnologies.com

প্রস্তাবিত: