2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
TCN75A is 'n tweedraad-seriële temperatuursensor met 'n temperatuur-na-digitale omskakelaar. Dit is geïntegreer met gebruikersprogrammeerbare registers wat buigsaamheid bied vir temperatuurwaarnemingstoepassings. Die registerinstellings stel gebruikers in staat om die kragbesparingsmodus, die afskakelmodus, die eenmalige modus ens op te stel. Die sensor het 'n i2c -versoenbare seriële koppelvlak wat die aansluiting van tot agt toestelle in 'n enkele reeksbus kan vergemaklik. Hier is die demonstrasie daarvan met deeltjie -foton.
Stap 1: Wat u nodig het …
1. Deeltjie Photon
2. TCN75A
3. I²C -kabel
4. I²C -skild vir deeltjiesfoton
Stap 2: Verbindings:
Neem 'n I2C -skild vir deeltjiefoton en druk dit liggies oor die penne van deeltjiefoton.
Koppel dan die een kant van die I2C -kabel aan die TCN75A -sensor en die ander kant aan die I2C -skild.
Verbindings word op die foto hierbo getoon.
Stap 3: Kode:
Die deeltjiekode vir TCN75A kan afgelaai word vanaf ons github-bewaarplek- DCUBE-winkel.
Hier is die skakel vir dieselfde:
github.com/DcubeTechVentures/TCN75A/blob/master/Particle/TCN75A.ino
Ons het twee biblioteke vir deeltjiekode gebruik, wat application.h en spark_wiring_i2c.h is. Spark_wiring_i2c -biblioteek is nodig om die I2C -kommunikasie met die sensor te vergemaklik.
U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:
// Versprei met 'n vrywillige lisensie.
// Gebruik dit op enige manier wat u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.
// TCN75A
// Hierdie kode is ontwerp om te werk met die TCN75A_I2CS I2C Mini Module
#insluit
#insluit
// TCN75A I2C adres is 0x48 (72)
#definieer Addr 0x48
float cTemp = 0.0, fTemp = 0.0;
int temp = 0;
leemte opstelling ()
{
// Stel veranderlike
Particle.variable ("i2cdevice", "TCN75A");
Particle.variable ("cTemp", cTemp);
// Initialiseer I2C -kommunikasie as Meester
Wire.begin ();
// Initialiseer seriële kommunikasie, stel baud rate = 9600 in
Serial.begin (9600);
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies konfigurasie register
Wire.write (0x01);
// 12-bis ADC-resolusie
Wire.write (0x60);
// Stop I2C -oordrag
Wire.endTransmission ();
vertraging (300);
}
leemte lus ()
{
ongetekende int data [2];
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies dataregister
Wire.write (0x00);
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 2 grepe data
Wire.requestFrom (Addr, 2);
// Lees 2 grepe data
// temp msb, temp lsb
as (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// Skakel die data om in 12 bisse
temp = (((data [0] * 256) + (data [1] & 0xF0)) / 16);
as (temp> 2047)
{
temp -= 4096;
}
cTemp = temp * 0,0625;
fTemp = (cTemp * 1.8) + 32;
// Uitset data na paneelbord
Particle.publish ("Temperatuur in Celsius:", String (cTemp));
Particle.publish ("Temperatuur in Fahrenheit:", String (fTemp));
vertraging (1000);
}
Stap 4: Aansoeke:
TCN75A is 'n temperatuursensor wat op persoonlike rekenaars en bedieners gebruik kan word, en kan ook gebruik word in vermaaklikheidstelsels, kantoorapparatuur, hars -skyfstasies en ander randapparatuur vir rekenaars.