INHOUDSOPGAWE:

Koppelvlak TMP-112 met Arduino Nano (I2C): 5 stappe
Koppelvlak TMP-112 met Arduino Nano (I2C): 5 stappe

Video: Koppelvlak TMP-112 met Arduino Nano (I2C): 5 stappe

Video: Koppelvlak TMP-112 met Arduino Nano (I2C): 5 stappe
Video: Animatie Landelijk Koppelvlak IFV (2020) 2024, November
Anonim
Koppelvlak TMP-112 met Arduino Nano (I2C)
Koppelvlak TMP-112 met Arduino Nano (I2C)

Hallo, Goeie groete.. !!

Ek (Somanshu Choudhary) namens Dcube-tegnologiese ondernemings wat temperatuur met Arduino nano gaan meet, is dit een van die toepassings van die I2C-protokol om analoog data van temperatuursensor TMP-112 te lees.

Stap 1: Oorsig

Oorsig
Oorsig
  1. TMP-112 is 'n temperatuursensor.
  2. DATASHEET -skakel:

Stap 2: Wat u benodig / skakels

Wat u benodig / skakels
Wat u benodig / skakels
  1. Arduino Nano
  2. I²C -skild vir Arduino Nano
  3. USB -kabel Tipe A na Mikro Tipe B 6 voet lank
  4. I²C kabel
  5. TMP112 I²C Temperatuursensor ±.5 ° C 12-bis I²C Mini Module

Stap 3: Kringdiagram

Stroombaandiagram
Stroombaandiagram
Stroombaandiagram
Stroombaandiagram

Stap 4: Programmering

Programmering
Programmering

#insluit

leemte opstelling ()

{

// I2C -adres van die TMP112

#definieer TMP_ADDR 0x48

// Sluit aan by I2c Bus as meester

Wire.begin ();

// Begin met reekskommunikasie

Serial.begin (9600);

// Begin oordrag

Wire.beginTransmission (TMP_ADDR);

// Kies REGISTREER ENABLE

Wire.write (0x01);

// Kies normale werking

Wire.write (0x60A0);

// Beëindig transmissie en laat I2C -bus los

Wire.endTransmission ();

}

leemte lus ()

{

// Begin oordrag

Wire.beginTransmission (TMP_ADDR);

// Kies dataregisters

Wire.write (0X00);

// Beëindig transmissie

Wire.endTransmission ();

vertraging (500);

// Versoek 2 grepe, Msb eers

Wire.requestFrom (TMP_ADDR, 2);

// Lees die twee grepe

terwyl (Wire.available ())

{

// verwyder vullis

Serial.flush ();

int msb = Wire.read ();

int lsb = Wire.read ();

Wire.endTransmission ();

// Data -omskakeling in rou waardes

int rawtmp = msb << 8 | lsb;

int waarde = rawtmp >> 4;

dubbel ans = waarde * 0,0625;

// Drukuitset

Serial.print ("celsius -waarde:");

Serial.println (ans);

}

}

Stap 5:

Ek het my bes gedoen om joune te doen;-)

Vir verdere navrae, besoek gerus ons webwerf:

www.dcubetechnologies.com

Aanbeveel: