תוכן עניינים:

יישום MCP-23008 באמצעות ממשק ממסר (I2C) :: 6 שלבים
יישום MCP-23008 באמצעות ממשק ממסר (I2C) :: 6 שלבים

וִידֵאוֹ: יישום MCP-23008 באמצעות ממשק ממסר (I2C) :: 6 שלבים

וִידֵאוֹ: יישום MCP-23008 באמצעות ממשק ממסר (I2C) :: 6 שלבים
וִידֵאוֹ: סרטון יישום דבק P300 2024, יולי
Anonim
יישום MCP-23008 באמצעות ממשק ממסר (I2C)
יישום MCP-23008 באמצעות ממשק ממסר (I2C)

שלום

שלום רב.. !!

אני (Somanshu Choudhary) בשם מיזמי הטכנולוגיה של Dcube שעומדים לשלוט בממסרים באמצעות פרוטוקול I2C באמצעות Arduino nano ו- MCP23008.

שלב 1: סקירה כללית

סקירה כללית
סקירה כללית
  • מכשיר MCP23X08 מספק הרחבת I/O מקבילה של 8 סיביות למטרות כלליות ליישומי אוטובוס I2C או SPI.
  • MCP23X08 מורכב מרבדי תצורה מרובים של 8 סיביות לבחירת קלט, פלט וקוטביות. מאסטר המערכת יכול לאפשר את הקלט/פלט ככניסות או פלט על ידי כתיבת סיביות תצורת הקלט/פלט. הנתונים עבור כל קלט או פלט נשמרים ברישום הקלט או הפלט המתאים. ניתן להפוך את הקוטביות של מרשם יציאות הכניסה באמצעות רשם היפוך הקוטביות. מנהל המערכת יכול לקרוא את כל הרישומים.
  • קישור DATASHEET:

שלב 2: מה שאתה צריך / קישורים

מה שאתה צריך / קישורים
מה שאתה צריך / קישורים

1. Arduino Nano LINK:

2. מגן עבור Arduino Nano LINK:

3. כבל USB מסוג A למיקרו מסוג B 6 רגליים ארוכות

4. קישור כבל I²C:

5. שמונה ממסרים מבוקרי SPDT I²C

6. קישור למתאם:

שלב 3: תרשים מעגלים

תרשים מעגלים
תרשים מעגלים
תרשים מעגלים
תרשים מעגלים

שלב 4: תכנות - אני

תכנות - אני
תכנות - אני
תכנות - אני
תכנות - אני
  • בקוד זה, אני משתמש בפרדיגמת תכנות פונקציות
  • השתמשתי בכרטיסיות שונות להגדרת פונקציות ושיחות פונקציות

קוד תחת כרטיסייה q:

// קוד שיחות פשוט לפונקציה

#include הגדרת חלל ()

{

// כתובת I2C של MCP23008

#הגדר MCP_ADDR 0x20

// הצטרף לאוטובוס I2C כמאסטר

Wire.begin ();

// התחל תקשורת טורית והגדר את קצב השידור

Serial.begin (9600);

// התחל שידור עם מכשיר נתון באוטובוס I2C

שידור Wire.beginTransmission (MCP_ADDR);

// בחר IODIR - I/O DIRECTION REGISTER REGISTER

Wire.write (0x00);

// בחר את הפעולה הדרושה (פלט)

Wire.write (0x00);

// בחר רשום CONFIGURATION

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 על הסיפון

void 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 על הסיפון

void 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);

}

void 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 על הסיפון

void 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 על הסיפון

void 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

מוּמלָץ: