0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Arduino和DS18B20溫度傳感器自制模擬溫度計

454398 ? 來源:一板網(wǎng) ? 作者:風箏 ? 2020-10-24 10:35 ? 次閱讀

有時,我們需要在項目中添加一個溫度指示器。因此,在本篇文章中,您將學習如何使用Arduino和DS18B20溫度傳感器制作一款模擬溫度計。

DS18B20模塊

首先,Maxim DS18B20數(shù)字溫度計提供9位至12位攝氏溫度測量,并具有報警功能以及非易失性用戶可編程的上下觸發(fā)點。同樣,DS18B20通過1-Wire總線進行通信,根據(jù)定義,該總線僅需要一條數(shù)據(jù)線(和地線)即可與中央微處理器進行通信。此外,DS18B20可以直接從數(shù)據(jù)線獲取電源(“寄生電源”),而無需外部電源。

實際上,每個DS18B20都有一個唯一的64位串行代碼,它允許多個DS18B20在同一1-Wire總線上工作。因此,使用一個微處理器控制分布在大面積上的許多DS18B20很簡單。

所需的零件

● Arduino Uno開發(fā)板

● DS18B20傳感器

● 模擬電壓表

電路

幸運的是,電路是如此簡單。首先,將帶有(-)符號的DS18b20引腳連接到Arduino GND,將帶有(+)符號的引腳連接到5V,將信號引腳連接到數(shù)字引腳2,以開始感測溫度。我們將電壓表的正極連接到數(shù)字引腳9(PWM引腳之一),將負極連接到GND。然后,要將電壓表的標簽更改為攝氏溫度計,只需下載附件中的照片并打印出來即可!

脈沖寬度調(diào)制

簡而言之,脈寬調(diào)制或PWM是一種通過數(shù)字方式獲得模擬結(jié)果的技術(shù)。因此,我們可以發(fā)送一個脈沖,而不是向PWM中的數(shù)字引腳寫入高電平。因此,Arduino UNO的一些數(shù)字引腳支持PWM,您可以通過旁邊打印的信號(?)識別它們。

代碼

首先,您需要在Arduino IDE中添加“DallasTemperature”庫,因為該庫支持Maxim溫度IC,包括我們的DS18B20。該代碼包含三個主要方面:從傳感器讀取溫度、將溫度轉(zhuǎn)換為一個PWM值以及在溫度計上顯示該值

首先,在setup函數(shù)中,我們將從傳感器讀取溫度。然后,將其傳遞給PWM函數(shù),以將獲取的值轉(zhuǎn)換為0到255范圍內(nèi)的PWM值。這可以在函數(shù)內(nèi)部借助“map”函數(shù)來完成。接下來,我們將其寫入引腳9,以顯示在電壓表上。

不過,您可以指定自己喜歡的最低和最高溫度度,但您應該注意:這兩個值之間的差距越小,溫度計的分辨率就越高。讓我們看一下代碼:

//Written by Nick Koumaris

//info@educ8s.tv

//educ8s.tv

#include

#include

#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

int MIN_TEMP = 16;

int MAX_TEMP = 28;

void setup() {

pinMode(9,OUTPUT);

Serial.begin(9600);

sensors.begin();

}

void loop() {

float temperature = getTemperature();

int voltage = temperatureToPWM(temperature);

analogWrite(9,voltage);

delay(500);

}

float getTemperature()

{

float temperature =0;

sensors.requestTemperatures(); // Send the command to get temperatures

temperature = sensors.getTempCByIndex(0);

Serial.println(temperature);

return temperature;

}

int temperatureToPWM(float temperature)

