جدول المحتويات:

تطبيق MCP-23008 باستخدام واجهة الترحيل (I2C) :: 6 خطوات
تطبيق MCP-23008 باستخدام واجهة الترحيل (I2C) :: 6 خطوات

فيديو: تطبيق MCP-23008 باستخدام واجهة الترحيل (I2C) :: 6 خطوات

فيديو: تطبيق MCP-23008 باستخدام واجهة الترحيل (I2C) :: 6 خطوات
فيديو: Using Dashboard in Node Red with MCP23008 2024, شهر نوفمبر
Anonim
تطبيق MCP-23008 باستخدام واجهة الترحيل (I2C)
تطبيق MCP-23008 باستخدام واجهة الترحيل (I2C)

أهلا

تحية طيبة.. !!

أنا (Somanshu Choudhary) نيابة عن مشاريع Dcube التقنية التي ستتحكم في المرحلات عبر بروتوكول I2C باستخدام Arduino nano و MCP23008.

الخطوة 1: نظرة عامة

ملخص
ملخص
  • يوفر الجهاز MCP23X08 توسعة 8 بت ، للأغراض العامة ، متوازية للإدخال / الإخراج لتطبيقات ناقل I2C أو SPI.
  • يتكون MCP23X08 من عدة سجلات تكوين 8 بت لتحديد الإدخال والإخراج والقطبية. يمكن لسيد النظام تمكين الإدخال / الإخراج إما كمدخلات أو مخرجات عن طريق كتابة بتات تكوين الإدخال / الإخراج. يتم الاحتفاظ بالبيانات الخاصة بكل إدخال أو إخراج في سجل الإدخال أو الإخراج المقابل. يمكن عكس قطبية سجل منفذ الإدخال باستخدام سجل انعكاس القطبية. يمكن قراءة جميع السجلات بواسطة مدير النظام.
  • رابط كتيب البيانات:

الخطوة 2: ما تحتاجه / الروابط

ماذا تحتاج / روابط
ماذا تحتاج / روابط

1. Arduino Nano LINK:

2-درع اردوينو نانو لينك:

3.كابل USB من النوع A إلى Micro Type B بطول 6 أقدام

4. I²C كابل LINK:

5. ثمانية مرحلات تحكم SPDT I²C

6.رابط المحول:

الخطوة 3: مخطط الدائرة

مخطط الرسم البياني
مخطط الرسم البياني
مخطط الرسم البياني
مخطط الرسم البياني

الخطوة 4: البرمجة - I

البرمجة - أنا
البرمجة - أنا
البرمجة - أنا
البرمجة - أنا
  • في هذا الكود ، أستخدم نموذج برمجة الوظائف
  • لقد استخدمت علامات تبويب مختلفة لتعريف الوظائف واستدعاء الوظيفة

رمز تحت علامة التبويب q:

// رمز استدعاء وظيفة بسيطة

# تضمين إعداد باطل ()

{

// عنوان I2C من MCP23008

#define MCP_ADDR 0x20

// انضم إلى I2C Bus كسيد

Wire.begin () ؛

// بدء الاتصال التسلسلي وتعيين معدل الباود

Serial.begin (9600) ؛

// ابدأ الإرسال بجهاز معين على ناقل I2C

Wire.beginTransmission (MCP_ADDR) ؛

// حدد IODIR - I / O DIRECTION REGISTER Register

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.request From (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.request From (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.request From (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.request From (MCP_ADDR، 1) ؛

int GPIO = Wire.read () ؛

Wire.endTransmission () ؛

// إخراج إلى الشاشة

Serial.print ("قيمة GPIO:") ؛

Serial.println (GPIO ، BIN) ؛

}

CODE UNDER TAB q3: // هذا الرمز لتشغيل وإيقاف التتابع 3 على متن الطائرة

باطل a3_on ()

{

// ابدأ الإرسال

Wire.beginTransmission (MCP_ADDR) ؛

Wire.write (0x09) ؛

Wire.write (0x04) ؛

تأخير (1800) ؛

Wire.request From (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.request From (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.request From (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.request From (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.request From (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.request From (MCP_ADDR، 1) ؛

int GPIO = Wire.read () ؛

Wire.endTransmission () ؛

// إخراج إلى الشاشة

Serial.print ("قيمة GPIO:") ؛

Serial.println (GPIO ، BIN) ؛

}

CODE UNDER TAB q6: // هذا الرمز لتشغيل وإيقاف التتابع 6 على متن الطائرة

باطل a6_on ()

{

// ابدأ الإرسال

Wire.beginTransmission (MCP_ADDR) ؛

Wire.write (0x09) ؛

Wire.write (0x20) ؛

تأخير (1800) ؛

Wire.request From (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.request From (MCP_ADDR، 1) ؛

int GPIO = Wire.read () ؛

Wire.endTransmission () ؛

// إخراج إلى الشاشة

Serial.print ("قيمة GPIO:") ؛

Serial.println (GPIO ، BIN) ؛

}

CODE UNDER TAB q7: // هذا الرمز لتشغيل وإيقاف التتابع 7 على متن الطائرة

a7_on باطل () {

// ابدأ الإرسال

Wire.beginTransmission (MCP_ADDR) ؛

Wire.write (0x09) ؛

Wire.write (0x40) ؛

تأخير (1800) ؛

Wire.request From (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.request From (MCP_ADDR، 1) ؛

int GPIO = Wire.read () ؛

Wire.endTransmission () ؛

// إخراج إلى الشاشة

Serial.print ("قيمة GPIO:") ؛

Serial.println (GPIO ، BIN) ؛

}

CODE UNDER TAB q8: // هذا الرمز لتشغيل وإيقاف التتابع 8 على متن الطائرة

باطل a8_on () {

// ابدأ الإرسال

Wire.beginTransmission (MCP_ADDR) ؛

Wire.write (0x09) ؛

Wire.write (0x80) ؛

تأخير (1800) ؛

Wire.request From (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.request From (MCP_ADDR، 1) ؛

int GPIO = Wire.read () ؛

Wire.endTransmission () ؛

// إخراج إلى الشاشة

Serial.print ("قيمة GPIO:") ؛

Serial.println (GPIO ، BIN) ؛

}

الخطوة 6: الفيديو

لمزيد من الاستفسارات لا تتردد في زيارة موقعنا:

www.dcubetechnologies.com

موصى به: