Table des matières:
- Étape 1: Aperçu
- Étape 2: Ce dont vous avez besoin / Liens
- Étape 3: schéma de circuit
- Étape 4: Programmation - I
- Étape 5: Programmation - II
- Étape 6: Vidéo
Vidéo: Application de MCP-23008 à l'aide de l'interface relais (I2C) : : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
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
- 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
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
Étape 4: Programmation - I
- 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
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é:
Commencer avec l'interface de capteur I2C ?? - Interfacez votre MMA8451 à l'aide d'ESP32 : 8 étapes
Commencer avec l'interface de capteur I2C ?? - Interfacez votre MMA8451 à l'aide d'ESP32 : dans ce didacticiel, vous apprendrez tout sur comment démarrer, connecter et obtenir un périphérique I2C (accéléromètre) fonctionnant avec un contrôleur (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Créer une application Android pour les petites entreprises à l'aide de l'application MIT et de Google Fusion Table : 7 étapes
Création d'une application Android pour les petites entreprises à l'aide de l'application MIT et de Google Fusion Table : avez-vous déjà voulu créer votre propre application disponible sur Google Play Store !!! Si vous avez une entreprise, ce tutoriel va changer votre vie. Après avoir lu ceci attentivement, vous serez en mesure de créer votre propre application. Avant
Node MCU avec module de relais à 4 ports, application Blynk, IFTTT et Google Home. Profit ? : 5 étapes
Node MCU avec module de relais à 4 ports, application Blynk, IFTTT et Google Home. Profit?: Cet article explique comment connecter google home avec NodeMCU et l'application blynk, vous pouvez contrôler vos appareils avec un simple commutateur NodeMCU contrôlé par blynk et google assistant. Alors allons-y, Ok Google .. Allumez thingy
Contrôle de 8 relais avec NodeMCU et récepteur IR à l'aide de la télécommande WiFi et IR et de l'application Android : 5 étapes (avec photos)
Contrôle de 8 relais avec NodeMCU et récepteur IR à l'aide du WiFi et de la télécommande IR et de l'application Android : contrôle de 8 commutateurs de relais à l'aide de nodemcu et du récepteur ir via wifi et télécommande infrarouge et application Android. La télécommande fonctionne indépendamment de la connexion wifi. VOICI UNE VERSION MISE À JOUR ICI
Interface d'affichage Nextion avec carte à quatre relais ESP 32 : 7 étapes
Interface d'affichage Nextion avec carte à quatre relais ESP 32: Dans ces instructions, nous allons interfacer l'écran nextion 5 "à la carte à quatre relais Esp 32. La carte est contrôlée par le protocole MQTT. Board dispose également de fonctions de contrôle bidirectionnelles. Il peut être contrôlé à la fois par mqtt et par écran tactile. Écran tactile