Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
MCP9803 é um sensor de temperatura de alta precisão de 2 fios. Eles são incorporados a registros programáveis pelo usuário que facilitam as aplicações de detecção de temperatura. Este sensor é adequado para sistemas altamente sofisticados de monitoramento de temperatura em várias zonas.
Neste tutorial, a interface do módulo sensor MCP9803 com o arduino nano foi ilustrada. Para ler os valores de temperatura, usamos o arduino com um adaptador I2c. Este adaptador I2C torna a conexão ao módulo do sensor mais fácil e confiável.
Etapa 1: Hardware necessário:
Os materiais de que precisamos para cumprir nosso objetivo incluem os seguintes componentes de hardware:
1. MCP9803
2. Arduino Nano
3. Cabo I2C
4. Escudo I2C para arduino nano
Etapa 2: Conexão de Hardware:
A seção de conexão de hardware explica basicamente as conexões de fiação necessárias entre o sensor e o arduino nano. Garantir as conexões corretas é a necessidade básica ao trabalhar em qualquer sistema para a saída desejada. Portanto, as conexões necessárias são as seguintes:
O MCP9803 funcionará em I2C. Aqui está o diagrama de fiação de exemplo, demonstrando como conectar cada interface do sensor.
Fora da caixa, a placa é configurada para uma interface I2C, como tal, recomendamos usar esta conexão se você for agnóstico.
Você só precisa de quatro fios! São necessárias apenas quatro conexões dos pinos Vcc, Gnd, SCL e SDA e estes são conectados com a ajuda do cabo I2C.
Essas conexões são demonstradas nas fotos acima.
Etapa 3: Código para medição de temperatura:
Vamos começar com o código do Arduino agora.
Ao usar o módulo sensor com o arduino, incluímos a biblioteca Wire.h. A biblioteca "Wire" contém as funções que facilitam a comunicação i2c entre o sensor e a placa arduino.
Todo o código do arduino é fornecido abaixo para a conveniência do usuário:
#incluir
// O endereço MCP9803 I2C é 0x48 (72)
#define Addr 0x48
void setup ()
{
// Inicializar a comunicação I2C como MASTER
Wire.begin ();
// Inicialize a comunicação serial, defina a taxa de transmissão = 9600
Serial.begin (9600);
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecionar registro de configuração
Wire.write (0x01);
// Modo de conversão contínua, padrão de inicialização
Wire.write (0x60);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (300);
}
void loop ()
{
dados internos não assinados [2];
// Inicia a comunicação I2C
Wire.beginTransmission (Addr);
// Selecione o registro de dados
Wire.write (0x00);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicita 2 bytes de dados
Wire.requestFrom (Addr, 2);
// Lê 2 bytes de dados
// temp msb, temp lsb
if (Wire.available () == 2)
{
dados [0] = Wire.read ();
dados [1] = Wire.read ();
}
// Converta os dados para 12 bits
int temp = ((dados [0] * 256) + dados [1]) / 16,0;
if (temp> 2047)
{
temp - = 4096;
}
float cTemp = temp * 0,0625;
float fTemp = cTemp * 1,8 + 32;
// Dados de saída para monitor serial
Serial.print ("Temperatura em Celsius:");
Serial.print (cTemp);
Serial.println ("C");
Serial.print ("Temperatura em Fahrenheit:");
Serial.print (fTemp);
Serial.println ("F");
atraso (500);
}
Na biblioteca de fios, Wire.write () e Wire.read () são usados para escrever os comandos e ler a saída do sensor.
Serial.print () e Serial.println () são usados para exibir a saída do sensor no monitor serial do IDE do Arduino.
A saída do sensor é mostrada na imagem acima.
Etapa 4: Aplicativos:
MCP9803 pode ser empregado em uma ampla arena de dispositivos que incluem computador pessoal e periféricos, unidades de disco rígido, vários sistemas de entretenimento, sistemas de escritório e sistemas de comunicação de dados. Este sensor pode ser incorporado em vários sistemas sofisticados.