Мазмұны:

I2C релесі Arduino IDE кездесті: 5 қадам
I2C релесі Arduino IDE кездесті: 5 қадам

Бейне: I2C релесі Arduino IDE кездесті: 5 қадам

Бейне: I2C релесі Arduino IDE кездесті: 5 қадам
Бейне: Подключение дисплея 1602 lcd i2c. 1602 ардуино дисплей 2024, Шілде
Anonim
I2C релесі Arduino IDE -мен кездесті
I2C релесі Arduino IDE -мен кездесті

Мен жақсы реле тақтасына тапсырыс беремін, бірақ ArduinoIDE нұсқауы болмады, тек Raspberry Pi e.o. Мен оны Arduino -мен қалай пайдалану керектігін білемін және сізбен бөліскім келеді, сонда сіз бұл уақытты үнемдей аласыз.

RaspberryPi түпнұсқасының мысалы:

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

Жақсы нәрсе, сіз 4 тақтаны жинай аласыз. Сондықтан сіз max қолдана аласыз. 4 x 4 = 16 реле бір I2C шинасында.

Сонымен қатар кейбір кемшіліктері бар:

  • кішкене терминалдар, 1 мм2 сымға сәйкес келмейді
  • төменгі коннекторлардың сымдарын олар бір -біріне жиналған кезде өзгерте алмайсыз

Бірақ бәрібір ыңғайлы тақта.

1 -қадам: Байланыстыру

Қосылу
Қосылу
Қосылу
Қосылу
Қосылу
Қосылу

Суреттерде сіз сымдарды көре аласыз.

52Pi 5V (реле үшін) en 3.3V (I2C чипі) екеуіне де қажет.

Сондықтан 5 сым қажет:

  • GND - GND
  • 5 В -тан 5 В -қа дейін
  • 3,3 В -тан 3,3 В -қа дейін
  • SLA - SLA
  • SCL - SCL

Егер сіз Arduino UNO немесе басқа 5 В пайдалансаңыз, I2C контроллерінен max 3, 6 V болуы керек! Arduino PIN кодының 5 В кернеуін төмендету үшін резисторларды немесе басқаларды қолданыңыз!

2 -қадам: қарапайым код мысалы:

/* Arduino IDE (ESP) үлгісі I2C рельсборды үшін.

* Лоренс Корсте www.boktorrobotica.nl * тегін. */ #include // I2C коммуникациясының жарамсыздығын реттеу үшін () {// бұл ереже UNO немесе арнайы W2. IreC түйреуіштері бар тақталар үшін емес Wire.begin (D1, D2); // nodeMCU үшін SDA = D1 және SCL = D2 көмегімен i2c шинасына қосылыңыз} жарамсыз цикл () {Wire.beginTransmission (0x10);/ * I2C адресіне 10 жіберуді бастаңыз (11, 12 немесе 13 -ке өзгерту үшін) */ Сым.write (0x01); / * таңдау релесі 1 (4 -тен) 10 бортында (сонымен қатар 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* 10 -борттағы 1 -релейді ON күйіне қойыңыз. барлық сандар> 0 осылай жасайды */ Wire.endTransmission (); / * беруді тоқтату */ кешігу (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * 10 -борттағы 1 -релизді ӨШІРУ күйіне қойыңыз */ Wire.endTransmission (); / * беруді тоқтату */ кешігу (3000); }

3 -қадам: Төрт релелік тест коды

/* Ардуиноға арналған Лоренс Корстенің эскизі (ESP / NodeMCU)

* Бірақ басқа тақталар да солай жасайды * www.boktorrobotica.nl * Бұл эскизде 4 релесі ажыратылған күйде қосылады */ #include // I2C байланысының жарамсыздығын реттеу үшін () {Serial.begin (115200); // жөндеу үшін серияны бастау (UNO үшін 9600) Wire.begin (D1, D2); // n2MCU SDA = D1 және SCL = D2 көмегімен i2c шинасына қосылыңыз, UNO} қажетсіз цикл () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // Wire.write (i) құрылғысының адресінен бастаңыз; // Wire.write релесін таңдау (0xFF); // FF «on» кодын жіберіңіз (01 -ден FF -ге дейінгі әрбір есеп орындалады) Wire.endTransmission (); // Serial.write (i) жіберуді тоқтату; Serial.println («aan»); кешіктіру (1000); Wire.beginTransmission (0x10); // Wire.write (i) құрылғысының адресінен бастаңыз; Wire.write (0x00); // Wire.endTransmission () «өшіру» кодын жіберіңіз; // Serial.write (i) жіберуді тоқтату; Serial.println («uit»); кешіктіру (1000); }}

