ዝርዝር ሁኔታ:

I2C Relay Met Arduino IDE: 5 ደረጃዎች
I2C Relay Met Arduino IDE: 5 ደረጃዎች

ቪዲዮ: I2C Relay Met Arduino IDE: 5 ደረጃዎች

ቪዲዮ: I2C Relay Met Arduino IDE: 5 ደረጃዎች
ቪዲዮ: #20 Tutorial: Multiple Devices on One Arduino I2C Bus 2024, ሀምሌ
Anonim
I2C Relay Met Arduino IDE
I2C Relay Met Arduino IDE

ጥሩ የማስተላለፊያ ሰሌዳ አዝዣለሁ ፣ ግን የአርዲኖይድ መመሪያ አልነበረም ፣ Raspberry Pi e.o. ከአርዱዲኖ ጋር እንዴት እንደሚጠቀሙበት እና ያንን ጊዜ ለመቆጠብ እንዲችሉ ማጋራት እፈልጋለሁ።

የመጀመሪያው RaspberryPi ምሳሌ

wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099

ጥሩ ነገር እስከ 4 ሰሌዳዎች መደርደር ይችላሉ። ስለዚህ ከፍተኛውን መጠቀም ይችላሉ። 4 x 4 = 16 ቅብብል በአንድ I2C አውቶቡስ ላይ።

አንዳንድ ጉዳቶችም አሉ-

  • ትናንሽ ተርሚናሎች ፣ ከ 1 ሚሜ 2 ሽቦ ጋር አይገጣጠሙ
  • የታችኛው ተያያorsች አንድ ላይ ሲደራረቡ ሽቦውን መለወጥ አይችሉም

ግን አሁንም ምቹ ቦርድ።

ደረጃ 1 - ሽቦ ማያያዝ

ሽቦ አልባ
ሽቦ አልባ
ሽቦ አልባ
ሽቦ አልባ
ሽቦ አልባ
ሽቦ አልባ

በስዕሎቹ ውስጥ ሽቦውን ማየት ይችላሉ።

52Pi ሁለቱንም 5V (ለሪሌይ) በ 3.3V (I2C ቺፕ) ይፈልጋል።

ስለዚህ 5 ሽቦዎች ያስፈልጋሉ

  • ከ GND ወደ GND
  • ከ 5 ቮ እስከ 5 ቮ
  • ከ 3.3 ቮ እስከ 3.3 ቮ
  • SLA ወደ SLA
  • SCL ወደ SCL

አርዱዲኖ UNO ወይም ሌላ 5 ቮ ከ I2C ተቆጣጣሪው ከፍተኛውን 3 ፣ 6 ቮ የሚጠቀሙ ከሆነ! ከአርዱዲኖ ፒን ውስጥ 5 ቮን ዝቅ ለማድረግ ተቃዋሚዎችን ይጠቀሙ ወይም ሌላ ይጠቀሙ!

ደረጃ 2 ቀላል ኮድ ምሳሌ

/* Arduino IDE (ESP) ምሳሌ ለ I2C relaisboard።

* በሎረንስ ኮርቴ www.boktorrobotica.nl * ለመጠቀም ነፃ። */ #ያካትቱ // ለ I2C የግንኙነት ባዶነት ቅንብር () {// ይህ ደንብ ለ UNO ወይም ለወሰኑ I2C ፒኖች Wire.begin (D1 ፣ D2) አይደለም። // ከ i2c አውቶቡስ ጋር በ SDA = D1 እና SCL = D2 ለ NodeMCU} ባዶ ክፍተት () {Wire.beginTransmission (0x10);/ * ወደ I2C አድራሻ 10 ማስተላለፍ ይጀምሩ (እንዲሁም ወደ 11 ፣ 12 ወይም 13 ለመለወጥ) */ ሽቦ.ፃፍ (0x01); / * ምርጫ relais 1 (ከ 4) በቦርዱ 10 (እንዲሁም 0x02 ፣ 0x03 ፣ 0x04) */ Wire.write (0xFF); /* ሪሴስ 1 ን በቦርዱ 10 ወደ በርቷል። ሁሉም ቁጥሮች> 0 ይህን ያደርጋሉ */ Wire.endTransmission (); / * ማስተላለፍ አቁም */ መዘግየት (3000); Wire.begin ማስተላለፊያ (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * ሪሲስን 1 በቦርድ 10 ላይ አጥፋ */ Wire.endTransmission () ፤ / * ማስተላለፍ አቁም */ መዘግየት (3000); }

ደረጃ 3 - የአራት ቅብብል የሙከራ ኮድ

/* ስዕል በሎረንስ ኮርቴ ለአርዱinoኖ (ESP / NodeMCU)

* ነገር ግን ሌሎች ቦርዶች እንዲሁ ያደርጋሉ * www.boktorrobotica.nl * በዚህ skeych al ውስጥ 4 ቅብብሎሹ በ en/ activated */ #include // ለ I2C የግንኙነት ባዶነት ቅንብር () {Serial.begin (115200); // ለማረም ተከታታይን ይጀምሩ (9600 ለ UNO) Wire.begin (D1 ፣ D2); // i2c አውቶቢስን ከ SDA = D1 እና SCL = D2 ከኖድኤምሲዩ ጋር ይቀላቀሉ UNO} ባዶ ዙር () {ለ (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // በመሣሪያ አድራሻ ይጀምሩ Wire.write (i); // relais Wire.write ን ይምረጡ (0xFF); // “በርቷል” ኮድ ኤፍኤፍ (እያንዳንዱ ቁጥር ከ 01 ወደ ኤፍኤፍ ያደርገዋል) Wire.endTransmission (); // ማስተላለፍን ያቁሙ Serial.write (i); Serial.println ("aan"); መዘግየት (1000); Wire.begin ማስተላለፊያ (0x10); // በመሣሪያ አድራሻ ይጀምሩ Wire.write (i); Wire.write (0x00); // “ጠፍቷል” ኮዱን Wire.endTransmission () ይላኩ ፤ // ማስተላለፍን ያቁሙ Serial.write (i); Serial.println ("uit"); መዘግየት (1000); }}

