В данной статье пойдет речь о том, как подключить датчик температуры 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
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
profitable account sales https://buy-accounts-shop.pro/
account trading https://accounts-marketplace.online/
guaranteed accounts https://accounts-marketplace-best.pro/
биржа аккаунтов https://akkaunty-na-prodazhu.pro/
площадка для продажи аккаунтов akkaunty-market.live
маркетплейс аккаунтов https://kupit-akkaunty-market.xyz
продажа аккаунтов https://akkaunty-optom.live
площадка для продажи аккаунтов https://online-akkaunty-magazin.xyz
buy facebook accounts for ads https://buy-adsaccounts.work
buy aged fb account buy facebook ads account
buy facebook ad account cheap facebook advertising account
buy fb ads account facebook ads accounts
buy facebook ads accounts https://buy-ad-account.click
facebook accounts to buy https://ad-accounts-for-sale.work
buy google ads threshold account https://buy-ads-account.top
buy google ads threshold account https://ads-account-for-sale.top/
buy google adwords account https://ads-account-buy.work
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
buy google adwords account https://ads-agency-account-buy.click
buy facebook verified business account https://buy-business-manager.org
buy verified google ads accounts adwords account for sale
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/
buy verified bm https://buy-business-manager-verified.org/
business manager for sale facebook business manager for sale
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
buy tiktok business account https://buy-tiktok-ads.org
https://rxfreemeds.com/# RxFree Meds
https://rxfreemeds.com/# RxFree Meds
enclomiphene testosterone: enclomiphene buy — enclomiphene price
https://rxfreemeds.shop/# RxFree Meds
RxFree Meds RxFree Meds RxFree Meds
http://farmaciaasequible.com/# ozempic spanje
buy enclomiphene online: enclomiphene best price — enclomiphene price
https://indomedsusa.com/# mail order pharmacy india
reputable mexican pharmacies online MexiMeds Express pharmacies in mexico that ship to usa
online pharmacy india: online pharmacy india — IndoMeds USA
canadian pharmacy no scripts: can you buy misoprostol pharmacy — canadian online pharmacy
https://meximedsexpress.com/# MexiMeds Express
lipitor 4 copay card pharmacy: MediSmart Pharmacy — target pharmacy nexium
reputable indian online pharmacy: top 10 online pharmacy in india — IndoMeds USA
mexico drug stores pharmacies: MexiMeds Express — mexican drugstore online
http://meximedsexpress.com/# MexiMeds Express
indianpharmacy com: pharmacy website india — IndoMeds USA
bachelor of pharmacy online MediSmart Pharmacy online pharmacy tylenol 3
IndoMeds USA: IndoMeds USA — IndoMeds USA
best online pharmacies in mexico: MexiMeds Express — MexiMeds Express
us pharmacy cialis best pharmacy prices cialis charles raines pharmacy winston-salem nc early drug store
https://medismartpharmacy.shop/# online dog pharmacy
IndoMeds USA: online pharmacy india — india online pharmacy
is online pharmacy legit: Trecator SC — Hyzaar
pharmacies in mexico that ship to usa MexiMeds Express best online pharmacies in mexico
IndoMeds USA: IndoMeds USA — indian pharmacy online
https://meximedsexpress.com/# mexico drug stores pharmacies
IndoMeds USA: top 10 pharmacies in india — IndoMeds USA
MexiMeds Express reputable mexican pharmacies online MexiMeds Express
best pharmacy: cialis us pharmacy online — precision rx specialty pharmacy
https://meximedsexpress.shop/# MexiMeds Express
https://medismartpharmacy.com/# adipex mexico pharmacy
reputable mexican pharmacies online: MexiMeds Express — MexiMeds Express
https://meximedsexpress.com/# best online pharmacies in mexico
MexiMeds Express: MexiMeds Express — MexiMeds Express
medication from mexico pharmacy mexico pharmacies prescription drugs MexiMeds Express
india pharmacy mail order: IndoMeds USA — IndoMeds USA
buy facebook profile account catalog account purchase
https://meximedsexpress.com/# mexican online pharmacies prescription drugs
mexican online pharmacies prescription drugs: purple pharmacy mexico price list — MexiMeds Express
mexico drug stores pharmacies MexiMeds Express medicine in mexico pharmacies
http://indomedsusa.com/# IndoMeds USA
top 10 online pharmacy in india IndoMeds USA IndoMeds USA
http://medismartpharmacy.com/# crestor pharmacy online
buying prescription drugs in mexico: MexiMeds Express — MexiMeds Express
IndoMeds USA: IndoMeds USA — IndoMeds USA
https://meximedsexpress.shop/# MexiMeds Express
buy facebook ads account account purchase database of accounts for sale
pharmacy website india: top 10 pharmacies in india — buy medicines online in india
https://indomedsusa.shop/# IndoMeds USA
mexican pharmaceuticals online: MexiMeds Express — MexiMeds Express
https://meximedsexpress.shop/# MexiMeds Express
IndoMeds USA IndoMeds USA IndoMeds USA
http://clinicagaleno.com/# farmacia manresa online
https://ordinasalute.shop/# farmacia omeopatica tedesca online
livraison mГ©dicament sans ordonnance: fluocaril 250 — zinc en pharmacie sans ordonnance
farmacia online viagra: cialis comprar farmacia online — farmacia online alemana
busette cerotto prezzo: farmacia bagheria online — colinox per diarrea
slowmet 1000 prezzo enterolactis plus stitichezza cialis 5mg
poudre matifiante la roche posay: PharmaDirecte — antibiotique chat sans ordonnance
cialis acheter sans ordonnance: eau de toilette mustela — ictyane creme emolliente
https://clinicagaleno.com/# farmacia homeopatica online españa
amoxicillin sans ordonnance PharmaDirecte Г©quivalent tramadol sans ordonnance
farmacia iglesias online: Clinica Galeno — kamagra oral jelly in farmacia italia online
https://ordinasalute.shop/# farmacia online contrassegno
lansox 30 orodispersibile prezzo OrdinaSalute farmacia online genova
http://clinicagaleno.com/# farmacia online mascotas
valencia farmacia online Clinica Galeno comprar metformina espaГ±a sin receta
farmacia alemana online: Clinica Galeno — farmacia marimon online
apotheek nl online: apteka internetowa nl — medicijn online
belgische online apotheek Medicijn Punt mediceinen
kan ni utslag: apotek maps — apotek sexleksaker
kГ¶pa kanyler apotek Snabb Apoteket apotek Г¶ppet 24/7
http://tryggmed.com/# oksygenmåler apotek
betrouwbare online apotheek zonder recept: apotheek nederland — medicijnen online bestellen
medicijn bestellen: MedicijnPunt — dokter online medicijnen bestellen
https://zorgpakket.shop/# pharmacy nl
gipssko apotek: Trygg Med — apotek gave
pharmacy nl: Medicijn Punt — medicijnen bestellen online
https://zorgpakket.shop/# online pharmacy nl
medicijnen zonder recept kopen Medicijn Punt aptoheek
http://tryggmed.com/# apotek hjemlevering
stiv sГҐle apotek: TryggMed — strГёmpepГҐtrekker apotek
cialis pharmacy online uk: kamagra pharmacy bangkok — ExpressCareRx
IndiaMedsHub: IndiaMedsHub — Online medicine order
reputable indian pharmacies: IndiaMedsHub — IndiaMedsHub
http://indiamedshub.com/# indian pharmacy paypal
https://medimexicorx.com/# mexican rx online
MediMexicoRx: semaglutide mexico price — buy cialis from mexico
neighbor rx pharmacy: us pharmacy viagra prices — asda pharmacy ventolin
safe mexican online pharmacy real mexican pharmacy USA shipping MediMexicoRx
ExpressCareRx: medco pharmacy cialis — viagra reputable online pharmacy
https://indiamedshub.com/# IndiaMedsHub
buy medicines online in india: IndiaMedsHub — IndiaMedsHub
https://medimexicorx.com/# mexico drug stores pharmacies
ExpressCareRx: vardenafil — us online pharmacy cialis
buy cialis from mexico prescription drugs mexico pharmacy MediMexicoRx
https://indiamedshub.shop/# top 10 online pharmacy in india
generic viagra online canadiain pharmacy: medplus pharmacy store locator — ExpressCareRx
MediMexicoRx buy modafinil from mexico no rx legit mexico pharmacy shipping to USA
glucophage pharmacy: rx specialty pharmacy — propranolol pharmacy
https://tadalafilfromindia.shop/# Tadalafil From India
lexapro 5 mg tablet price lexapro 10 mg price in india where can i buy lexapro online
Finasteride From Canada: Finasteride From Canada — generic Finasteride without prescription
https://lexapro.pro/# lexapro brand name in india
Zoloft online pharmacy USA: generic sertraline — Zoloft Company
Propecia for hair loss online: cheap propecia without rx — order cheap propecia without a prescription
generic Finasteride without prescription: generic Finasteride without prescription — order generic propecia
Isotretinoin From Canada buy Accutane online order isotretinoin from Canada to US
Accutane for sale: isotretinoin online — isotretinoin online
https://zoloft.company/# purchase generic Zoloft online discreetly
purchase generic Accutane online discreetly: isotretinoin online — Accutane for sale
Lexapro for depression online: lexapro 20 mg discount — pharmacy price for lexapro 20 mg
https://isotretinoinfromcanada.com/# Isotretinoin From Canada