ok eu vou olhar seu codigo com calma para entender
eu usar assim no Bascom-AVR usando BASIC
**Variavel
Dim Bytearray(1) As Byte
** Saidas
S1 Alias Bytearray(1).0
S2 Alias Bytearray(1).1
S3 Alias Bytearray(1).2
S4 Alias Bytearray(1).3
S5 Alias Bytearray(1).4
S6 Alias Bytearray(1).5
S7 Alias Bytearray(1).6
S1 = 0
S2 = 1
S4 = 1
*** depois mandava assim
' Envias dados PC8574
I2cstart
I2cwbyte Pcf8574
I2cwbyte Bytearray(1)
I2cstop
S8 Alias Bytearray(1).7
opa eu achei uma biblioteca para usar com o PCF8574
ficou mais simples:
#include <PCF8574.h> // Required for ... all
#include <Wire.h> // Required for I2C communication
PCF8574 expander; // Create object from PCF8574 class
void setup(){
Serial.begin(9600); // Setup serial for read echo
expander.pinMode(0,OUTPUT); // Setup pin D0 as output
expander.pinMode(1,OUTPUT); // Setup pin D1 as output
expander.pinMode(2,OUTPUT); // Setup pin D2 as output
expander.set(); // coloca todas as saidas em HIGH
expander.begin(0x20);
}
void loop(){
expander.digitalWrite(0, LOW); // Blink led 1
delay(1000);
expander.digitalWrite(0, HIGH); // Blink led 2
delay(1000);
} // Loop forever
Estou usando esta mesma biblioteca e queria dar nome aos pino do PCF8574 como no caso dos servos, parei nesta parte e não consigo avançar: #include <Wire.h> #include <Servo.h> #include <PCF8574.h> #include <LiquidCrystal_I2C.h>
PCF8574 PCF_EXP1;
//SERVOS
const int SPEEDO_PIN =A0;
const int RPM_PIN = 5;
const int BRAKE_AIR_PRESSURE_PIN = 6;
const int FUEL_PIN = 9;
const int OIL_TEMPERATURE_PIN =10;
const int WATER_TEMPERATURE_PIN =11;
//LEDS
const int PCF_EXP1 RIGHT_INDICATOR =P0;
const int FUEL_WARNING =P1;
const int PARKING_BREAK =P2;
const int LIGHT_PARKING =P3;
const int MOTOR_BRAKE =P4;
const int LIGHT_HIGH_BEAM =P5;
const int BATTERY_VOLTAGE_WARNING =P6;
const int LEFT_INDICATOR =P7;
Não sei se estou a perceber bem a questão, mas penso que o problema deve estar relacionado com estas linhas:
const int PCF_EXP1 RIGHT_INDICATOR =P0;
const int FUEL_WARNING =P1;
const int PARKING_BREAK =P2;
const int LIGHT_PARKING =P3;
const int MOTOR_BRAKE =P4;
const int LIGHT_HIGH_BEAM =P5;
const int BATTERY_VOLTAGE_WARNING =P6;
const int LEFT_INDICATOR =P7;
Tente fazer:
const int PCF_EXP1 RIGHT_INDICATOR = 0;
const int FUEL_WARNING = 1;
const int PARKING_BREAK = 2;
const int LIGHT_PARKING = 3;
const int MOTOR_BRAKE = 4;
const int LIGHT_HIGH_BEAM = 5;
const int BATTERY_VOLTAGE_WARNING = 6;
const int LEFT_INDICATOR = 7;
Assim, já pode chamar outro nome aos pinos e fazer: