Go Down

Topic: Enviar comandos via I2C (Read 13 times) previous topic - next topic

Daniel_Sampaio

Olá pessoal,
gostaria de saber se é possível enviar comandos do tipo "don't care" via I2C, por exemplo, ao utilizar um expansor de portas, podemos enviar comandos em binário, porém, se eu quiser que apenas uma porta mude de estado (1 ou 0), mas sem alterar o estado atual das outras portas, é possível?

Sei que da pra fazer a mesma coisa utilizando vários comandos de condição, porém fica muito mais trabalhoso.



agradeço desde já

bubulindo

Que expansor de portas...

Normalmente a melhor maneira de o fazer e ler o estado das portas para uma variavel, mudar o bit que pretendes nessa variavel e escrever essa variavel.

Code: [Select]

unsigned char estado = read_port();
estado |= 0x01; // colocar o bit 0 a 1
write_port(estado);


Mas tudo isto depende do teu expansor de portas...
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Daniel_Sampaio

Estou usando o expansor PFC8574AP, fazendo a comunicação usando a biblioteca Wire, eu tentei fazer o seguinte:

Wire.beginTransmission(0x38);
Wire.write(B001xxxxx);
Wire.endTransmission(0x38);


onde "x" seriam as portas que não quero alterar nesta parte da programação, porém desta forma não funciona pois o arduino não entende este x.

Go Up