Измерение напряжения STM32 (Arduino IDE)

Измерение напряжения при помощи аналогового входа STM32 аналогично намерению напряжения в Arduino в среде программирования Arduino IDE. Так как АЦП STM32 12 бит (int 0…4095), то при измерении напряжения можно получить достаточно большую точность.

Ниже приведен простой пример скетча позволяющий реализовать измерение напряжения, информация выводится в монитор порта.

Перед заливкой скетча в STM32 Вам необходимо ознакомиться со следующей статьей — STM32 Arduino IDE

int u;
 
void setup() {
   Serial.begin(9600);
   pinMode(PA5, INPUT_ANALOG);
 
}
 
void loop() {
 u = analogRead(PA5);
 Serial.println(u);
 delay(1000);
}

Максимальное напряжение подаваемое на вход АЦП STM32 не должно превышать напряжение питания 3.3 В.

На этом примере можно сделать простой, но точный вольтметр с пределом измерения 3.3 В, при измерении напряжения которое выше 3.3 В необходимо использовать делитель напряжения. Для вывода информации будет использован LCD1602 c I2C модулем на базе микросхем PCF8574, что позволяют подключить символьный дисплей 1602 к плате STM32 всего по двум проводам SDA и SCL (B7 и B6).

#include <Wire.h> 
#include <LiquidCrystal_I2C.h> // liquidcrystali2c.zip
LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей
 
int u,u_sum,i;
const float u3300 = 3280;// Замерьте напряжение 3.3 В и укажите его в мВ
 
void setup() {
   Serial.begin(9600);
   lcd.init();                     
   lcd.backlight();// Включаем подсветку дисплея
 
   pinMode(PA5, INPUT_ANALOG);
 
}
 
void loop() {
 for(i=0;i<10;i++){
 u = analogRead(PA5);
 delay(100);
 u_sum = u_sum + u;
 }
 u = u_sum/10;u_sum=0;
 Serial.println(u);
    lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("U = ");
 float u_iz = u3300/4095*u/1000;
 lcd.print(u_iz,3);
 lcd.print(" V");
 lcd.setCursor(0, 1);
 lcd.print(u);
}

Для увеличения точности измерения желательно измерить напряжения питания платы STM32, которое является опорным для АЦП. После измерения напряжения питания укажите его в переменной:

const float u3300 = 3300; // в мВ

Добавить комментарий

Войти с помощью: