Мазмуну:

TMP-112 интерфейси Arduino Nano менен (I2C): 5 кадам
TMP-112 интерфейси Arduino Nano менен (I2C): 5 кадам

Video: TMP-112 интерфейси Arduino Nano менен (I2C): 5 кадам

Video: TMP-112 интерфейси Arduino Nano менен (I2C): 5 кадам
Video: Текстовые LCD дисплей на контроллере HD44780, Уроки Arduino 2024, Ноябрь
Anonim
TMP-112 интерфейси Arduino Nano менен (I2C)
TMP-112 интерфейси Arduino Nano менен (I2C)

Салам, Жакшы салам.. !!

Мен (Somanshu Choudhary) Dcube технологиялык ишканаларынын атынан температураны Arduino нанонун жардамы менен өлчөйм, ал температура сенсорунун TMP-112 аналогдук маалыматын окуу үчүн I2C протоколунун тиркемелеринин бири.

1 -кадам: Обзор

Обзор
Обзор
  1. TMP-112-бул температура сенсору.
  2. DATASHEET Шилтемеси:

2 -кадам: Сизге эмне керек / Шилтемелер

Сизге эмне керек / Шилтемелер
Сизге эмне керек / Шилтемелер
  1. Arduino Nano
  2. Arduino Nano үчүн I²C Shield
  3. USB кабели Type A - Micro Type B 6 Feet Long
  4. I²C кабели
  5. TMP112 I²C Температура Сенсору ±.5 ° C 12-Биттик I²C Мини Модуль

3 -кадам: Райондук диаграмма

Райондук диаграмма
Райондук диаграмма
Райондук диаграмма
Райондук диаграмма

4 -кадам: Программалоо

Программалоо
Программалоо

#кошуу

жараксыз орнотуу ()

{

// TM212 I2C дареги

#define TMP_ADDR 0x48

// I2c Busка мастер катары кошулуңуз

Wire.begin ();

// Сериялык байланышты баштаңыз

Serial.begin (9600);

// Берүүнү баштаңыз

Wire.beginTransmission (TMP_ADDR);

// КАТТОО реестрин тандаңыз

Wire.write (0x01);

// Кадимки иштөөнү тандаңыз

Wire.write (0x60A0);

// Берүүнү токтотуу жана I2C шинаны чыгаруу

Wire.endTransmission ();

}

боштук цикл ()

{

// Берүүнү баштаңыз

Wire.beginTransmission (TMP_ADDR);

// Маалымат регистрлерин тандоо

Wire.write (0X00);

// Берүүнү токтотуу

Wire.endTransmission ();

кечигүү (500);

// Сураныч, 2 байт, биринчи Msb

Wire.requestFrom (TMP_ADDR, 2);

// Эки байтты окугула

while (Wire.available ())

{

// таштандыларды тазалоо

Serial.flush ();

int msb = Wire.read ();

int lsb = Wire.read ();

Wire.endTransmission ();

// Чийки баалуулуктардагы маалыматтарды конверсиялоо

int rawtmp = msb << 8 | lsb;

int мааниси = rawtmp >> 4;

кош ans = мааниси * 0.0625;

// Басып чыгаруу

Serial.print ("celsius value:");

Serial.println (ans);

}

}

5 -кадам:

Мен колумдан келгендин баарын кылдым;-)

Кошумча суроолор боюнча биздин сайтка кирүүдөн тартынбаңыз:

www.dcubetechnologies.com

Сунушталууда: