Мазмұны:

MCP-23008 релелік интерфейсті қолдану (I2C) :: 6 қадам
MCP-23008 релелік интерфейсті қолдану (I2C) :: 6 қадам

Бейне: MCP-23008 релелік интерфейсті қолдану (I2C) :: 6 қадам

Бейне: MCP-23008 релелік интерфейсті қолдану (I2C) :: 6 қадам
Бейне: I2CIO-8 (MCP23008) I2C Demo 2024, Шілде
Anonim
Релелік интерфейсті (I2C) қолданып MCP-23008 қолдану
Релелік интерфейсті (I2C) қолданып MCP-23008 қолдану

Сәлеметсіз бе

Жақсы сәлем.. !!

Мен (Соманшу Чоудхари) Dcube технологиялық кәсіпорындары атынан Arduino нано мен MCP23008 көмегімен I2C протоколы арқылы релені басқаратын боламын.

1 -қадам: Шолу

Шолу
Шолу
  • MCP23X08 құрылғысы I2C шинасы немесе SPI қосымшалары үшін 8-разрядты, жалпы мақсатты, параллель енгізу-шығаруды кеңейтуді қамтамасыз етеді.
  • MCP23X08 кіріс, шығыс және полярлықты таңдауға арналған бірнеше 8 биттік конфигурация регистрлерінен тұрады. Жүйелік мастер енгізу -шығару конфигурациясының биттерін жазу арқылы енгізу -шығару қызметін кіріс немесе шығыс ретінде қосуы мүмкін. Әр кіріс немесе шығыс бойынша деректер сәйкес Кіріс немесе Шығу регистрінде сақталады. Кіріс порты регистрінің полярлығын Polarity Inversion регистрінің көмегімен төңкеруге болады. Барлық регистрлерді жүйе шебері оқи алады.
  • Деректер парағының сілтемесі:

2 -қадам: Сізге не қажет / сілтемелер

Сізге не қажет / Сілтемелер
Сізге не қажет / Сілтемелер

1. Arduino Nano LINK:

2. Arduino Nano LINK үшін қалқан:

3. USB кабелі А түрінен В түріне дейін 6 фут

4. I²C кабелінің сілтемесі:

5. SPDT I²C басқарылатын сегіз реле

6. Сілтеме адаптері:

3 -қадам: схема

Схема диаграммасы
Схема диаграммасы
Схема диаграммасы
Схема диаграммасы

4 -қадам: Бағдарламалау - И

Бағдарламалау - И
Бағдарламалау - И
Бағдарламалау - И
Бағдарламалау - И
  • Бұл кодта мен функционалды бағдарламалау парадигмасын қолданамын
  • Мен функцияларды анықтау және шақыру үшін әр түрлі қойындыларды қолдандым

Кесте астындағы код q:

// Қарапайым функцияны шақыру коды

#жарамсыз орнатуды қосыңыз ()

{

// MCP23008 I2C мекенжайы

#MCP_ADDR 0x20 анықтаңыз

// I2C Bus -ке мастер ретінде қосылыңыз

Wire.begin ();

// Сериялық байланысты бастаңыз және беру жылдамдығын орнатыңыз

Serial.begin (9600);

// Беруді I2C шинасында берілген құрылғымен бастаңыз

Wire.beginTransmission (MCP_ADDR);

// IODIR - I/O DIRECTION REGISTER регистрін таңдаңыз

Wire.write (0x00);

// Қажетті әрекетті таңдаңыз (шығыс)

Wire.write (0x00);

// Конфигурация регистрін таңдаңыз

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 -релені қосу және өшіру болып табылады

жарамсыз 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 -релелік қосуға және өшіруге арналған

жарамсыз 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);

}

жарамсыз 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 релесін қосу және өшіру болып табылады

жарамсыз 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

Ұсынылған: