日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>帶有圖表和電池監(jiān)控器的溫度和濕度監(jiān)控器

帶有圖表和電池監(jiān)控器的溫度和濕度監(jiān)控器

2022-10-21 | zip | 0.20 MB | 次下載 | 免費

資料介紹

描述

該項目是我的項目“具有最小值和最大值的極低功率溫度和濕度監(jiān)視器”的演變我想擴(kuò)展它以存儲 24 小時的歷史記錄并將其顯示在圖表中。如下所述,我必須刪除使處理器進(jìn)入睡眠狀態(tài)的代碼,因此我還添加了一個電池電量指示器,以便知道何時需要充電。

我在擴(kuò)展項目時遇到了幾個問題:

  • 最初我添加了一個數(shù)組來存儲溫度歷史int tempHistory[96];,這很好用,但是一旦我添加了第二個數(shù)組來消除濕度歷史int humidHistory[96] ,程序就不再運行。它編譯并上傳,但甚至沒有運行 setup()。盡管看起來有大量的備用程序和變量空間,但我能得出的唯一結(jié)論是它的內(nèi)存不足。因此,我更改了曲目,現(xiàn)在將歷史記錄存儲在 EPROM 中。
  • 在鏈接的項目中,我通過調(diào)用睡眠模式降低了功耗以延長電池壽命。這樣做的問題是它會停止觸發(fā)計時器,因此millis()在睡眠期間不會前進(jìn)。這是一個問題,因為我想每 15 分鐘(每天 96 分鐘)存儲一次讀數(shù),并且無法跟蹤睡眠時的經(jīng)過時間。因此,我刪除了激活睡眠模式的代碼。由于取消睡眠模式會縮短電池壽命,因此我添加了電池監(jiān)控功能,以便知道電池電量何時變低。
  • 最后,我添加了一個屏幕保護(hù)程序,顯示每 10 秒移動一次的電池電量。

編碼

該代碼使用以下庫:

#include             // This is the DHT sensor library by Adafruit	
                            // required for the OLED display 	
#include             // Synchronous serial data protocol library	
#include            // IC2 communications library	
#include    // Adafruit Graphics Core Library	
#include   // SSD1306 library for Monochrome 128x64 and 128x32 OLEDs 
#include          // Library to support writing to and reading from EPROM

這些來自 Adafruit 圖形核心庫的字體:

#include  	
#include 

代碼中主要感興趣的領(lǐng)域:

檢查是否需要激活屏幕保護(hù)模式或移動位圖。loop()

// Check if the time since last display of data started is greater than
 // the time set to keeo the display showing
 if ((millis() - timeDisplay) > keepDisplayFor) {
   // If so in screen save mode
   // Set flag to indicate data not being displayed
   displaying = false;      
   // Check if we need to move the bitmap
   if ((millis() - lastMoved) > moveEvery) {
     // Update time last moved
     lastMoved = millis();
     // Dislpay battery bitmap in random position
     DrawScreenSave(random(10, 110), random(10, 45));
   }
 }

我們首先檢查系統(tǒng)顯示數(shù)據(jù)的時間是否超過了設(shè)置的時間以保持顯示。timeDisplaymillis()按下按鈕以激活顯示或更改屏幕所經(jīng)過的時間。

if ((millis() - timeDisplay) > keepDisplayFor)...

如果這個時間已經(jīng)過去,那么我們確保標(biāo)志設(shè)置為指示我們不顯示數(shù)據(jù),并檢查自上次移動位圖以來經(jīng)過的時間是否超過moveEvery,如果超過,那么我們調(diào)用例程來顯示電池位圖每次隨機(jī)放置一個位置,以免燒壞。

然后系統(tǒng)檢查自上次讀取一組讀數(shù)后是否已過 2 秒,如果已過,則刷新讀數(shù)并更新最小值和最大值。

if ((millis() - lastReadingUpdate) > 2000ul) ...

如果系統(tǒng)正在顯示,則使用 switch 語句調(diào)用例程以呈現(xiàn)當(dāng)前選定的數(shù)據(jù)屏幕,然后調(diào)用例程以檢查是否已按下按鈕。

  • 如果當(dāng)前未處于顯示模式,模式按鈕(引腳 2)將激活顯示。如果處于顯示模式,則它使用 switch 語句在 4 個顯示中循環(huán)。
  • 如果當(dāng)前正在顯示數(shù)據(jù),重置按鈕(引腳 3)將重置最小和最大讀數(shù)的值。

最后,如果自歷史數(shù)據(jù)中的最后一條記錄更新以來已經(jīng)過去了 15 分鐘,則系統(tǒng)調(diào)用例程將當(dāng)前讀數(shù)存儲在歷史中。

檢查電池電壓

我們使用模擬輸入引腳來讀取電壓。由于我們使用 3.7v 伏電池運行,我們需要調(diào)整引腳使用的參考電壓,否則它會將電壓與自身進(jìn)行比較。該語句analogReference(INTERNAL)將引腳設(shè)置為將輸入電壓與穩(wěn)定的 1.1v 進(jìn)行比較。因此,我們需要將輸入引腳上的電壓降低到 1.1v 以下才能正常工作。這是通過使用 2 個電阻器(1m 和 330k 歐姆)對電壓進(jìn)行分壓來完成的。這將電壓除以大約 4,因此當(dāng)電池充滿電時,即 4.2v,引腳輸入的電壓為 4.2/4 = 1.05v。

