Tillämpningen av MCP-23008 med relä gränssnitt (I2C): (4 / 6 steg)
Steg 4: Programmering - jag
- I denna kod använda jag funktionen programmering Paradigm
- Jag använde olika flikar för funktioner definition och funktion calling
KODEN UNDER fliken q:
Enkel funktion anropande koden
#include
void setup()
{
I2C adressen till MCP23008
#define MCP_ADDR 0x20
Gå med I2C bussen som master
Wire.BEGIN();
Starta seriell kommunikation och ange baudvärde
Serial.BEGIN(9600);
BEGIN överföring med tanke på enheten på I2C bussen
Wire.beginTransmission(MCP_ADDR);
Välj IODIR-i/o-riktning registrera register
Wire.write(0x00);
Välj krävs operation (output)
Wire.write(0x00);
Välj konfigurationen register
Wire.write(0x05);
Välj krävs operation
Wire.write(0x0E);
slutet överföring
Wire.endTransmission();
}
void loop()
{
a1_on();
Delay(1000);
a1_off();
Delay(1000);
a2_on();
Delay(1000);
a2_off();
Delay(1000);
a3_on();
Delay(1000);
a3_off();
Delay(1000);
a4_on();
Delay(1000);
a4_off();
Delay(1000);
a5_on();
Delay(1000);
a5_off();
Delay(1000);
a6_on();
Delay(1000);
a6_off();
Delay(1000);
a7_on();
Delay(1000);
a7_off();
Delay(1000);
a8_on();
Delay(1000);
a8_off();
}
KOD enligt TAB F1:
Denna kod är att på och av relä 1 ombord
void a1_on()
{
Börja överföringen
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x01);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Utdata på skärmen
Serial.Print ("GPIO värde:");
Serial.println(gpio,bin);
}
void a1_off()
{
Börja överföringen
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Utdata på skärmen
Serial.Print ("GPIO värde:");
Serial.println(gpio,bin);
}
KODEN UNDER fliken q2:
Denna kod är att på och av relä 2 ombord
void a2_on()
{
Börja överföringen
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x02);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Utdata på skärmen
Serial.Print ("GPIO värde:");
Serial.println(gpio,bin);
}
void a2_off()
{
Börja överföringen
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Utdata på skärmen
Serial.Print ("GPIO värde:");
Serial.println(gpio,bin);
}
KODEN UNDER fliken q3:
Denna kod är att på och av relä 3 ombord
void a3_on()
{
Börja överföringen
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x04);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Utdata på skärmen
Serial.Print ("GPIO värde:");
Serial.println(gpio,bin);
}
void a3_off()
{
Börja överföringen
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Utdata på skärmen
Serial.Print ("GPIO värde:");
Serial.println(gpio,bin);
}