資料介紹
描述
迷你 OLED 面板儀表
介紹
這是一款 arduino 可編程 OLED 面板儀表,使用 INA226 電源監(jiān)控芯片來感應電壓和電流,然后顯示在 SSD1306 OLED 顯示屏上。通常亞馬遜/ebay 上便宜的其他小型面板儀表非常不準確,其中一些帶有可以改變電壓和電流的電位器,但這僅在很小的值范圍內準確,并且通常會弄亂電壓/電流讀數(shù)。為了避免這種挫敗感,我構建了自己的面板表,可以準確顯示電壓和電流,非常小,易于使用,可以測量瓦特,并可以更改任何測量單位。
教科書鏈接
工作準則
電流和電壓測量的背景
測量電壓非常簡單,您只需將要測量的電壓連接到 ADC(模數(shù)轉換器),以便微控制器讀取并顯示值。ADC 幾乎可以在特定時間點對模擬電壓進行采樣,并將這些值存儲為位。位分辨率越高,即 ADC 對模擬電壓進行的采樣數(shù)量,精度就越高??梢酝ㄟ^多種不同的方式測量電流,但我將只關注本項目使用的一種使用電流分流器的方法。電流分流器只是一個與您正在測量的負載串聯(lián)的電阻器,根據(jù)歐姆定律,流過該電阻器的電流將在電阻器上產生等于 I 乘以 R 的壓降。通過分流器的電流將與流經負載的電流相同,因為它與負載串聯(lián)。如果分流器的值已知,則通過負載的電流將等于分流器兩端的電壓降/分流器的電阻。分流器可以連接在高側或低側,當電流分流器連接到負載的正側時,高側就是高側,而低側連接到負載的接地側。我為這個項目選擇了高端傳感。分流器可以連接在高側或低側,當電流分流器連接到負載的正側時,高側就是高側,而低側連接到負載的接地側。我為這個項目選擇了高端傳感。分流器可以連接在高側或低側,當電流分流器連接到負載的正側時,高側就是高側,而低側連接到負載的接地側。我為這個項目選擇了高端傳感。
關于組件
該項目使用 INA226 電源監(jiān)控 IC 來測量電壓和電流。它通過測量分流電阻器兩端的電壓來實現(xiàn)這一點,并計算流經負載的電流,因為電壓僅由 INA226 的 ADC 測量。這個項目的核心是 ATMEGA328p,因為它通過 I2C 從 INA226 讀取值,并再次通過 I2C 將這些值顯示到 OLED 顯示器。電流分流器是一個 5mΩ 電阻器,容差為 1%,額定功率為 2W,它會產生 INA226 測量的壓降。SSD1306 是一種典型的顯示器,隨處可用,常用于 arduino 項目,您只需為其加電,并通過 I2C 線為其提供信息。
示意圖
ATMEGA328p 與 Arduino mini 幾乎相同,要對 Arduino mini 進行編程,您需要 FTDI 編程器才能將 USB 轉換為串行通信。為了對 ATMEGA328p 進行編程,F(xiàn)TDI 編程器需要使用引腳 DTR、RX、TX、CTS、POWER 和 GROUND 連接到 ATMEGA。您不僅需要對 ATMEGA 進行編程,而且由于芯片是空白的,因此需要進行引導加載,并且要引導加載芯片,您需要使用引腳 15、16、17 和 29 將 Arduino uno 連接到芯片。編程,和引導加載芯片將在下面的步驟中解釋。兩個 10k 電阻位于 ATMEGA 的引腳 28 和 27 上,因為它們是 I2C 引腳(SDA 和 SCL)。這兩個引腳需要一個上拉電阻才能在顯示器的位置正常工作,INA226 使用 I2C 通信,這就是為什么它們的引腳標有 SDA,和 SCL(串行數(shù)據(jù)和串行時鐘)。INA226 的 VBUS 是您測量電壓的點(相對于地),IN+ 連接到分流器的正極,IN- 連接到分流器的負載側,警報引腳用于提醒故障條件的用戶。
引導加載和編程 PCB
引導加載
D11 → 15
D12 → 16
D13 → 17
+3.3v → +3.3v
接地 → 接地
然后打開 Arduino IDE,打開一個名為“ArduinoISP”的示例草圖,并上傳代碼。在此之后,轉到工具,然后選擇“Programmer”,然后選擇“Arduino as ISP”。最后,轉到工具并選擇“Burn Bootloader”,如果它被引導加載,板將在引導加載時快速閃爍 3 次,您將在命令窗口中收到一條消息,告訴您它已被引導加載。
編程
引導加載后,電路板現(xiàn)在可以進行編程了。首先,拿到 FTDI 編程器,并連接到上圖所示的母頭,或者您可以按照母頭的引出線,通過跳線將 FTDI 板連接到它。確保將 FTDI 編程器設置為 3.3v。當一切都連接好后,只需在第 4 步中上傳代碼即可。
校準
請記住,您可能需要修改“setResistorRange”函數(shù)的電阻值,因為電阻器并不完美。為了校準傳感器,您必須運行代碼,并打開串行監(jiān)視器,它首先讀取 0 或接近 0,然后您必須連接負載,并讓已知電流通過它。通過這個已知電流會給你一個串行監(jiān)視器上的讀數(shù)。將此數(shù)字除以 1000(因為它以 mV 為單位),然后除以已知電流(以安培為單位),這應該會給出實際電阻值。將實際電阻值插入“setResistorRange”函數(shù)以校準電路板。在第 4 步中,我將該值設置為 5mΩ,但如果您使用 1% 容差電阻器,這當然需要更改,因為如果您使用 0,則很可能不需要校準它。
使用它
電路板接線非常簡單,只需按照上圖操作即可,請記住,如果您使用兩個單獨的電源,則必須將地線連接在一起。該板在開始變熱之前只能處理大約 5A 的電流測量,但理論上它可以測量高達 16A 的電流,因為最大感應電壓只能為 80mV。然而,電阻器加熱會增加其電阻,并導致不準確。由于測量線的壓降,電壓讀數(shù)可能不準確,為避免這種情況,請確保使用粗線。該儀表只能測量最大 36v,不過,我相信可以重新設計電路板,添加一個分壓器來限制輸出電壓,并更改代碼以獲得更高的電壓測量值。
我使用的圖書館:鏈接
有關圖書館的更多信息:鏈接
代碼
代碼
阿杜諾
?
? | #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); |
? | ? |
? | ? |
? | ? |
? | } |
?
?
- 可編程信號隔離變送器
- 帶OLED顯示屏的可編程袖珍電源
- Arduino模擬面板儀表時鐘
- PLC Arduino NANO可編程梯形圖
- 可編程控制器AC500用戶手冊 1次下載
- 可編程邏輯器件PLD課件下載 31次下載
- 基于可編程邏輯的SDRAM控制方法設計 8次下載
- 系統(tǒng)可編程閃存中的RISC微控制器LGT8XM 0次下載
- ADXL355低噪聲可編程文件下載 0次下載
- 可編程控制器原理及應用 21次下載
- AD625:可編程增益儀表放大器數(shù)據(jù)表
- AD8231:零漂數(shù)字可編程儀表放大器數(shù)據(jù)表
- 三菱可編程邏輯控制器密碼破解軟件下載 6次下載
- 現(xiàn)場可編程門陣列簡介 76次下載
- 可編程邏輯陣列fpga和cpld說明 25次下載
- 什么是現(xiàn)場可編程邏輯陣列?它有哪些特點和應用? 485次閱讀
- 可編程片上系統(tǒng)是什么意思 399次閱讀
- 現(xiàn)場可編程門陣列的原理和應用 457次閱讀
- 現(xiàn)場可編程門陣列是什么 2217次閱讀
- 可編程邏輯器件測試方法 1160次閱讀
- 如何制作一個簡單的2步Arduino可編程定時器電路 1980次閱讀
- 如何制作一個簡單的2步Arduino可編程定時器電路 4220次閱讀
- 可編程電源的結構 可編程電源的使用事項 856次閱讀
- 可編程電源的原理 可編程電源的優(yōu)缺點 2150次閱讀
- 可編程控制器的特點有哪些 8439次閱讀
- dfrobot可編程游戲手柄 介紹 2238次閱讀
- 利用儀表放大器獲得可編程增益的方法是什么? 5845次閱讀
- 可編程電源應用與選型詳解 1.3w次閱讀
- 可編程控制器基本知識_可編程控制器原理及應用 5.8w次閱讀
- 可編程電源簡介 2067次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多