// Read the monitor pin and calculate the voltage
float BatteryVoltage(){
 float reading = analogRead(MONITOR_PIN);
 // Calculate voltage - reference voltage is 1.1v
 return 1.1 * (reading/1023) * voltageDivider;
}

該函數(shù)BatterVoltage()讀取模擬引腳,其范圍從 0 表示 0 伏到 1,023 表示 1.1 伏,并使用該讀數(shù)計算來自電池的實際電壓。

函數(shù)調(diào)用 this 然后根據(jù)DrawScreenSave()以下內(nèi)容選擇要顯示的適當(dāng)位圖:

  • 如果電壓大于 3.6v - 滿
  • 3.5 和 3.6v 之間的電壓 - 3/4
  • 3.4 和 3.5v 之間的電壓 - 一半
  • 3.3 和 3.4v 之間的電壓 - 1/4
  • 電壓 < 3.3v - 空

存儲歷史

如上所述,我最初將歷史記錄存儲在數(shù)組中,但似乎這會導(dǎo)致內(nèi)存問題。因此,我將數(shù)據(jù)存儲在 EPROM 中的 96 個位置,分別是溫度和歷史,在一個循環(huán)列表中。EEPROM 庫在此處提供了管理數(shù)據(jù)的功能。

歷史記錄以整數(shù)形式存儲,在 Arduino 上每個占 2 個字節(jié)。數(shù)據(jù)地址的指針histPointer從0到95再回到0。tempStarthumidStart存儲每個列表的起始位置,每個位置就是起始位置+位置*2。

顯示圖表

圖形例程首先獲取歷史中的最小值和最大值,計算比例,然后使用從最舊值 ( histPointer+1) 到存儲在的最新值的線繪制來繪制圖形histPointer。

開/關(guān)

如果您想添加一個開/關(guān)開關(guān),請將其插入從充電器模塊 OUT+ 到 Arduino 板的電線中。這將允許您在設(shè)備關(guān)閉的情況下為電池充電。

調(diào)節(jié)電池充電

所使用的 TP4056 充電器包括一個 1.1K 歐姆的調(diào)節(jié)電阻,以 1, 000mAh 的速率提供充電。對于使用的 1, 000mAh 電池來說,這實在是太高了,應(yīng)該以最大 500mAh 充電。這很繁瑣,但是您可以卸下板上安裝的電阻器(R3),或者我發(fā)現(xiàn)用刀刮過它更容易將其破壞,因為這會使柱子焊接到,并焊接在外部電阻器上以減少電流下表顯示了電阻值和產(chǎn)生的電流。(用儀表檢查您是否仍在讀取連接上的正確電阻,因為很容易將它們短路,這可能會造成損壞。)

poYBAGNPRKeAKJ10AABZLybOUEA451.png
?

?


監(jiān)控器 Arduino 電池
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
  2. 1.12 MB  |  5次下載  |  免費
  3. 2HT81696H 內(nèi)置升壓的30W立體聲D類音頻功放數(shù)據(jù)手冊
  4. 1.21 MB   |  1次下載  |  免費
  5. 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數(shù)據(jù)手冊
  6. 0.87 MB   |  次下載  |  免費
  7. 4南芯 Southchip SC8802C 充電控制器 規(guī)格書 Datasheet 佰祥電子
  8. 88.16 KB  |  次下載  |  免費
  9. 5矽力杰 Silergy SY7065 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
  10. 910.67 KB  |  次下載  |  免費
  11. 6矽力杰 Silergy SY7066 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
  12. 989.14 KB  |  次下載  |  免費
  13. 7WD6208A產(chǎn)品規(guī)格書
  14. 631.24 KB  |  次下載  |  免費
  15. 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊
  16. 1.64 MB   |  次下載  |  2 積分

本月

  1. 1EMC PCB設(shè)計總結(jié)
  2. 0.33 MB   |  12次下載  |  免費
  3. 2PD取電芯片 ECP5702規(guī)格書
  4. 0.88 MB   |  5次下載  |  免費
  5. 3矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
  6. 1.12 MB  |  5次下載  |  免費
  7. 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動電路選型表
  8. 0.10 MB   |  3次下載  |  免費
  9. 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊
  10. 0.88 MB   |  3次下載  |  免費
  11. 6SY50655 用于高輸入電壓應(yīng)用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
  12. 1.01 MB   |  3次下載  |  免費
  13. 7怎么為半導(dǎo)體測試儀選擇精密放大器
  14. 0.65 MB   |  2次下載  |  免費
  15. 8SY52341 次級側(cè)同步整流英文手冊
  16. 0.94 MB   |  2次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233095次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191469次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183360次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81606次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費下載
  14. 0.02 MB  |  73832次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分
南郑县| 吴旗县| 通州市| 化德县| 漠河县| 栾城县| 长泰县| 阜新市| 五常市| 天台县| 周宁县| 达拉特旗| 海阳市| 乾安县| 且末县| 嘉黎县| 塔河县| 布尔津县| 凤山县| 河津市| 南江县| 翼城县| 万载县| 正宁县| 大港区| 黑山县| 赣榆县| 平原县| 闵行区| 丰县| 新建县| 仙居县| 阿城市| 海丰县| 九龙县| 永安市| 台中市| 泰宁县| 武宣县| 高清| 文水县|