{

float temp=0;

float voltage = 0;

temp = temperature*10;

voltage = map(temp,MIN_TEMP*10,MAX_TEMP*10,0,250);

return voltage;

}

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 溫度傳感器
    +關(guān)注

    關(guān)注

    48

    文章

    2885

    瀏覽量

    155664
  • DS18B20
    +關(guān)注

    關(guān)注

    10

    文章

    777

    瀏覽量

    80583
  • 溫度計
    +關(guān)注

    關(guān)注

    6

    文章

    404

    瀏覽量

    78368
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6455

    瀏覽量

    186372
  • 溫度指示器
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    1600
收藏 人收藏

    評論

    相關(guān)推薦

    DS18B20溫度傳感器的工作原理和硬件設計

    通過本文可以了解DS18B20溫度傳感器工作原理、硬件設計、DS18B20單總線接口驅(qū)動編寫。
    的頭像 發(fā)表于 10-24 14:38 ?75次閱讀
    <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的工作原理和硬件設計

    ds18b20傳感器的使用方法

    Integrated開發(fā)的一種數(shù)字溫度傳感器,它能夠提供9位到12位的溫度測量精度,測量范圍從-55°C到+125°C。這種傳感器非常適合用于需要精確
    的頭像 發(fā)表于 10-18 14:52 ?137次閱讀

    ds18b20溫度傳感器怎么接線

    DS18B20是一種廣泛使用的數(shù)字溫度傳感器,它基于1-Wire(一線)通信協(xié)議工作。這種傳感器因其高精度、易用性和低成本而受到歡迎。 DS18B2
    的頭像 發(fā)表于 10-18 14:50 ?266次閱讀

    ds18b20溫度傳感器如何使用

    DS18B20是一款廣泛使用的數(shù)字溫度傳感器,它具有高精度、低功耗和易于使用的特點。 DS18B20溫度
    的頭像 發(fā)表于 09-03 16:51 ?410次閱讀

    ds18b20溫度傳感器是什么類型

    DS18B20溫度傳感器是一種數(shù)字溫度傳感器,它屬于單總線(One-Wire)數(shù)字溫度
    的頭像 發(fā)表于 09-03 16:46 ?571次閱讀

    ds18b20溫度傳感器和dht11的區(qū)別

    進行通信。這種傳感器可以提供9位到12位的數(shù)字溫度讀數(shù),精度非常高。DS18B20的工作原理是通過測量其內(nèi)部溫度傳感器的電壓變化來計算
    的頭像 發(fā)表于 09-03 16:44 ?598次閱讀

    DS18B20溫度傳感器工作原理

    ,DS18B20以其獨特的工作原理、卓越的技術(shù)參數(shù)和廣泛的應用場景,成為了市場的明星產(chǎn)品。 深入了解DS18B20的工作原理 DS18B20溫度傳感
    的頭像 發(fā)表于 06-19 16:01 ?817次閱讀

    基于STC8H8K64U和DS18B20溫度采集和LabVIEW上位機顯示

    ,該項目可以實現(xiàn) LabVIEW 上位機對 MCU 發(fā)送指令,MCU 通過 DS18B20 溫度傳感器獲取環(huán)境溫度,并通過串口將數(shù)據(jù)反饋給上位機,上位機實時記錄數(shù)據(jù),并將日期和各個時刻
    發(fā)表于 04-08 12:28

    DS18B20溫度傳感器的優(yōu)缺點

    可編程寄存DS18B20內(nèi)部具有可編程寄存,允許用戶對其進行配置和控制,以滿足不同的應用需求。
    發(fā)表于 04-04 11:39 ?3915次閱讀

    基于51單片機的多點溫度檢測網(wǎng)絡,DS18B20傳感器,代碼,仿真,原理圖等資料

    他們的溫度。 單總線本身也可以向所掛接的多個DS18B20供電,而無需額外電源。4組溫度傳感器的連接網(wǎng)絡如下。 Proteus仿真電路 **原理圖 ** 仿真結(jié)果分析 把在K
    發(fā)表于 03-24 22:08

    樹莓派Pico上使用DS18B20溫度傳感器

    DS18B20 溫度傳感采用單總線的接口方式,與微處理連接時僅需要一條口線即可實現(xiàn)微處理DS18
    的頭像 發(fā)表于 11-21 14:21 ?1214次閱讀
    樹莓派Pico上使用<b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>

    DS18B20溫度傳感器溫度值傳送到USART HMI上顯示

    DS18B20是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。
    的頭像 發(fā)表于 11-08 16:51 ?1438次閱讀
    <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b><b class='flag-5'>溫度</b>值傳送到USART HMI上顯示

    如何解決DS18b20發(fā)熱對溫度測量的影響?

    如何解決DS18b20發(fā)熱對溫度測量的影響
    發(fā)表于 11-03 06:52

    溫度傳感器DS18B20的電路和能讀取正負溫度數(shù)值的程序介紹

    本文介紹溫度傳感器DS18B20的電路和能讀取正負溫度數(shù)值的程序(或說明)。日積月累,越來越進步,本文的分享來自查閱與實踐,基本已驗證成功。
    的頭像 發(fā)表于 11-02 14:04 ?1893次閱讀
    <b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b><b class='flag-5'>DS18B20</b>的電路和能讀取正負<b class='flag-5'>溫度</b>數(shù)值的程序介紹

    基于STM32最小系統(tǒng)的雙DS18B20檢測溫度并在OLED上顯示

    基于STM32最小系統(tǒng)的雙DS18B20檢測溫度并在OLED上顯示
    發(fā)表于 10-30 15:13 ?6次下載