Цифровий температурний датчик TMP100



Основні характеристики:

· DIGITAL OUTPUT: I2C Serial 2-Wire

· RESOLUTION: 9- to 12-Bits, User-Selectable ACCURACY:

±2.0°C from -25°C to +85°C (max)

±3.0°C from -55°C to +125°C (max)

· LOW QUIESCENT CURRENT:

45µA, 0.1µA Standby

· WIDE SUPPLY RANGE: 2.7V to 5.5V

· TINY SOT23-6 PACKAGE

Рис.4. Розташування виводів датчика температури TMP100

 


Електричні характеристики:

 

Таблиця 1. Електричні характеристики TMP100

 

Рис.5. Схема підключення датчика температури TMP100

 


Інфрачервона оптопара TCST 1103

Основні характеристики:

 

Електричні характеристики:

 

Таблиця 2. Електричні характеристики TCST 1103

 

Рис.6. Тестове підключення


Рис.7. Час перемикання

Інтерфейс RS485/RS422 - MAX3070Е

Основні характеристики:

 


Таблиця 3. Електричні характеристики МАХ3070Е

 

Таблиця 3.1. Електричні характеристики МАХ3070Е


Рис.8. Розташування виводів датчика інтерфейсу MAX3070E

 


Проектування принципової схеми пристрою

Схема включення MSP430

 

Для підключення MSP430 використовується літієва батарея з напругою 3В.

Рис.9. Схема підключення MSP430 до живлючої батареї.

 

Резистор використовується для підтяжки сигналу на лінії до рівня логічної одиниці, для організації скидання при включенні процесора.

Тактувати MSP430 можна за рахунок зовнішнього кварцового резонатору.


Схема підключення цифрового датчика температури до MSP430

Рис.10. Схема підключення TMP100 до MSP430

 

Напруга живлення цифрового температурного датчика цілком відповідає завданню, тому використовувати мікросхеми зміни напруги не треба. Для передачі даних використовується шина І2С.

 

Схема підключення інфрачервоної оптопари до MSP430

Рис.11. Схема підключення TCST1103 до MSP430


Схема підключення інтерфейсу RS485/RS422 - MAX3070Е

Рис.12. Схема підключення інтерфейсу MAX3070E до MSP430


Проектування програмного забезпечення процесору

 

Програма процесору повинна виконувати зняття показань цифрового температурного датчика.

Перед зняттям інформації з температурного датчика будемо аналізувати рівень на виводі процесора до якого підключено оптопару. Якщо на виводі логічний 0, тоді опитуємо датчик температури. Після отримання даних перевіримо на рівень температури. Якщо температура більш ніж 25 С, то на відповідний вивід подамо логічну одиницю.

Розроблений код програми:

 

#include "msp430x22x4.h"

unsigned int RxByteCtr;

unsigned int RxWord;

unsigned int OPTOPARA;

unsigned int OPTO;

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // Останавлеваем WDT

P1DIR |= 0x01; // P1.0 на выход

P3SEL |= 0x06; // Назначаем I2C порты на USCI_B0

UCB0CTL1 |= UCSWRST; // Активируем SW сброс

UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC; // I2C Master, синхронный режим

UCB0CTL1 = UCSSEL_2 + UCSWRST; // Используем SMCLK, keep SW reset

UCB0BR0 = 12; // fSCL = SMCLK/12 = ~100kHz

UCB0BR1 = 0;

UCB0I2CSA = 0x4e; // Устанавливаем slave адрес

UCB0CTL1 &= ~UCSWRST; // Убераем SW сброс, возвр.операц.

IE2 |= UCB0RXIE; // Активируем RX прерывание

TACTL = TASSEL_2 + MC_2; // SMCLK, contmode

OPTOPARA = P4IN;

while (1)

{

RxByteCtr = 2; // Загружаем RX счетчик битов

UCB0CTL1 |= UCTXSTT; // Запускаем I2C

__bis_SR_register(CPUOFF + GIE); // Enter LPM0, активируем прерывания

// Сохраняем в LPM0 до получения

// всех данных RX'd

// if(P4IN &= ~0x01) 

if (OPTOPARA &= ~0x01)

{

if (RxWord < 0x1900) // >25?

P1OUT &= ~0x01; // No, P1.0 = 0

else

P1OUT |= 0x01; // Yes, P1.0 = 1

__disable_interrupt();

TACCTL0 |= CCIE; // TACCR0 активируем прерывания

__bis_SR_register(CPUOFF + GIE); // Enter LPM0, активируем прерывание

// Remain in LPM0 until TACCR0

// interrupt occurs

TACCTL0 &= ~CCIE; // TACCR0 отключаем прерывание

}

}

}

#pragma vector = TIMERA0_VECTOR

__interrupt void TA0_ISR(void)

{

__bic_SR_register_on_exit(CPUOFF); // Exit LPM0

}

// The USCIAB0TX_ISR is structured such that it can be used to receive any

// 2+ number of bytes by pre-loading RxByteCtr with the byte count.

#pragma vector = USCIAB0TX_VECTOR

__interrupt void USCIAB0TX_ISR(void)

{

RxByteCtr--; // Декрементируем счетчик

if (RxByteCtr)

{

RxWord = (unsigned int)UCB0RXBUF << 8; // Получаем переданный бит

if (RxByteCtr == 1) // Проверка на бит слева

UCB0CTL1 |= UCTXSTP; // Сгенирировать остановку I2C

}

else

{

RxWord |= UCB0RXBUF; // Получаем последний переданный бит

// Комбинируем MSB и LSB

__bic_SR_register_on_exit(CPUOFF); // Выход LPM0

}

}


Висновок

 

В курсовій роботі розроблено пристрій пожарної сигналізації, в основі полягає процесор фірми Texas Instruments MSP430F2234. Пристрій в залежності від сигналу інфрачервоної оптопари аналізує показання цифрового температурного датчика TMP100. Якщо температура перевищує задану, то подається сигнал на відповідний порт.

Даний пристрій є універсальним і може бути застосований у різноманітних галузях. Наприклад, якщо під’єднати до пристрою LCD дисплей чи якийсь інший пристрій відображення інформації, можливо розробити досить чіткий термометр, який можна застосувати як у звичайній квартирі чи на підприємстві так і у морозильних пристроях, адже температурний датчик працює у досить великому діапазоні температур.


Дата добавления: 2019-09-02; просмотров: 182; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!