Съдържание:

Модул за измерване на мощност за Arduino: 9 стъпки (със снимки)
Модул за измерване на мощност за Arduino: 9 стъпки (със снимки)

Видео: Модул за измерване на мощност за Arduino: 9 стъпки (със снимки)

Видео: Модул за измерване на мощност за Arduino: 9 стъпки (със снимки)
Видео: Контрольная лампа переменного тока с диммером Arduino AC 2024, Юли
Anonim
Модул за измерване на мощност за Arduino
Модул за измерване на мощност за Arduino
Модул за измерване на мощност за Arduino
Модул за измерване на мощност за Arduino
Модул за измерване на мощност за Arduino
Модул за измерване на мощност за Arduino

Здравейте на всички, надявам се да се справяте отлично! В тази инструкция ще ви покажа как направих този модул за измерване на мощност/ ватметър за използване с дъска Arduino. Този измервателен уред може да изчисли консумираната мощност от и DC натоварване. Заедно със захранването, този модул може да ни даде и точни показания на напрежение и ток. Той може лесно да измерва ниско напрежение (около 2V) и ниски токове, до 50 mA с грешка не повече от 20mA. Точността зависи от избора на компоненти въз основа на вашите изисквания.

Консумативи

  • IC LM358 двоен OP-AMP
  • 8 -пинова IC база
  • Шунтиращ резистор (8,6 милиома в моя случай)
  • Резистори: 100K, 10K, 2.2K, 1K (1/2 вата)
  • Кондензатори: 3 * 0,1uF керамични кондензатори
  • Veroboard или нулева дъска
  • Винтови клеми
  • Поялник и спойка
  • Arduino Uno или друга съвместима платка
  • OLED дисплей
  • Свързване на жични кабели

Стъпка 1: Събиране на необходимите компоненти

Събиране на необходимите компоненти
Събиране на необходимите компоненти

Този проект използва много прости и лесни за получаване компоненти: те включват резистори, керамични кондензатори, операционен усилвател и вероборд за прототипиране.

Изборът и стойността на компонентите зависят от вида на приложението и обхвата на мощност, който искате да измерите.

Стъпка 2: Принципът на работа

Принципът на работа
Принципът на работа
Принципът на работа
Принципът на работа
Принципът на работа
Принципът на работа
Принципът на работа
Принципът на работа

Работата на захранващия модул се основава на две концепции на теорията на веригата и основното електричество: Концепцията на делителя на напрежение за измерване на входното напрежение и Закона на Ом за изчисляване на тока, протичащ през веригата. Използваме шунтиращ резистор, за да създадем много малък спад на напрежението върху него. Този спад на напрежението е пропорционален на количеството ток, протичащ през шунта. Това малко напрежение, когато се усилва от операционен усилвател, може да се използва като вход към микроконтролер, който може да бъде програмиран да ни даде текущата стойност. Операционният усилвател се използва като неинвертиращ усилвател, където усилването се определя от стойностите на обратната връзка резистор R2 и R1. Използването на неинвертираща конфигурация ни позволява да имаме обща основа като измервателна отправна точка. За тази цел токът се измерва от долната страна на веригата. За моето приложение избрах печалба от 46, като използвах 100K и 2.2K резистор като мрежа за обратна връзка. Измерването на напрежението се извършва с помощта на верига с делител на напрежение, която разделя входното напрежение пропорционално на използваната резисторна мрежа.

Както текущата стойност от OP-усилвателя, така и стойността на напрежението от разделителната мрежа могат да се подават в два аналогови входа на arduino, така че да можем да изчислим консумираната мощност от товар.

Стъпка 3: Обединяване на частите

Обединяване на частите
Обединяване на частите
Обединяване на частите
Обединяване на частите
Обединяване на частите
Обединяване на частите

Нека започнем изграждането на нашия захранващ модул, като решим позицията на винтовите клеми за входно и изходно свързване. След маркиране на подходящите позиции, запояваме винтовите клеми и шунтиращия резистор на място.

Стъпка 4: Добавяне на части за мрежата с напрежение

Добавяне на части за мрежата с напрежение
Добавяне на части за мрежата с напрежение
Добавяне на части за мрежата с напрежение
Добавяне на части за мрежата с напрежение
Добавяне на части за мрежата с напрежение
Добавяне на части за мрежата с напрежение

За измерване на входното напрежение използвам мрежа от делители на напрежение от 10K и 1K. Добавих и 0,1 uF кондензатор към 1K резистора, за да изгладя напреженията.

Стъпка 5: Добавяне на части за мрежата Current Sense

