Вериги

Прилагане на MCP-23008 с помощта на релейния интерфейс (I2C) :: 6 стъпки

Python Myanmar - Unicode Converter in Mac OSX

Python Myanmar - Unicode Converter in Mac OSX

Съдържание:

Anonim

Здравейте

Добри поздрави .. !!

Аз (Somanshu Choudhary) от името на технологичните компании Dcube ще контролираме Релета чрез I2C протокол, използвайки Arduino nano и MCP23008.

градина:

Стъпка 1: Общ преглед

  • Устройството MCP23X08 осигурява 8-битово, общо предназначение, паралелно I / O разширение за I2C шина или SPI приложения.
  • MCP23X08 се състои от множество 8-битови конфигурационни регистри за избор на вход, изход и полярност. Системният капитан може да разреши I / O като вход или изход чрез записване на I / O конфигурационни бита. Данните за всеки вход или изход се съхраняват в съответния входен или изходен регистър. Полярността на регистъра на входния порт може да се инвертира с регистъра за инверсия на поляритета. Всички регистри могат да бъдат прочетени от системния капитан.
  • DATASHEET LINK: http: //ww1.microchip.com/downloads/en/DeviceDoc/21 …

Стъпка 2: Какво имате нужда / Връзки

1.Arduino Nano LINK: http://store.arduino.cc/

2. Щит за Arduino Nano LINK: http: //www.controleverything.com/content/I2C-Mast …

3.USB кабел тип A до микро тип B 6 фута дълъг LINK: http: //www.controleverything.com/content/USB-Cabl …

4.I²C Кабел LINK: http: //www.controleverything.com/content/I2C-Cabl …

5. Осем SPDT I²C контролирани релета LINK: http: //www.controleverything.com/content/Relay-Co …

6. Адаптор LINK: http: //www.amazon.in/Sharp-Plus-Adapter-Supported -…

Стъпка 3: Схема на веригата

Стъпка 4: Програмиране - I

  • В този код използвам Paradigm за програмиране на функции
  • Използвах различни раздели за дефиниране на функции и функционално извикване

CODE UNDER THE TAB q:

// Прост код за извикване на функции

#include
void setup ()

{

// I2C адрес на MCP23008

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

// Изберете регистър CONFIGURATION

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

}

CODE UNDER THE TAB 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);

}

CODE UNDER THE TAB 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);

}

CODE UNDER TABE под TAB 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);

}

анулира 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

CODE UNDER THE TAB 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);

}

анулира 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);

}

CODE UNDER THE TAB 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);

}

анулира 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);

}

CODE UNDER THE TAB 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);

}

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

}

CODE UNDER THE TAB 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