4 -қадам: Менің жобам

Менің жобам
Менің жобам
Менің жобам
Менің жобам

Мен 3 ысырманы басқару үшін код жаздым, мұны коммутаторлармен, сонымен қатар BLYNK қосымшасымен жасауға болады, суретті қараңыз.

  • Бір қысқа басу бір ысырманы жылжыта бастайды (немесе ол қозғалатын кезде оны тоқтатады).
  • Бір ұзақ басу және барлық үш жапқыш ашылады (немесе жабылады немесе тоқтайды).
  • Қосарланған қысым: ысырмалар «тесіктер» күйіне өтеді.

Суретте көрініп тұрғандай, мен температура мен жарық сенсорын біріктірдім.

Енді бәрі жақсы ПХД негізінде және қорапта ұқыпты.

5 -қадам: Бір пәрменмен реле шақырыңыз

Релені қосу немесе сөндіру үшін сізге тек бір команда қажет болса пайдалы. Төменде мұны істей алатын функция бар (lowbyte және highbyte көмегімен).

/ * I2C релелік тақтасы бар Arduino үшін Laurens Korste эскизі (ESP/NodeMCU) * Бірақ басқа тақталар * href = «https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * Бұл эскизде реле бір қоңырау арқылы қосылады; * // #include // I2C байланысы үшін // Релелік декларация 4 PCB үшін. 4 реле мүмкін. Бұл эскизде тек екі ПХД // ПХД мен реле біріктірілді, сондықтан оларды бір пәрменмен шақыруға болады const байты PutOn = 0xFF; // пәрменді қосу үшін байт PutOff = 0x00; // команды өшіру үшін. const сөзі Relay1bord1 = 0x1001; // сіз есімдерді мысал бойынша кездестіре аласыз Relay1 const сөзі Relay2bord1 = 0x1002; // сіз есімдерді Relay2 const сөзі Relay3bord1 = 0x1003; Relay4bord1 = 0x1004; // сіз мысалдар бойынша есімдерді кездестіре аласыз Relay4 const word Relay1bord2 = 0x1101; // сіз Relay5 const w мысалы бойынша атауларды кездестіре аласыз. ord Relay2bord2 = 0x1102; // сіз Relay6 const word Relay3bord2 = 0x1103 мысалы бойынша аттарды кездестіре аласыз; // сіз есімдерді Relay7 const word Relay4bord2 = 0x1104 мысалы бойынша кездестіре аласыз; // аттармен Relay8 const word Relay1bord3 = 0x1201 мысалында кездестіруге болады; // сіз мысал бойынша есімдерді кездестіре аласыз Relay9 const word Relay2bord4 = 0x1302; // Relay14 void setup () {Serial.begin (115200) мысалы бойынша атауларды кездестіруге болады; // жөндеу үшін серияны бастау (UNO үшін 9600) Wire.begin (D1, D2); // i2c шинасына SDA = D1 және SCL = D2 NodeMCU көмегімен қосылыңыз, UNO} қажетсіз цикл () {// RelayActie (Relay4bord2, PutOn) 2 ПХД 2 релесін ауыстыру үшін қажет емес; кешіктіру (1000); // 4 -реттік PCB релесін RelayActie өшіру үшін (Relay4bord2, PutOff); кешіктіру (1000); } void RelayActie (Relay сөзі, OnOrOff байт) {Wire.beginTransmission (highByte (Relay))); Wire.write (lowByte (Relay)); Wire.write (OnOrOff); Wire.endTransmission (); }

Ұсынылған: