Мазмуну:

Relay Interface (I2C) колдонуу менен MCP-23008дин колдонулушу :: 6 кадам
Relay Interface (I2C) колдонуу менен MCP-23008дин колдонулушу :: 6 кадам

Video: Relay Interface (I2C) колдонуу менен MCP-23008дин колдонулушу :: 6 кадам

Video: Relay Interface (I2C) колдонуу менен MCP-23008дин колдонулушу :: 6 кадам
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, Ноябрь
Anonim
Relay Interface (I2C) аркылуу MCP-23008дин колдонулушу
Relay Interface (I2C) аркылуу MCP-23008дин колдонулушу

салам

Жакшы салам.. !!

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

1 -кадам: Обзор

Обзор
Обзор
  • MCP23X08 түзмөгү I2C шинасы же SPI тиркемелери үчүн 8-бит, жалпы максатта, параллель I/O кеңейтүүсүн камсыз кылат.
  • MCP23X08 киргизүү, чыгаруу жана полярдыкты тандоо үчүн бир нече 8-биттик конфигурация регистрлеринен турат. Тутумдун мастери I/Oну I/O конфигурация биттерин жазуу менен кириш же чыгуучу катары иштете алат. Ар бир киргизүү же чыгаруу боюнча маалыматтар тиешелүү Киргизүү же Чыгуу реестринде сакталат. Киргизүү портунун реестринин полярдуулугун Polarity Inversion реестри менен алмаштырса болот. Бардык регистрлерди системанын мастери окуй алат.
  • DATASHEET LINK:

2 -кадам: Сизге эмне керек / Шилтемелер

Сизге эмне керек / Шилтемелер
Сизге эмне керек / Шилтемелер

1. Arduino Nano LINK:

2. Shield for Arduino Nano LINK:

3. USB кабелинин түрү Micro Type B 6 Feet Long

4. I²C Cable LINK:

5. SPDT I²C башкаруучу сегиз реле

6. Адаптер LINK:

3 -кадам: Райондук диаграмма

Райондук диаграмма
Райондук диаграмма
Райондук диаграмма
Райондук диаграмма

4 -кадам: Программалоо - И

Программалоо - И
Программалоо - И
Программалоо - И
Программалоо - И
  • Бул коддо мен функционалдык программалоо парадигмасын колдоном
  • Мен функцияларды аныктоо жана функцияларды чакыруу үчүн ар кандай өтмөктөрдү колдондум

Таблицанын алдындагы код q:

// Жөнөкөй функция чакыруу коду

#жараксыз орнотууну кошуу ()

{

// MCP23008 I2C дареги

#define 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 -релени күйгүзүү жана өчүрүү

void 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 -релени күйгүзүү жана өчүрүү

void 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 -релени бортто күйгүзүү жана өчүрүү

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

}

T6 астындагы код q6: // Бул код 6 -реленин бортунда күйгүзүү жана өчүрүү

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

}

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

}

T7 астындагы КОД:

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

}

void 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 -релесин күйгүзүү жана өчүрүү

void 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

Сунушталууда: