Stap 4: Programmeren - ik
- In deze code gebruik ik de functie programmeren paradigma
- Ik gebruikte verschillende tabbladen voor functies definitie en functie roepen
CODE onder tabblad q:
Eenvoudige functie aanroepende code
#include
VOID Setup
{
I2C adres van de MCP23008
#define MCP_ADDR 0x20
I2C Bus toetreden als meester
Wire.begin();
Start seriële communicatie en stelt u baud-rate
Serial.begin(9600);
Begin transmissie met gegeven apparaat op I2C bus
Wire.beginTransmission(MCP_ADDR);
Selecteer IODIR-i/o-richting registreren registreren
Wire.write(0x00);
Selecteer vereiste bewerking (uitvoer)
Wire.write(0x00);
Selecteer configuratie-info
Wire.write(0x05);
Selecteer vereiste bewerking
Wire.write(0x0E);
einde transmissie
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();
}
CODE onder tabblad q1:
Deze code is om op en af estafette 1 aan boord
VOID a1_on()
{
Begin transmissie
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x01);
delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Output naar het scherm
Serial.Print ("GPIO waarde:");
Serial.println(GPIO,bin);
}
VOID a1_off()
{
Begin transmissie
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Output naar het scherm
Serial.Print ("GPIO waarde:");
Serial.println(GPIO,bin);
}
CODE onder tabblad q2:
Deze code is om op en af estafette 2 aan boord
VOID a2_on()
{
Begin transmissie
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x02);
delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Output naar het scherm
Serial.Print ("GPIO waarde:");
Serial.println(GPIO,bin);
}
VOID a2_off()
{
Begin transmissie
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Output naar het scherm
Serial.Print ("GPIO waarde:");
Serial.println(GPIO,bin);
}
CODE onder tabblad q3:
Deze code is om op en af estafette 3 aan boord
VOID a3_on()
{
Begin transmissie
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x04);
delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Output naar het scherm
Serial.Print ("GPIO waarde:");
Serial.println(GPIO,bin);
}
VOID a3_off()
{
Begin transmissie
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
delay(1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
Output naar het scherm
Serial.Print ("GPIO waarde:");
Serial.println(GPIO,bin);
}