Агуулгын хүснэгт:

Relay Interface (I2C) ашиглан MCP-23008-ийн хэрэглээ :: 6 алхам
Relay Interface (I2C) ашиглан MCP-23008-ийн хэрэглээ :: 6 алхам

Видео: Relay Interface (I2C) ашиглан MCP-23008-ийн хэрэглээ :: 6 алхам

Видео: Relay Interface (I2C) ашиглан MCP-23008-ийн хэрэглээ :: 6 алхам
Видео: 64 Relay working on 2 pins of microcontroller. I2C Relay Board 2024, Долдугаар сарын
Anonim
Relay Interface (I2C) ашиглан MCP-23008 програм
Relay Interface (I2C) ашиглан MCP-23008 програм

Сайн уу

Сайн байцгаана уу.. !!

Би (Somanshu Choudhary) Dcube технологийн компаниудын нэрийн өмнөөс Arduino нано болон MCP23008 ашиглан I2C протоколоор дамжуулан реле удирдах болно.

Алхам 1: Тойм

Тойм
Тойм
  • MCP23X08 төхөөрөмж нь I2C автобус эсвэл SPI програмуудад зориулагдсан 8 битийн, ерөнхий зориулалттай, параллель I/O өргөтгөлийг хангадаг.
  • MCP23X08 нь оролт, гаралт, туйлыг сонгох 8 битийн олон тохиргооны бүртгэлээс бүрдэнэ. Системийн мастер нь оролтын/гаралтын тохиргооны битүүдийг бичих замаар оролт, гаралтыг идэвхжүүлэх боломжтой. Оролт, гаралт бүрийн өгөгдлийг харгалзах оролт, гаралтын бүртгэлд хадгална. Оролтын портын бүртгэлийн туйлыг туйлшралын урвуу бүртгэлээр урвуулж болно. Бүх бүртгэлийг системийн мастер унших боломжтой.
  • Мэдээллийн хуудасны холбоос:

Алхам 2: Танд хэрэгтэй зүйл / холбоосууд

Танд хэрэгтэй зүйл / холбоосууд
Танд хэрэгтэй зүйл / холбоосууд

1. Arduino Nano LINK:

2. Arduino Nano LINK -ийн бамбай:

3. USB кабелийн төрөл нь бичил төрөл B 6 фут урт

4. I²C кабелийн холбоос:

5. Найман SPDT I²C хяналттай реле

6. Адаптерийн холбоос:

Алхам 3: Хэлхээ диаграм

Хэлхээ диаграм
Хэлхээ диаграм
Хэлхээ диаграм
Хэлхээ диаграм

Алхам 4: Програмчлал - Би

Програмчлал - Би
Програмчлал - Би
Програмчлал - Би
Програмчлал - Би
  • Энэ кодонд би функциональ програмчлалын парадигмыг ашигладаг
  • Би функцүүдийн тодорхойлолт, функцийг дуудахын тулд өөр өөр табуудыг ашигласан

ХУУДСАН ДООРХ КОД q:

// Энгийн функцын дуудлагын код

#хүчингүй тохиргоог оруулах ()

{

// MCP23008 -ийн I2C хаяг

#тодорхойлох MCP_ADDR 0x20

// I2C Bus -д мастераар элсээрэй

Wire.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 -р релийг онгоцонд асаах, унтраах явдал юм

void 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

Програмчлал - 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 -р буухиа асаах ба унтраах явдал юм

void 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);

}

void 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);

}

ХҮСНИЙ ДЭРХЭН код7

хүчин төгөлдөр бус 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);

}

TAB 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

Зөвлөмж болгож буй: