תוכן עניינים:
- שלב 1: סקירה כללית
- שלב 2: מה שאתה צריך / קישורים
- שלב 3: תרשים מעגלים
- שלב 4: תכנות - אני
- שלב 5: תכנות - II
- שלב 6: וידאו
וִידֵאוֹ: יישום MCP-23008 באמצעות ממשק ממסר (I2C) :: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:13
שלום
שלום רב.. !!
אני (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
קוד מתחת ללשונית 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
מוּמלָץ:
מתג ממסר ממסר RFID Arduino Uno, עם תצוגת I2C: 4 שלבים
מתג ממסר ממסר RFID Arduino Uno, עם תצוגת I2C: שלום, זהו הפרויקט הראשון שלי, שמי אוסקר ואני בן 13. פרויקט זה עובד עם צג I2C, לא רגיל
תחילת העבודה עם ממשק חיישן I2C ?? - ממשק MMA8451 שלך באמצעות ESP32s: 8 שלבים
תחילת העבודה עם ממשק חיישן I2C ?? - ממשק ה- MMA8451 שלך באמצעות ESP32s: במדריך זה, תלמד הכל על איך להתחיל, להתחבר ולהשיג מכשיר I2C (מאיץ) שעובד עם בקר (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
ממשק ממשק קל ליישם -- תצוגת OLED עם ג'ויסטיק ולחצנים: 6 שלבים
ממשק ממשק קל ליישם || תצוגת OLED עם ג'ויסטיק ולחצנים: מודול זה כולל צג OLED עם שני כפתורים, ג'ויסטיק 5 כיוונים ומד תאוצה 3 צירים. זה שימושי בהגדרת ממשק משתמש לפרויקט. היי, מה קורה חבר'ה? אקרש כאן מ- CETech. היום אנו נסתכל על מודול הכל-באחד, אשר
בקר ממסר ממסר Alexa Raspberry Pi: 6 שלבים
בקר ממסר ממסר Alexa Raspberry Pi: יצרתי את המדריך הזה כדי לחלוק את החוויות שלי עם שילוב מכשירי IOT עם Alexa של אמזון. פרויקט זה מאפשר לשלוט בלוח ממסר המחובר לפאי פטל מבקר smarthome. הוא נבדק עם אלקסה אך נראה גם
ממסר NodeMCU 8CH Sonoff ממסר: 11 שלבים
Tasmotized NodeMCU 8CH ממסר Sonoff: זהו קושחה של NodeMCU Tasmota-Sonoff מבזק 8CH ממסר בקרת ממסר Sonoff-Tasmota היא קושחה חלופית למכשירים מבוססי ESP8266 כמו NodeMCU המאפשרים שליטה על WiFi של מערכות בית חכם (ioT). הרעיון שלי היה לקיים ממסר 8CH