ደረጃ 4 የእኔ ፕሮጀክት

የእኔ ፕሮጀክት
የእኔ ፕሮጀክት
የእኔ ፕሮጀክት
የእኔ ፕሮጀክት

የእኔን 3 መዝጊያዎች ለማንቀሳቀስ ኮድ ጽፌያለሁ። ይህ በመቀያየሪያዎች ግን በ BLYNK መተግበሪያ ፣ ምስሉን ይመልከቱ።

  • አንድ አጭር ፕሬስ አንድ መዝጊያ ማንቀሳቀስ ይጀምራል (ወይም በሚንቀሳቀስበት ጊዜ ያቁሙት)።
  • አንድ ረዥም ፕሬስ እና ሶስቱም መዝጊያዎች ይከፈታሉ (ወይም ይዝጉ ወይም ያቁሙ)።
  • ድርብ ግፊት -መከለያዎቹ ወደ “ቀዳዳዎች” አቀማመጥ ይሄዳሉ።

በሥዕሉ ላይ እንደሚታየው እኔ የሙቀት እና የብርሃን ዳሳሽንም አጣምሬአለሁ።

አሁን ሁሉም ነገር በጥሩ መሠረት ፒሲቢ ላይ እና በጥሩ ሁኔታ በሳጥን ውስጥ።

ደረጃ 5 - በአንድ ትዕዛዝ ሪሌይ ይደውሉ

ቅብብሎትን ለማግበር ወይም ለማሰናከል አንድ ትዕዛዝ ብቻ ከፈለጉ ጠቃሚ ነው። ከዚህ በታች ይህንን ማድረግ የሚችል ተግባር ነው (በአነስተኛ ባይት እና በሃይቢቴ)።

/ * ስዕል በሎረንስ ኮርስቴ ለአርዱinoኖ (ESP/NodeMCU) በ I2C relaysboard * ሌሎች ቦርዶች እንዲሁ * href = “https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * በዚህ ረቂቅ ውስጥ ቅብብሎሹ በአንድ ጥሪ ይንቀሳቀሳል ፤ 4 ቅብብሎች ይቻላል። በዚህ ንድፍ ውስጥ በአንድ ፒሲቢ /ፒሲቢ እና በቅብብሎች ብቻ በአንድ ትእዛዝ እንዲጠሩ ተደርገዋል የተዋሃዱ ናቸው። const ቃል Relay1bord1 = 0x1001; // ስሞችን በምሳሌ ዕድል ሊያገኙ ይችላሉ Relay1 const word Relay2bord1 = 0x1002; // ስሞችን በምሳሌ Relay2 const ቃል Relay3bord1 = 0x1003; // ስሞችን በምሳሌ Relay3 const ቃል ማድረግ ይችላሉ Relay4bord1 = 0x1004; // ስሞቹን በምሳሌ ዕድል መስጠት ይችላሉ Relay4 const ቃል Relay1bord2 = 0x1101; // ስሞችን በምሳሌ Relay5 const w ord Relay2bord2 = 0x1102; // ስሞችን በምሳሌ በአጋጣሚ ማግኘት ይችላሉ Relay6 const ቃል Relay3bord2 = 0x1103; // ስሞችን በምሳሌ በአጋጣሚ ማግኘት ይችላሉ Relay7 const ቃል Relay4bord2 = 0x1104; // ስሞችን በምሳሌነት Relay8 const ቃል Relay1bord3 = 0x1201 ማድረግ ይችላሉ። // ስሞችን በምሳሌ በአጋጣሚ ማግኘት ይችላሉ Relay9 const ቃል Relay2bord4 = 0x1302; // ስሞችን በምሳሌ Relay14 ባዶ ባዶ ማዋቀር () {Serial.begin (115200) ማድረግ ይችላሉ። // ለማረም ተከታታይ ይጀምሩ (9600 ለ UNO) Wire.begin (D1 ፣ D2); // i2c አውቶቢስን ከ SDA = D1 እና SCL = D2 ከ NodeMCU ጋር መቀላቀል UNO} ባዶ ባዶ loop () {// በ RelayActie (Relay4bord2 ፣ PutOn) ላይ ቅብብሎሽ 4 ን በ PCB 2 ለመቀየር; መዘግየት (1000); // RelayActie ን (Relay4bord2 ፣ PutOff) ላይ በ PCB 2 ላይ ቅብብል 4 ለመቀየር; መዘግየት (1000); } ባዶነት RelayActie (ቃል Relay ፣ byte OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (Relay)); Wire.write (OnOrOff); Wire.endTransmission (); }

የሚመከር: