資料介紹
描述
迷你 OLED 面板儀表
介紹
這是一款 arduino 可編程 OLED 面板儀表,使用 INA226 電源監(jiān)控芯片來(lái)感應(yīng)電壓和電流,然后顯示在 SSD1306 OLED 顯示屏上。通常亞馬遜/ebay 上便宜的其他小型面板儀表非常不準(zhǔn)確,其中一些帶有可以改變電壓和電流的電位器,但這僅在很小的值范圍內(nèi)準(zhǔn)確,并且通常會(huì)弄亂電壓/電流讀數(shù)。為了避免這種挫敗感,我構(gòu)建了自己的面板表,可以準(zhǔn)確顯示電壓和電流,非常小,易于使用,可以測(cè)量瓦特,并可以更改任何測(cè)量單位。
教科書(shū)鏈接
工作準(zhǔn)則
電流和電壓測(cè)量的背景
測(cè)量電壓非常簡(jiǎn)單,您只需將要測(cè)量的電壓連接到 ADC(模數(shù)轉(zhuǎn)換器),以便微控制器讀取并顯示值。ADC 幾乎可以在特定時(shí)間點(diǎn)對(duì)模擬電壓進(jìn)行采樣,并將這些值存儲(chǔ)為位。位分辨率越高,即 ADC 對(duì)模擬電壓進(jìn)行的采樣數(shù)量,精度就越高。可以通過(guò)多種不同的方式測(cè)量電流,但我將只關(guān)注本項(xiàng)目使用的一種使用電流分流器的方法。電流分流器只是一個(gè)與您正在測(cè)量的負(fù)載串聯(lián)的電阻器,根據(jù)歐姆定律,流過(guò)該電阻器的電流將在電阻器上產(chǎn)生等于 I 乘以 R 的壓降。通過(guò)分流器的電流將與流經(jīng)負(fù)載的電流相同,因?yàn)樗c負(fù)載串聯(lián)。如果分流器的值已知,則通過(guò)負(fù)載的電流將等于分流器兩端的電壓降/分流器的電阻。分流器可以連接在高側(cè)或低側(cè),當(dāng)電流分流器連接到負(fù)載的正側(cè)時(shí),高側(cè)就是高側(cè),而低側(cè)連接到負(fù)載的接地側(cè)。我為這個(gè)項(xiàng)目選擇了高端傳感。分流器可以連接在高側(cè)或低側(cè),當(dāng)電流分流器連接到負(fù)載的正側(cè)時(shí),高側(cè)就是高側(cè),而低側(cè)連接到負(fù)載的接地側(cè)。我為這個(gè)項(xiàng)目選擇了高端傳感。分流器可以連接在高側(cè)或低側(cè),當(dāng)電流分流器連接到負(fù)載的正側(cè)時(shí),高側(cè)就是高側(cè),而低側(cè)連接到負(fù)載的接地側(cè)。我為這個(gè)項(xiàng)目選擇了高端傳感。
關(guān)于組件
該項(xiàng)目使用 INA226 電源監(jiān)控 IC 來(lái)測(cè)量電壓和電流。它通過(guò)測(cè)量分流電阻器兩端的電壓來(lái)實(shí)現(xiàn)這一點(diǎn),并計(jì)算流經(jīng)負(fù)載的電流,因?yàn)殡妷簝H由 INA226 的 ADC 測(cè)量。這個(gè)項(xiàng)目的核心是 ATMEGA328p,因?yàn)樗ㄟ^(guò) I2C 從 INA226 讀取值,并再次通過(guò) I2C 將這些值顯示到 OLED 顯示器。電流分流器是一個(gè) 5mΩ 電阻器,容差為 1%,額定功率為 2W,它會(huì)產(chǎn)生 INA226 測(cè)量的壓降。SSD1306 是一種典型的顯示器,隨處可用,常用于 arduino 項(xiàng)目,您只需為其加電,并通過(guò) I2C 線為其提供信息。
示意圖
ATMEGA328p 與 Arduino mini 幾乎相同,要對(duì) Arduino mini 進(jìn)行編程,您需要 FTDI 編程器才能將 USB 轉(zhuǎn)換為串行通信。為了對(duì) ATMEGA328p 進(jìn)行編程,F(xiàn)TDI 編程器需要使用引腳 DTR、RX、TX、CTS、POWER 和 GROUND 連接到 ATMEGA。您不僅需要對(duì) ATMEGA 進(jìn)行編程,而且由于芯片是空白的,因此需要進(jìn)行引導(dǎo)加載,并且要引導(dǎo)加載芯片,您需要使用引腳 15、16、17 和 29 將 Arduino uno 連接到芯片。編程,和引導(dǎo)加載芯片將在下面的步驟中解釋。兩個(gè) 10k 電阻位于 ATMEGA 的引腳 28 和 27 上,因?yàn)樗鼈兪?I2C 引腳(SDA 和 SCL)。這兩個(gè)引腳需要一個(gè)上拉電阻才能在顯示器的位置正常工作,INA226 使用 I2C 通信,這就是為什么它們的引腳標(biāo)有 SDA,和 SCL(串行數(shù)據(jù)和串行時(shí)鐘)。INA226 的 VBUS 是您測(cè)量電壓的點(diǎn)(相對(duì)于地),IN+ 連接到分流器的正極,IN- 連接到分流器的負(fù)載側(cè),警報(bào)引腳用于提醒故障條件的用戶。
引導(dǎo)加載和編程 PCB
引導(dǎo)加載
D11 → 15
D12 → 16
D13 → 17
+3.3v → +3.3v
接地 → 接地
然后打開(kāi) Arduino IDE,打開(kāi)一個(gè)名為“ArduinoISP”的示例草圖,并上傳代碼。在此之后,轉(zhuǎn)到工具,然后選擇“Programmer”,然后選擇“Arduino as ISP”。最后,轉(zhuǎn)到工具并選擇“Burn Bootloader”,如果它被引導(dǎo)加載,板將在引導(dǎo)加載時(shí)快速閃爍 3 次,您將在命令窗口中收到一條消息,告訴您它已被引導(dǎo)加載。
編程
引導(dǎo)加載后,電路板現(xiàn)在可以進(jìn)行編程了。首先,拿到 FTDI 編程器,并連接到上圖所示的母頭,或者您可以按照母頭的引出線,通過(guò)跳線將 FTDI 板連接到它。確保將 FTDI 編程器設(shè)置為 3.3v。當(dāng)一切都連接好后,只需在第 4 步中上傳代碼即可。
校準(zhǔn)
請(qǐng)記住,您可能需要修改“setResistorRange”函數(shù)的電阻值,因?yàn)殡娮杵鞑⒉煌昝馈榱诵?zhǔn)傳感器,您必須運(yùn)行代碼,并打開(kāi)串行監(jiān)視器,它首先讀取 0 或接近 0,然后您必須連接負(fù)載,并讓已知電流通過(guò)它。通過(guò)這個(gè)已知電流會(huì)給你一個(gè)串行監(jiān)視器上的讀數(shù)。將此數(shù)字除以 1000(因?yàn)樗?mV 為單位),然后除以已知電流(以安培為單位),這應(yīng)該會(huì)給出實(shí)際電阻值。將實(shí)際電阻值插入“setResistorRange”函數(shù)以校準(zhǔn)電路板。在第 4 步中,我將該值設(shè)置為 5mΩ,但如果您使用 1% 容差電阻器,這當(dāng)然需要更改,因?yàn)槿绻褂?0,則很可能不需要校準(zhǔn)它。
使用它
電路板接線非常簡(jiǎn)單,只需按照上圖操作即可,請(qǐng)記住,如果您使用兩個(gè)單獨(dú)的電源,則必須將地線連接在一起。該板在開(kāi)始變熱之前只能處理大約 5A 的電流測(cè)量,但理論上它可以測(cè)量高達(dá) 16A 的電流,因?yàn)樽畲蟾袘?yīng)電壓只能為 80mV。然而,電阻器加熱會(huì)增加其電阻,并導(dǎo)致不準(zhǔn)確。由于測(cè)量線的壓降,電壓讀數(shù)可能不準(zhǔn)確,為避免這種情況,請(qǐng)確保使用粗線。該儀表只能測(cè)量最大 36v,不過(guò),我相信可以重新設(shè)計(jì)電路板,添加一個(gè)分壓器來(lái)限制輸出電壓,并更改代碼以獲得更高的電壓測(cè)量值。
我使用的圖書(shū)館:鏈接
有關(guān)圖書(shū)館的更多信息:鏈接
代碼
代碼
阿杜諾
?
? | #include |
? | #include |
? | #include |
? | #include |
? | #include |
? | #include |
? | ? |
? | ? |
? | #define SCREEN_WIDTH 128 |
? | #define SCREEN_HEIGHT 64 |
? | #define OLED_RESET 4 |
? | #define I2C_ADDRESS 0x40 |
? | Adafruit_SSD1306 display(OLED_RESET); |
? | //INA226 INA(0x40); |
? | float shuntVoltage_mV = 0.000; |
? | float busVoltage_V = 0.000; |
? | float current_A = 0.000; |
? | float loadVoltage_V = 0.000; |
? | float x; |
? | float z; |
? | float y; |
? | ? |
? | ? |
? | INA226_WE ina226 = INA226_WE(0x40); |
? | ? |
? | ? |
? | void setup() { |
? | Wire.begin(); |
? | display.begin(SSD1306_SWITCHCAPVCC, 0x3C); |
? | Serial.begin(9600); |
? | ina226.init(); |
? | ina226.setResistorRange(0.00515,10.0); |
? | ina226.waitUntilConversionCompleted(); |
? | ina226.setConversionTime(CONV_TIME_140); |
? | ina226.setAverage(AVERAGE_256); |
? | pinMode(2,OUTPUT); |
? | } |
? | ? |
? | void loop() { |
? | ? |
? | ? |
? | ? |
? | // ina226.setCorrectionFactor(1); |
? | //ina226.readAndClearFlags(); |
? | shuntVoltage_mV = ina226.getShuntVoltage_mV(); |
? | busVoltage_V = (ina226.getBusVoltage_V()); |
? | current_A = ina226.getCurrent_mA()/1000; |
? | if (current_A <=0) { |
? | x = 0.000; |
? | } |
? | else{ |
? | x = current_A; |
? | } |
? | if (busVoltage_V >= 10){ |
? | z = 18; |
? | } |
? | else { |
? | z = 30; |
? | } |
? | if ( current_A >= 10){ |
? | y = 18; |
? | } |
? | else { |
? | y = 30; |
? | } |
? | display.clearDisplay(); |
? | display.setTextColor(WHITE); |
? | display.setTextSize(2); |
? | display.setCursor(z,0); |
? | display.print(busVoltage_V,3); |
? | display.setCursor(110,0); |
? | display.print("V"); |
? | display.setTextColor(WHITE); |
? | display.setTextSize(2); |
? | display.setCursor(y,18); |
? | display.print(x,3); |
? | display.setCursor(110,18); |
? | display.print("A"); |
? | display.display(); |
? | Serial.println(shuntVoltage_mV,5); |
? | ? |
? | ? |
? | ? |
? | } |
?
?
- 可編程信號(hào)隔離變送器
- 帶OLED顯示屏的可編程袖珍電源
- Arduino模擬面板儀表時(shí)鐘
- PLC Arduino NANO可編程梯形圖
- 可編程控制器AC500用戶手冊(cè) 1次下載
- 可編程邏輯器件PLD課件下載 31次下載
- 基于可編程邏輯的SDRAM控制方法設(shè)計(jì) 8次下載
- 系統(tǒng)可編程閃存中的RISC微控制器LGT8XM 0次下載
- ADXL355低噪聲可編程文件下載 0次下載
- 可編程控制器原理及應(yīng)用 22次下載
- AD625:可編程增益儀表放大器數(shù)據(jù)表
- AD8231:零漂數(shù)字可編程儀表放大器數(shù)據(jù)表
- 三菱可編程邏輯控制器密碼破解軟件下載 6次下載
- 現(xiàn)場(chǎng)可編程門(mén)陣列簡(jiǎn)介 77次下載
- 可編程邏輯陣列fpga和cpld說(shuō)明 25次下載
- 可編程晶振的優(yōu)點(diǎn)和缺點(diǎn) 460次閱讀
- 什么是現(xiàn)場(chǎng)可編程邏輯陣列?它有哪些特點(diǎn)和應(yīng)用? 1054次閱讀
- 可編程片上系統(tǒng)是什么意思 606次閱讀
- 現(xiàn)場(chǎng)可編程門(mén)陣列的原理和應(yīng)用 788次閱讀
- 現(xiàn)場(chǎng)可編程門(mén)陣列是什么 2521次閱讀
- 可編程邏輯器件測(cè)試方法 1575次閱讀
- 如何制作一個(gè)簡(jiǎn)單的2步Arduino可編程定時(shí)器電路 2462次閱讀
- 如何制作一個(gè)簡(jiǎn)單的2步Arduino可編程定時(shí)器電路 4658次閱讀
- 可編程電源的原理 可編程電源的優(yōu)缺點(diǎn) 2458次閱讀
- 可編程控制器的特點(diǎn)有哪些 8790次閱讀
- dfrobot可編程游戲手柄 介紹 2392次閱讀
- 利用儀表放大器獲得可編程增益的方法是什么? 6020次閱讀
- 可編程電源應(yīng)用與選型詳解 1.3w次閱讀
- 可編程控制器基本知識(shí)_可編程控制器原理及應(yīng)用 5.9w次閱讀
- 可編程電源簡(jiǎn)介 2186次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論