Table des matières:

Application de MCP-23008 à l'aide de l'interface relais (I2C) : : 6 étapes
Application de MCP-23008 à l'aide de l'interface relais (I2C) : : 6 étapes

Vidéo: Application de MCP-23008 à l'aide de l'interface relais (I2C) : : 6 étapes

Vidéo: Application de MCP-23008 à l'aide de l'interface relais (I2C) : : 6 étapes
Vidéo: Релейная плата I2C, 8-канальная с использованием MCP23008 2024, Juillet
Anonim
Application de MCP-23008 utilisant l'interface de relais (I2C)
Application de MCP-23008 utilisant l'interface de relais (I2C)

Bonjour

Bonnes salutations..!!

Je (Somanshu Choudhary) au nom de Dcube tech ventures va contrôler les relais via le protocole I2C en utilisant Arduino nano et MCP23008.

Étape 1: Aperçu

Aperçu
Aperçu
  • Le dispositif MCP23X08 fournit une extension d'E/S parallèle à usage général 8 bits pour les applications de bus I2C ou SPI.
  • Le MCP23X08 se compose de plusieurs registres de configuration 8 bits pour la sélection d'entrée, de sortie et de polarité. Le maître du système peut activer les E/S en tant qu'entrées ou sorties en écrivant les bits de configuration des E/S. Les données de chaque entrée ou sortie sont conservées dans le registre d'entrée ou de sortie correspondant. La polarité du registre du port d'entrée peut être inversée avec le registre d'inversion de polarité. Tous les registres peuvent être lus par le maître du système.
  • LIEN DE LA FICHE TECHNIQUE:

Étape 2: Ce dont vous avez besoin / Liens

Ce dont vous avez besoin / Liens
Ce dont vous avez besoin / Liens

1. LIEN Arduino Nano:

2. Shield pour Arduino Nano LINK:

3. Câble USB Type A vers Micro Type B 6 pieds de long

4. LIEN de câble I²C:

5. Huit relais contrôlés SPDT I²C

6. LIEN de l'adaptateur:

Étape 3: schéma de circuit

Schéma
Schéma
Schéma
Schéma

Étape 4: Programmation - I

Programmation - Je
Programmation - Je
Programmation - Je
Programmation - Je
  • Dans ce code, j'utilise Function Programming Paradigm
  • J'ai utilisé différents onglets pour la définition des fonctions et l'appel de fonction

CODE SOUS ONGLET q:

// Code d'appel de fonction simple

#include void setup()

{

// Adresse I2C du MCP23008

#définir MCP_ADDR 0x20

// Rejoindre le bus I2C en tant que maître

Fil.begin();

// Démarrer la communication série et définir le débit en bauds

Serial.begin(9600);

// Commencer la transmission avec le périphérique donné sur le bus I2C

Wire.beginTransmission(MCP_ADDR);

// Sélectionnez IODIR – Registre I/O DIRECTION REGISTER

Wire.write(0x00);

// Sélectionnez l'opération requise (sortie)

Wire.write(0x00);

// Sélectionner le registre CONFIGURATION

Wire.write(0x05);

// Sélectionnez l'opération requise

Wire.write(0x0E);

// terminer la transmission

Wire.endTransmission();

}

boucle vide()

{

a1_on();

retard(1000);

a1_off();

retard(1000);

a2_on();

retard(1000);

a2_off();

retard(1000);

a3_on();

retard(1000);

a3_off();

retard(1000);

a4_on();

retard(1000);

a4_off();

retard(1000);

a5_on();

retard(1000);

a5_off();

retard(1000);

a6_on();

retard(1000);

a6_off();

retard(1000);

a7_on();

retard(1000);

a7_off();

retard(1000);

a8_on();

retard(1000);

a8_off();

}

CODE SOUS ONGLET q1:

// Ce code sert à activer et désactiver le relais 1 à bord

annuler a1_on() {

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x01);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

annuler a1_off()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

CODE SOUS ONGLET q2:

// Ce code sert à activer et désactiver le relais 2 à bord

annuler a2_on() {

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x02);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

annuler a2_off()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

CODE SOUS TAB q3:// Ce code sert à allumer et éteindre le relais 3 à bord

annuler a3_on()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x04);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

annuler a3_off()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

Étape 5: Programmation - II

Programmation - II
Programmation - II

CODE SOUS ONGLET q4:

// Ce code sert à activer et désactiver le relais 4 à bord

annuler a4_on()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x08);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

annuler a4_off()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

CODE SOUS ONGLET q5:

// Ce code sert à activer et désactiver le relais 5 à bord

annuler a5_on()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x10);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

annuler a5_off()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

CODE SOUS ONGLET q6:// Ce code sert à activer et désactiver le relais 6 à bord

annuler a6_on()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x20);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

annuler a6_off()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

CODE SOUS ONGLET q7:// Ce code sert à activer et désactiver le relais 7 à bord

annuler a7_on() {

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x40);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

annuler a7_off()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

CODE SOUS TAB q8:// Ce code sert à activer et désactiver le relais 8 à bord

void a8_on() {

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x80);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

annuler a8_off()

{

// Commencer la transmission

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

retard (1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Sortie à l'écran

Serial.print("Valeur GPIO:");

Serial.println(GPIO, BIN);

}

Étape 6: Vidéo

Pour plus d'informations, n'hésitez pas à visiter notre site:

www.dcubetechnologies.com

Conseillé: