ዝርዝር ሁኔታ:
- ደረጃ 1 አጠቃላይ እይታ
- ደረጃ 2: የሚያስፈልግዎት / አገናኞች
- ደረጃ 3 የወረዳ ዲያግራም
- ደረጃ 4 - ፕሮግራሚንግ - እኔ
- ደረጃ 5 ፕሮግራሚንግ - II
- ደረጃ 6 ቪዲዮ
ቪዲዮ: የ MCP-23008 ትግበራ ቅብብል በይነገጽ (I2C) :: 6 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:30
ሰላም
እንኳን ደስ አላችሁ.. !!
እኔ (Somanshu Choudhary) አርዱዲኖ ናኖ እና ኤም.ሲ.ፒ.
ደረጃ 1 አጠቃላይ እይታ
- የ MCP23X08 መሣሪያው ለ I2C አውቶቡስ ወይም ለ SPI ትግበራዎች 8-ቢት ፣ አጠቃላይ ዓላማ ፣ ትይዩ I/O ማስፋፊያ ይሰጣል።
- MCP23X08 ለግቤት ፣ ለውጤት እና ለፖላርነት ምርጫ በርካታ የ 8 ቢት ውቅረት መመዝገቢያዎችን ያካትታል። የ I/O ውቅረት ቅንጣቶችን በመጻፍ የስርዓቱ ማስተር I/Os ን እንደ ግብዓቶች ወይም ውፅዓቶች ማንቃት ይችላል። ለእያንዳንዱ ግብዓት ወይም ውፅዓት ውሂብ በተጓዳኝ የግቤት ወይም የውጤት መመዝገቢያ ውስጥ ይቀመጣል። የግብዓት ወደብ መመዝገቢያው ዋልታ በፖላራይተርስ ተገላቢጦሽ መዝገብ ሊገለበጥ ይችላል። ሁሉም መመዝገቢያዎች በስርዓቱ ማስተር ሊነበቡ ይችላሉ።
- የውሂብ ሉህ አገናኝ
ደረጃ 2: የሚያስፈልግዎት / አገናኞች
1. አርዱዲኖ ናኖ LINK:
2. መከለያ ለአርዱዲኖ ናኖ አገናኝ:
3. የዩኤስቢ ገመድ ዓይነት ሀ ወደ ማይክሮ ዓይነት ቢ 6 እግሮች ረጅም
4. I²C ገመድ አገናኝ:
5. ስምንት SPDT I²C ቁጥጥር የሚደረግበት ቅብብል
6. አስማሚ አገናኝ:
ደረጃ 3 የወረዳ ዲያግራም
ደረጃ 4 - ፕሮግራሚንግ - እኔ
- በዚህ ኮድ ውስጥ የተግባራዊ ፕሮግራም አወጣጥ ዘዴን እጠቀማለሁ
- ለተግባሮች ትርጓሜ እና ለተግባር ጥሪ የተለያዩ ትሮችን እጠቀም ነበር
ከጣቢያው በታች ኮድ ጥ ፦
// ቀላል ተግባር ጥሪ ኮድ
#ባዶነትን ማዋቀር () ያካትቱ
{
የ MCP23008 // I2C አድራሻ
#መግለፅ MCP_ADDR 0x20
// እንደ ዋና I2C አውቶቡስን ይቀላቀሉ
Wire.begin ();
// ተከታታይ ግንኙነትን ይጀምሩ እና የባውድ ተመን ያዘጋጁ
Serial.begin (9600);
// በ I2C አውቶቡስ ላይ በተሰጠው መሣሪያ ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (MCP_ADDR);
// IODIR - I/O DIRECTION REGISTER መዝገብ ይምረጡ
Wire.write (0x00);
// አስፈላጊውን ክወና ይምረጡ (ውፅዓት)
Wire.write (0x00);
// የውቅረት ምዝገባን ይምረጡ
Wire.write (0x05);
// አስፈላጊውን ክወና ይምረጡ
Wire.write (0x0E);
// የማስተላለፍ መጨረሻ
Wire.endTransmission ();
}
ባዶነት loop ()
{
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 ();
}
ከጣቢያ በታች ኮድ 1
// ይህ ኮድ በቦርዱ ላይ 1 ቅብብልን ለማብራት እና ለማጥፋት ነው
ባዶነት a1_on () {
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ባዶነት a1_off ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ከጣቢ በታች ኮድ 2
// ይህ ኮድ በቦርዱ ላይ ቅብብል 2 ን ለማብራት እና ለማጥፋት ነው
ባዶነት a2_on () {
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ባዶነት a2_off ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ከጣቢያ በታች ኮድ q3: // ይህ ኮድ በቦርዱ ላይ ቅብብል 3 ን ለማብራት እና ለማጥፋት ነው
ባዶነት a3_on ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ባዶነት a3_off ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ደረጃ 5 ፕሮግራሚንግ - II
ከጣቢ በታች ኮድ 4:
// ይህ ኮድ በቦርዱ ላይ ቅብብል 4 ን ለማብራት እና ለማጥፋት ነው
ባዶነት a4_on ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ባዶነት a4_off ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ከጣቢያ በታች ኮድ 5
// ይህ ኮድ በቦርዱ ላይ ቅብብል 5 ን ለማብራት እና ለማጥፋት ነው
ባዶነት a5_on ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ባዶነት a5_off ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ከጣቢያ በታች ኮድ q6: // ይህ ኮድ በቦርዱ ላይ ቅብብል 6 ን ለማብራት እና ለማጥፋት ነው
ባዶነት a6_on ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ባዶነት a6_off ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ከጣቢያ በታች ኮድ q7: // ይህ ኮድ በቦርዱ ላይ ቅብብል 7 ን ለማብራት እና ለማጥፋት ነው
ባዶነት a7_on () {
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ባዶነት a7_off ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ከጣቢያ በታች ኮድ q8: // ይህ ኮድ በቦርዱ ላይ ቅብብል 8 ን ለማብራት እና ለማጥፋት ነው
ባዶነት a8_on () {
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ባዶነት a8_off ()
{
// ማስተላለፍ ይጀምሩ
Wire.begin ማስተላለፊያ (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 (ጂፒኦ ፣ ቢን);
}
ደረጃ 6 ቪዲዮ
ለተጨማሪ ጥያቄዎች ጣቢያችንን ለመጎብኘት ነፃነት ይሰማዎት-
www.dcubetechnologies.com
የሚመከር:
በ I2C ዳሳሽ በይነገጽ መጀመር ?? - ESP32s ን በመጠቀም 8 ኤምአርኤፍዎን MMA8451 በይነገጽ ያድርጉ
በ I2C ዳሳሽ በይነገጽ መጀመር ?? - ESP32 ዎችን በመጠቀም የእርስዎ ኤምኤምኤ 8451 በይነገጽ - በዚህ መማሪያ ውስጥ I2C መሣሪያ (አክስሌሮሜትር) ከመቆጣጠሪያ (Arduino ፣ ESP32 ፣ ESP8266 ፣ ESP12 NodeMCU) ጋር እንዴት እንደሚሠራ ሁሉንም ይማራሉ።
በቴሌግራም ትግበራ ቀላል IOT እንዴት እንደሚደረግ -5 ደረጃዎች
በቴሌግራም ትግበራ ቀላል IOT እንዴት እንደሚደረግ -በአሁኑ ትውልድ በይነመረብ ሁሉም ነገር ነው። የነገሮች በይነመረብ አሁን ባለው ዓለም ውስጥ ትልቅ ሚና ይጫወታል። ብዙ ጊዜ ሳናጠፋ ወደ IOT ተግባራዊ ሥራ መግባት እንችላለን። እዚህ መሪውን እንቆጣጠራለን እንዲሁም ደግሞ
ከርቀት የተጨናነቀ የቤት ትግበራ ከማስታወስ ተግባር ጋር: 4 ደረጃዎች
ከርቀት የተጨናነቀ የቤት ትግበራ ከማህደረ ትውስታ ተግባር ጋር - ይህንን ወረዳ በመጠቀም ir ርቀትን በመጠቀም የ 4 ቅብብልን መቆጣጠር እንችላለን እና የ ‹Eprom› ተግባርን በመጠቀም የኃይል ማጣት በሚኖርበት ጊዜ እንኳን የመጨረሻውን የቅብብሎሽ ሁኔታ ያስታውሳል።
Iterator (Python GUI ትግበራ) - 5 ደረጃዎች
Iterator (Python GUI ትግበራ): ሠላም ልጆች ፣ እኔ በሌላ አስደናቂ አስተማሪ ተመለስኩ። በዚህ ጊዜ ፓይቶን ተማርኩ ፣ እና የፕሮግራም ቋንቋን ከተማርኩ በኋላ አንዳንድ ሶፍትዌሮችን ማዘጋጀት የተሻለ ነው ብዬ አሰብኩ። ስለዚህ አሰልቺ በሆነው p ላይ ሊረዳ የሚችል ሶፍትዌር ለምን እንደማይፈጥር ሀሳብ አገኘሁ
ቀላል የቤት አውቶማቲክ (ብሉቱዝ ትግበራ) 6 ደረጃዎች
ቀላል የቤት አውቶማቲክ (ብጁ የብሉቱዝ ትግበራ) -በዚህ ትምህርት ውስጥ ቀላል የቤት አውቶማቲክን እንዴት እንደሚገነቡ (እኔ የእኛን የቤት አፕሊኬሽኖች በስማርትፎን መቆጣጠር እንችላለን)