2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
SI7050 é um sensor de temperatura digital que funciona no protocolo de comunicação I2C e oferece alta precisão em toda a tensão operacional e faixa de temperatura. Esta alta precisão do sensor é atribuída ao novo processamento de sinal e design analógico. Esses sensores são incorporados a uma memória no chip que armazena os dados de calibração, o que facilita seu uso em uma ampla faixa. Aqui está sua demonstração com o Arduino Nano.
Etapa 1: O que você precisa..
1. Arduino Nano
2. SI7050
3. Cabo I²C
4. Escudo I²C para Arduino Nano
Etapa 2: Conexão:
Pegue um escudo I2C para Arduino Nano e empurre-o suavemente sobre os pinos do Nano.
Em seguida, conecte uma extremidade do cabo I2C ao sensor SI7050 e a outra extremidade à blindagem I2C.
As conexões são mostradas na imagem acima.
Etapa 3: Código:
O código do arduino para SI7050 pode ser baixado de nosso repositório github-DCUBE Store.
Aqui está o link para o mesmo:
github.com/DcubeTechVentures/SI7050/blob/master/Arduino/SI7050.ino
Incluímos a biblioteca Wire.h para facilitar a comunicação I2c do sensor com a placa Arduino.
Você também pode copiar o código daqui, ele é fornecido da seguinte forma:
// Distribuído com uma licença de livre arbítrio.
// Use-o como quiser, com ou sem lucro, desde que se enquadre nas licenças das suas obras associadas.
// SI7050
// Este código é projetado para funcionar com o Mini Módulo SI7050_I2CS I2C
#incluir
// O endereço I2C SI7050 é 0x40 (64)
#define Addr 0x40
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);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (300);
}
void loop ()
{
dados internos não assinados [2];
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar comando de medição de temperatura, NO HOLD MASTER
Wire.write (0xF3);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (500);
// 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
float temp = ((dados [0] * 256,0) + dados [1]);
float ctemp = ((175,72 * temp) / 65536,0) - 46,85;
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);
}
Etapa 4: Aplicativos:
O SI7050 pode ser incorporado em vários sistemas, incluindo equipamentos de informática, dispositivos portáteis de consumo e equipamentos médicos. Este sensor pode ser empregado em cadeias de armazenamento refrigerado, rastreamento de ativos, bem como vários sistemas de controle industrial. Ele também desempenha um papel fundamental na proteção da bateria.