• Labs core
  • I2C

I2C - Preparatório

Lab 6 - Preparatório
Prazo: 15/05 (Antes da aula)
Atividade: classroom
💰 30% da nota de lab

Leitura prévia

Para realizar este laboratório, você deve estudar antes:

Atividade

Neste pré-lab, exploraremos um pouco a comunicação i2c usando como base o sensor MPU6050, que é uma unidade inercial que possui internamente um acelerômetro e um giroscópio. Para isso, você terá que consultar o manual de registradores desse sensor:

exe 1

  • Arquivo: exe1/main.c

O código fornecido configura o registrador 0x6B:PWR_MGMT_1 colocando o valor 1 no bit 7:DEVICE_RESET, fazendo com que o dispositivo reinicie e opere com os valores de fábrica.

Agora, consultando o manual, acesse o ACCEL_CONFIG e configure o acelerômetro para operar no range de 4G.

exe 2

  • Arquivo: exe2/main.c

O código fornecido faz a leitura do registrador 0x75:WHOAMI, que é um registrador contendo uma informação que confirma o ID do chip. Você deve ler o valor do INT_ENABLE e imprimir na serial usando o seguinte printf:

printf("INT_ENABLE: 0x%X \n", buffer[0]);

exe 3

  • Arquivo: exe2/main.c

O I2C permite conectar dois periféricos no mesmo barramento. No exemplo, conectamos o BMP280, um sensor de temperatura e pressão da Bosch. Você deve acessar o registrador ID e imprimir o valor lido na serial:

printf("BMP280 ID: 0x%X \n", buffer[0]);

Consulte o manual do BMP280 e extraia a informação do endereço padrão desse sensor e do endereço do registrador que possui o ID.