Go Down

Topic: i²C com problemas (Read 144 times) previous topic - next topic

fabiohenriq90

Estou tendo problemas com o barramento i²c do Arduino.
 
Meu código é este:




#include <Wire.h>

void setup() {
  Wire.begin();
}

void loop()
{
  Wire.beginTransmission(97); // Inicio da Transmição I2C + Endereço do dispositivo
  Wire.write(200); 
  Wire.write(1); 
  Wire.endTransmission();    // fim da transmissão
  delay(1000);
}




O dispositivo que o arduino deveria se comunicar não responde. Fiz o debug I²C pelo Protreus é notei que somente o "Wire.BeginTransmission" tem o seu valor registrado, embora o valor apareça 194 ao invés de 97. Os valores dentro do "Wire.write" não são registrados.
Queria saber o motivo do valor 97 está sendo mostrado 194 e porque os outros valores não estão sendo enviados.

Testei com outra linguagem de programação, Great Cow Basic, e os valores são enviados corretamente tanto no Proteus quanto no Hardware.


bubulindo

97<<1 = 194. Isso é normal devido ao bit de read/write.

Qual é o dispositivo que estás a tentar aceder e qual é o endereço dele?
This... is a hobby.

fabiohenriq90

Então o endereço dele é 194 é um seletor de canais de TV com ci TDA6503ATS
Além do endereço tenho que enviar dois bytes com a frequência, um byte de controle e um byte para selecionar a banda.

No caso 193 é o valor de leitura e 194 é o valor de escrita.
 

bubulindo

Tens a certeza com a morada? Isto é, colocaste os pinos com a tensão correcta para teres essa morada?
Podes sempre experimentar este sketch para confirmares a morada.

https://playground.arduino.cc/Main/I2cScanner/


Colocaste resistências de pull up nas linhas SDA e SCL?
This... is a hobby.

Go Up