洪嵐峰 發表於 2023-4-9 11:34:35

STM32製作USB電壓電流表

以下是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();
}

發表於 1970-1-1 08:00:00

頁: [1]
查看完整版本: STM32製作USB電壓電流表