Добавяне на части за текущата Sense мрежа
Добавяне на части за текущата Sense мрежа
Добавяне на части за текущата Sense мрежа
Добавяне на части за текущата Sense мрежа
Добавяне на части за текущата Sense мрежа
Добавяне на части за текущата Sense мрежа
Добавяне на части за текущата Sense мрежа
Добавяне на части за текущата Sense мрежа

Токът се измерва чрез изчисляване и усилване на спада на напрежението върху шунтиращия резистор с предварително дефинирано усилване, зададено от резисторната мрежа. Използва се режим на неинвертиращо усилване. Желателно е следите от спойката да са малки, за да се избегне нежелан спад на напрежението.

Стъпка 6: Завършване на останалите връзки и завършване на изграждането

Завършване на останалите връзки и завършване на изграждането
Завършване на останалите връзки и завършване на изграждането
Завършване на останалите връзки и завършване на изграждането
Завършване на останалите връзки и завършване на изграждането
Завършване на останалите връзки и завършване на изграждането
Завършване на останалите връзки и завършване на изграждането

Когато мрежите за напрежение и ток са свързани и запоени, е време да запоявате щифтовете на мъжкия хедър и да направите необходимите връзки на изходи за захранване и сигнал. Модулът ще се захранва от стандартното работно напрежение от 5 волта, което лесно можем да получим от платка arduino. Двата изхода за измерване на напрежението ще бъдат свързани към аналоговите входове на arduino.

Стъпка 7: Свързване на модула с Arduino

Свързване на модула с Arduino
Свързване на модула с Arduino
Свързване на модула с Arduino
Свързване на модула с Arduino
Свързване на модула с Arduino
Свързване на модула с Arduino
Свързване на модула с Arduino
Свързване на модула с Arduino

Тъй като модулът е завършен, най -накрая е време да го свържете с Arduino и да го стартирате. За да видя стойностите, използвах OLED дисплей, който използва I2C протокол за комуникация с arduino. Показаните на екрана параметри са напрежение, ток и мощност.

Стъпка 8: Код на проекта и електрическа схема

Код на проекта и електрическа схема
Код на проекта и електрическа схема

В тази стъпка съм приложил схемата на веригата и кода на захранващия модул (преди това бях прикачил.ino и.txt файла, съдържащ кода, но някаква грешка на сървъра причини кода да бъде недостъпен или нечетлив за потребителите, затова написах целия код в тази стъпка. Знам, че това не е добър начин за споделяне на кода:(). Чувствайте се свободни да промените този код според вашите изисквания. Надявам се този проект да ви е бил полезен. Моля, споделете отзивите си в коментарите. Наздраве!

#включва

#включва

#включва

#включва

#define OLED_RESET 4 Adafruit_SSD1306 дисплей (OLED_RESET);

поплавък val = 0;

поплавъчен ток = 0;

плаващо напрежение = 0;

плаваща мощност = 0;

void setup () {

pinMode (A0, INPUT);

pinMode (A1, INPUT);

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // инициализираме с I2C addr 0x3C (за 128x32) display.display ();

забавяне (2000);

// Изчистване на буфера.

display.clearDisplay ();

display.setTextSize (1);

display.setCursor (0, 0);

display.setTextColor (БЯЛ);

Serial.begin (9600); // За да видите стойностите на серийния монитор

}

void loop () {

// вземане на средната стойност за стабилни показания

for (int i = 0; i <20; i ++) {

ток = ток + analogRead (A0);

напрежение = напрежение + аналогово четене (A1); }

ток = (ток/20); ток = ток * 0,0123 * 5,0; // калибрираща стойност, която се променя според използваните компоненти

напрежение = (напрежение/20); напрежение = напрежение * 0,0508 * 5,0; // калибрираща стойност, която се променя според използваните компоненти

мощност = напрежение*ток;

// отпечатване на стойностите на серийния монитор

Serial.print (напрежение);

Serial.print ("");

Serial.print (текущ);

Serial.print ("");

Serial.println (мощност);

// отпечатване на стойностите на OLED дисплея

display.setCursor (0, 0);

display.print ("Напрежение:");

display.print (напрежение);

display.println ("V");

display.setCursor (0, 10);

display.print ("Текущ:");

display.print (текущ);

display.println ("A");

display.setCursor (0, 20);

display.print ("Захранване:");

display.print (захранване);

display.println ("W");

display.display ();

забавяне (500); // честота на опресняване, зададена от закъснението

display.clearDisplay ();

}

Препоръчано: