- UID
- 373967
- 帖子
- 8893
- 主題
- 2609
- 精華
- 0
- 積分
- 1000
- 楓幣
- 19
- 威望
- 977
- 存款
- 34995
- 贊助金額
- 0
- 推廣
- 0
- GP
- 1205
- 閱讀權限
- 70
- 在線時間
- 456 小時
- 註冊時間
- 2023-1-12
- 最後登入
- 2024-11-27
|
以下是STM32製作USB電壓電流表的相關資訊:
零件規格:
STM32F103C8T6 開發板
OLED 顯示屏
USB 轉 TTL 模塊
INA219 電流傳感器模塊
連結腳位:
將 USB 轉 TTL 模塊的 VCC 腳位接到STM32開發板的5V腳位,GND 腳位接到 GND 腳位。
INA219 模塊的 VCC 腳位接到STM32開發板的5V腳位,GND 腳位接到 GND 腳位,SCL 腳位接到PB10腳位,SDA 腳位接到PB11腳位。
OLED 顯示屏的VCC腳位接到STM32開發板的5V腳位,GND 腳位接到 GND 腳位,SCL 腳位接到PB6腳位,SDA 腳位接到PB7腳位。
程式碼如下所示:
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Wire.h>
#include <Adafruit_INA219.h>
Adafruit_SSD1306 display(128, 32, &Wire, -1);
Adafruit_INA219 ina219;
void setup() {
// 初始化OLED顯示屏
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(2000);
display.clearDisplay();
// 初始化INA219電流傳感器模塊
ina219.begin();
ina219.setCalibration_16V_400mA();
}
void loop() {
float shuntvoltage = 0;
float busvoltage = 0;
float current_mA = 0;
float power_mW = 0;
// 讀取INA219模塊的電壓和電流
shuntvoltage = ina219.getShuntVoltage_mV();
busvoltage = ina219.getBusVoltage_V();
current_mA = ina219.getCurrent_mA();
power_mW = ina219.getPower_mW();
// 在OLED顯示屏上顯示電壓和電流
display.setCursor(0, 0);
display.print("Voltage: ");
display.print(busvoltage);
display.print("V");
display.setCursor(0, 10);
display.print("Current: ");
display.print(current_mA);
display.print("mA");
display.display();
delay(500);
display.clearDisplay();
} |
|