В данной статье пойдет речь о том, как подключить датчик температуры DS18B20 к ATtiny2313 и отображать данные на ЖКИ-дисплее 16×1 на базе HD44780. Для проверки работоспособности программы и схемы я использовал эмулятор Proteus 7 (ISIS 7 Professional). Код программы (проект в Atmel Studio 7 целиком) вы сможете скачать по ссылке в конце статьи. Прошивку (.hex файл) можно установить и на реальный микроконтроллер ATtiny2313, программа будет работать нормально, главное не забыть менять фьюзы: CKSEL3…0 = 0100 – Внутренний тактовый генератор — частота 8 МГц и поставить галочку на SCKDIV8 – деление тактовой частоты на 8.
- 1 Цифровой датчик температуры DS18B20
- 2 Пример программы в Atmel Studio 7
- 3 Схема подключения LSD дисплея на базе HD44780 и датчика температуры DS18B20 к ATtiny2313 в ISIS 7 Professional — Proteus. Симуляция.
- 4 Купить ATTINY2313A на Aliexpress
- 5 Купить LCD1602 HD44780 на Aliexpress
- 6 Купить DS18B20 на Aliexpress
- 7 Похожие записи
Цифровой датчик температуры DS18B20
DS18B20 цифровой датчик температуры (термометр) с программируемым разрешением, от 9 до 12–bit, которое может сохраняться в EEPROM памяти прибора. DS18B20 обменивается данными по 1-Wire шине и при этом может быть как единственным устройством на линии так и работать в группе. Все процессы на шине управляются центральным микропроцессором: AVR, PIC, Arduino, STM, Raspberry Pi и др..
Диапазон измерений от –55°C до +125°C и точностью 0.5°C в диапазоне от –10°C до +85°C. В дополнение, DS18B20 может питаться напряжением линии данных («parasite power»), при отсутствии внешнего источника напряжения.
Каждый DS18B20 имеет уникальный 64-битный последовательный код, который позволяет, общаться с множеством датчиков DS18B20 установленных на одной шине. Такой принцип позволяет использовать один микропроцессор, чтобы контролировать множество датчиков DS18B20, распределенных по большому участку.
Смотрите также:
Подключение LCD на базе HD44780 к ATmega16 (LM016L LCD 16×2)
Мигание светодиодом на ATmega16/32
Atmel Studio 7 — Создание нового проекта
Характеристики
Диапазон измеряемых температур | −55…+125 °C |
Точность | ±0,5°C (в пределах −10…+85 °C) |
Время получения данных | 750 мс при 12-битном разрешении; 94 мс при 9-битном разрешении |
Напряжение питания | 3–5.5 В |
Потребляемый ток при бездействии | 750 нА |
Потребляемый ток при опросе | 1 мА |
Подключение
Герметичный датчик на основе микросхемы DS18B20 можно подключить двумя способами:
- По трём проводам: питание (красный), земля (чёрный) и сигнал (белый).
- По двум проводам: земля и сигнал. В этом случае датчик изредка может давать неверные показания, которые легко исключить из конечного результата фильтрацией.
Независимо от способа подключения, сигнальный провод необходимо соединить с питанием через резистор 4,7 кОм. При подключении только одного датчика, подойдёт и резистор на 10 кОм.
Назначение выводов
SO* | SOP* | TO-92 | СИМВОЛ | ОПИСАНИЕ |
---|---|---|---|---|
5 | 4 | 1 | GND | Общий. |
4 | 1 | 2 | DQ | Вывод данных ввода/вывода (Input/Output pin). Open-drain 1-Wire interface pin. По этой линии подается питание в режиме работы с паразитным питанием. |
3 | 8 | 3 | VDD | VDD ножка питания. Для режима работы с паразитным питание VDD необходимо соединить с общим проводом. |
*Все остальные выводы должны оставаться не подключенными.
Пример программы в Atmel Studio 7
ds18b20.h
#ifndef DS18B20_H_
#define DS18B20_H_
#include <avr/io.h>
// установки подключения к DS18B20
#define DS18B20_PORT PORTB
#define DS18B20_DDR DDRB
#define DS18B20_PIN PINB
#define DS18B20_DQ PB7
// команды
#define DS18B20_CMD_CONVERTTEMP 0x44
#define DS18B20_CMD_RSCRATCHPAD 0xbe
#define DS18B20_CMD_WSCRATCHPAD 0x4e
#define DS18B20_CMD_CPYSCRATCHPAD 0x48
#define DS18B20_CMD_RECEEPROM 0xb8
#define DS18B20_CMD_RPWRSUPPLY 0xb4
#define DS18B20_CMD_SEARCHROM 0xf0
#define DS18B20_CMD_READROM 0x33
#define DS18B20_CMD_MATCHROM 0x55
#define DS18B20_CMD_SKIPROM 0xcc
#define DS18B20_CMD_ALARMSEARCH 0xec
// остановить любое прерывание во время чтения данных с DS18B20
#define DS18B20_STOPINTERRUPTONREAD 1
//functions
extern double getTempDS18B20();
#endif
ds18b20.c
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "ds18b20.h"
/*
* ds18b20 - инициализация
*/
uint8_t resetDS18B20() {
uint8_t i;
// импульс сброса, минимум 480?s
DS18B20_PORT &= ~(1 << DS18B20_DQ);
DS18B20_DDR |= (1 << DS18B20_DQ); // выход
_delay_us(480);
// Когда DS18B20 обнаруживает положительный перепад, он ждет от 15?s до 60?s
DS18B20_DDR &= ~(1 << DS18B20_DQ); // вход
_delay_us(60);
// и затем передает импульс присутствия, перемещая шину в логический «0» на длительность от 60?s до 240?s.
i = (DS18B20_PIN & (1 << DS18B20_DQ));
_delay_us(420);
//return the read value, 0=ok, 1=error
return i;
}
/*
* написать один бит
*/
inline void writeBitDS18B20(uint8_t bit) {
// логический «0» на 1?s
DS18B20_PORT &= ~(1 << DS18B20_DQ);
DS18B20_DDR |= (1 << DS18B20_DQ); // выход
_delay_us(1);
// если нужно написать 1, нужно освободить линию (если не - держать низкий уровень)
if (bit) {
DS18B20_DDR &= ~(1 << DS18B20_DQ); // вход
}
// ждать 60?s и освободить линию
_delay_us(60);
DS18B20_DDR &= ~(1 << DS18B20_DQ); // вход
}
/*
* прочитать один бит
*/
uint8_t readBitDS18B20(void) {
uint8_t bit = 0;
// логический «0» на 1?s
DS18B20_PORT &= ~(1 << DS18B20_DQ);
DS18B20_DDR |= (1 << DS18B20_DQ); // вход
_delay_us(1);
// освободить линию и ждать 14?s
DS18B20_DDR &= ~(1 << DS18B20_DQ); // вход
_delay_us(14);
// прочитать значение
if (DS18B20_PIN & (1 << DS18B20_DQ)) {
bit = 1;
}
// ждать 45?s и вернуть значение
_delay_us(45);
return bit;
}
/*
* написать один байт
*/
void writeByteDS18B20(uint8_t byte) {
uint8_t i = 8;
while (i--) {
writeBitDS18B20(byte & 1);
byte >>= 1;
}
}
/*
* прочитать один байт
*/
uint8_t readByteDS18B20(void) {
uint8_t i = 8, n = 0;
while (i--) {
n >>= 1;
n |= (readBitDS18B20() << 7);
}
return n;
}
/*
* получить температуру
*/
double getTempDS18B20() {
uint8_t temperatureL;
uint8_t temperatureH;
double retd = 0;
if (DS18B20_STOPINTERRUPTONREAD == 1) {
cli();
}
resetDS18B20(); // сброс
writeByteDS18B20(DS18B20_CMD_SKIPROM); // пропуск ПЗУ(ROM)
writeByteDS18B20(DS18B20_CMD_CONVERTTEMP); // начать преобразование показаний температуры
while (!readBitDS18B20()); // ждать, пока преобразование не завершится
resetDS18B20(); // сброс
writeByteDS18B20(DS18B20_CMD_SKIPROM); // пропуск ПЗУ(ROM)
writeByteDS18B20(DS18B20_CMD_RSCRATCHPAD); // читать scratchpad
// прочитать 2 байта из scratchpad
temperatureL = readByteDS18B20();
temperatureH = readByteDS18B20();
if (DS18B20_STOPINTERRUPTONREAD == 1) {
sei();
}
// преобразовать полученное 12 битное значение
retd = ((temperatureH << 8) + temperatureL) * 0.0625;
return retd;
}
main.c
// site: http://micro-pi.ru
// подключение LSD на базе HD44780 и DS18B20 к ATtiny2313
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <string.h>
#include <math.h>
#include "ds18b20.h"
#include "LCD.h"
/*
* -123.4
* numbers[0] = 123
* numbers[1] = 4
*/
inline void explodeDoubleNumber(int* numbers, double flt) {
/*
* Функция abs() вычисляет абсолютное значение и возвращает модуль значения flt (|flt|).
*/
numbers[0] = abs((int) flt); /* из -123.4 получаем 123 */
numbers[1] = abs((int) ((flt - ((int) flt)) * 10)); /* из -123.4 получаем 4 */
}
inline void printTemp(double d) {
char text[17] = "T=";
int fs[2];
char num[5];
explodeDoubleNumber(fs, d);
if (d < 0) {
strcat(text, "-");
}
itoa(fs[0], num, 10);
strcat(text, num);
strcat(text, ".");
itoa(fs[1], num, 10);
strcat(text, num);
strcat(text, "'C");
lcdClear();
lcdGotoXY(0, 0);
lcdPuts(text);
}
int main(void) {
_delay_ms(100);
lcdInit();
lcdClear();
lcdSetDisplay(LCD_DISPLAY_ON);
lcdSetCursor(LCD_CURSOR_OFF);
while (1) {
double d = getTempDS18B20();
printTemp(d);
_delay_ms(1000);
}
}
*библиотека для работы с LSD дисплеем находится в архив проекта. Скачать можно по ссылке ниже.
Схема подключения LSD дисплея на базе HD44780 и датчика температуры DS18B20 к ATtiny2313 в ISIS 7 Professional — Proteus. Симуляция.
Соединяем все компоненты так, как указано на картинке. Если не знаете как сделать проект в Протеус, переходим на страницу Мигание светодиодом на ATmega16/32.
В микроконтроллере ATtiny2313 заводская установленная частота внутреннего RC генератора равняется 8000000Гц (8МГц), также по умолчанию установлен фьюз деления частоты — CLKDIV8 (Clock Divide by 8), поэтому реальная рабочая частота кристалла 1000000Гц (1МГц). По этому не забываем снять этот фьюз.
Температура ниже нуля
Температура выше нуля
Скачать:
DS18B20 — документация на русском (datasheet ru)
проект в Atmel Studio 7 DS18B20 + LCD HD44780 + ATtiny2313
проект в Proteus 7 DS18B20 + LCD HD44780 + ATtiny2313
online pharmacies legitimate
sildenafil dose
магазин аккаунтов маркетплейс для реселлеров
платформа для покупки аккаунтов https://marketplace-akkauntov-top.ru/
продажа аккаунтов соцсетей аккаунты с балансом
Account Selling Platform Account Buying Service
Website for Selling Accounts Account Sale
Database of Accounts for Sale Account Catalog
Accounts for Sale Account exchange
Account Catalog Gaming account marketplace
Account market socialmediaaccountsshop.com
Account Purchase Account trading platform
Account market Sell Account
account catalog sell account
verified accounts for sale socialaccountssale.com
account sale account acquisition
secure account purchasing platform account sale
accounts for sale find accounts for sale
gaming account marketplace website for buying accounts
marketplace for ready-made accounts account marketplace
account buying service account selling platform
website for selling accounts marketplace for ready-made accounts
gaming account marketplace account trading platform
account acquisition account trading service
account trading platform profitable account sales
verified accounts for sale sell account
accounts marketplace account trading service
social media account marketplace buy pre-made account
account selling platform account marketplace
buy pre-made account account market
sell accounts database of accounts for sale
account marketplace account exchange service
verified accounts for sale database of accounts for sale
buy accounts https://accounts-offer.org/
profitable account sales https://accounts-marketplace.xyz/
account trading service https://buy-best-accounts.org
buy accounts https://social-accounts-marketplaces.live
secure account sales https://accounts-marketplace.live/
website for selling accounts https://social-accounts-marketplace.xyz/
buy account https://buy-accounts.space
FDA approved generic Cialis: order Cialis online no prescription — affordable ED medication
profitable account sales https://buy-accounts-shop.pro/
Modafinil for sale: modafinil 2025 — legal Modafinil purchase
buy generic Viagra online: cheap Viagra online — Viagra without prescription
Viagra without prescription: no doctor visit required — generic sildenafil 100mg
http://modafinilmd.store/# Modafinil for sale
account trading https://accounts-marketplace.online/
buy generic Viagra online: cheap Viagra online — Viagra without prescription
Modafinil for sale: purchase Modafinil without prescription — doctor-reviewed advice
modafinil pharmacy safe modafinil purchase Modafinil for sale
Modafinil for sale: legal Modafinil purchase — modafinil legality
https://maxviagramd.com/# cheap Viagra online
modafinil pharmacy: legal Modafinil purchase — legal Modafinil purchase
same-day Viagra shipping fast Viagra delivery generic sildenafil 100mg
order Viagra discreetly: cheap Viagra online — no doctor visit required
guaranteed accounts https://accounts-marketplace-best.pro/
modafinil pharmacy: safe modafinil purchase — doctor-reviewed advice
best price for Viagra: fast Viagra delivery — discreet shipping
generic sildenafil 100mg Viagra without prescription discreet shipping
Cialis without prescription: online Cialis pharmacy — secure checkout ED drugs
биржа аккаунтов https://akkaunty-na-prodazhu.pro/
https://zipgenericmd.com/# online Cialis pharmacy
modafinil pharmacy modafinil 2025 Modafinil for sale
https://prednihealth.shop/# where to buy prednisone 20mg no prescription
non prescription prednisone 20mg: prednisone buy — PredniHealth
Amo Health Care: Amo Health Care — Amo Health Care
order clomid price cost cheap clomid online cost of cheap clomid without a prescription
площадка для продажи аккаунтов akkaunty-market.live
how to get generic clomid without a prescription: Clom Health — can you get generic clomid online
маркетплейс аккаунтов https://kupit-akkaunty-market.xyz
Amo Health Care: Amo Health Care — amoxicillin 500mg no prescription
https://clomhealth.shop/# get generic clomid without prescription
azithromycin amoxicillin: where can i buy amoxicillin online — Amo Health Care
prednisone 21 pack PredniHealth PredniHealth
prednisone daily use: prednisone cream brand name — PredniHealth
продажа аккаунтов https://akkaunty-optom.live
площадка для продажи аккаунтов https://online-akkaunty-magazin.xyz
PredniHealth PredniHealth prednisone 5mg daily
PredniHealth: PredniHealth — prednisone 50 mg tablet canada
cialis commercial bathtub: TadalAccess — cheap cialis pills uk
ordering cialis online: buy tadalafil reddit — buying cialis without prescription
buy facebook accounts for ads https://buy-adsaccounts.work
buy aged fb account buy facebook ads account
cialis for daily use: buying cialis without prescription — cialis price per pill
buy facebook ad account cheap facebook advertising account
best place to get cialis without pesricption cialis one a day generic tadalafil in us
does cialis shrink the prostate buying cialis sildenafil vs tadalafil vs vardenafil
buy fb ads account facebook ads accounts
tadalafil brand name Tadal Access cialis before and after pictures
20 mg tadalafil best price: TadalAccess — cialis online with no prescription
buy facebook ads accounts https://buy-ad-account.click
cialis price canada: buy cialis without prescription — cialis 10mg reviews
facebook accounts to buy https://ad-accounts-for-sale.work
buy google ads threshold account https://buy-ads-account.top
facebook ad account for sale https://buy-accounts.click
cialis as generic: Tadal Access — cialis sample
buy google ads threshold account https://ads-account-for-sale.top/
buy google adwords account https://ads-account-buy.work
cialis black: cialis liquid for sale — tadalafil tablets 20 mg side effects
google ads reseller https://buy-ads-invoice-account.top/
buy adwords account https://buy-account-ads.work
buy google ads threshold account https://buy-ads-agency-account.top
average dose of tadalafil: best price on cialis — cialis tadalafil online paypal
where to buy cialis soft tabs how long does tadalafil take to work cialis generic for sale
buy google adwords account https://ads-agency-account-buy.click
buy facebook verified business account https://buy-business-manager.org
https://tadalaccess.com/# cialis cheapest prices
buy verified google ads accounts adwords account for sale
cialis doesnt work: cialis covered by insurance — buy generic cialiss
buy facebook bm account buy facebook business manager account
facebook business manager for sale buy-verified-business-manager-account.org
buy verified bm facebook https://buy-verified-business-manager.org/
is there a generic cialis available in the us: cialis experience reddit — san antonio cialis doctor
free coupon for cialis: cialis tadalafil & dapoxetine — is tadalafil as effective as cialis
cialis without a doctor prescription canada: tadalafil (tadalis-ajanta) reviews — cialis and dapoxetime tabs in usa
buy verified bm https://buy-business-manager-verified.org/
business manager for sale facebook business manager for sale
cialis price walmart cialis buy australia online cialis going generic
best place to buy liquid tadalafil: TadalAccess — buy cialis without doctor prescription
does cialis make you harder cialis 20mg cialis 800 black canada
where can i buy cialis on line: how to get cialis without doctor — cialis cheapest prices
cialis copay card: what is cialis — tadalafil pulmonary hypertension
tiktok agency account for sale https://tiktok-ads-account-for-sale.org
buy tiktok ads accounts https://tiktok-agency-account-for-sale.org
tiktok agency account for sale https://buy-tiktok-ads-accounts.org
tadalafil tablets 40 mg: TadalAccess — u.s. pharmacy prices for cialis
cialis generic release date TadalAccess cialis w/dapoxetine
buy tiktok business account https://buy-tiktok-ads.org
cialis one a day Tadal Access what is the generic for cialis
https://tadalaccess.com/# cialis back pain
antibiotic without presription Biot Pharm buy antibiotics from india
where can i buy ed pills: Ero Pharm Fast — ed doctor online
Ero Pharm Fast: online erectile dysfunction — best online ed pills
get antibiotics without seeing a doctor: BiotPharm — over the counter antibiotics
Medications online Australia Pharm Au24 Online drugstore Australia
Online medication store Australia: Buy medicine online Australia — Online medication store Australia
buy antibiotics over the counter: buy antibiotics for uti — buy antibiotics over the counter