Paso 4: Programación - I
- En este código, utilizo el paradigma de programación de la función
- Usé diferentes pestañas para la definición de funciones y llamadas de función
Q código debajo de la ficha:
Código de llamada de función simple
#include
void setup()
{
Dirección I2C de la MCP23008
#define MCP_ADDR 0 x 20
A Bus I2C como maestro
Wire.Begin();
Iniciar la comunicación serial y establecer la velocidad en baudios
Serial.Begin(9600);
La transmisión comienza con dada dispositivo I2C bus
Wire.beginTransmission(MCP_ADDR);
Seleccione IODIR – registro registro de dirección de entrada-salida
Wire.Write(0x00);
Seleccione la operación requerida (salida)
Wire.Write(0x00);
Seleccione registro de configuración
Wire.Write(0x05);
Seleccione operación
Wire.Write(0x0E);
transmisión final
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();
}
BAJO la pestaña código P1:
Este código es para encender y apagar el relé 1 a bordo
void a1_on()
{
Comienza transmisión
Wire.beginTransmission(MCP_ADDR);
Wire.Write(0x09);
Wire.Write(0x01);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Salida a la pantalla
Serial.Print ("valor GPIO:");
Serial.println(GPIO,bin);
}
void a1_off()
{
Comienza transmisión
Wire.beginTransmission(MCP_ADDR);
Wire.Write(0x09);
Wire.Write(0x00);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Salida a la pantalla
Serial.Print ("valor GPIO:");
Serial.println(GPIO,bin);
}
BAJO la pestaña código q2:
Este código es para encender y apagar el relé 2 a bordo
void a2_on()
{
Comienza transmisión
Wire.beginTransmission(MCP_ADDR);
Wire.Write(0x09);
Wire.Write(0x02);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Salida a la pantalla
Serial.Print ("valor GPIO:");
Serial.println(GPIO,bin);
}
void a2_off()
{
Comienza transmisión
Wire.beginTransmission(MCP_ADDR);
Wire.Write(0x09);
Wire.Write(0x00);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Salida a la pantalla
Serial.Print ("valor GPIO:");
Serial.println(GPIO,bin);
}
BAJO la pestaña código q3:
Este código es para encender y apagar el relé 3 a bordo
void a3_on()
{
Comienza transmisión
Wire.beginTransmission(MCP_ADDR);
Wire.Write(0x09);
Wire.Write(0x04);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Salida a la pantalla
Serial.Print ("valor GPIO:");
Serial.println(GPIO,bin);
}
void a3_off()
{
Comienza transmisión
Wire.beginTransmission(MCP_ADDR);
Wire.Write(0x09);
Wire.Write(0x00);
Delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Salida a la pantalla
Serial.Print ("valor GPIO:");
Serial.println(GPIO,bin);
}