Kazalo:

Modul za merjenje moči DIY za Arduino: 9 korakov (s slikami)
Modul za merjenje moči DIY za Arduino: 9 korakov (s slikami)

Video: Modul za merjenje moči DIY za Arduino: 9 korakov (s slikami)

Video: Modul za merjenje moči DIY za Arduino: 9 korakov (s slikami)
Video: Измерьте ток до 500A с помощью шунтирующего резистора с помощью Arduino 2024, Julij
Anonim
Modul za merjenje moči DIY za Arduino
Modul za merjenje moči DIY za Arduino
Modul za merjenje moči DIY za Arduino
Modul za merjenje moči DIY za Arduino
Modul za merjenje moči DIY za Arduino
Modul za merjenje moči DIY za Arduino

Pozdravljeni vsi, upam, da vam gre odlično! V tem navodilu vam bom pokazal, kako sem naredil ta modul merilnika moči/ vatmetra za uporabo s ploščo Arduino. Ta merilnik moči lahko izračuna porabo energije in enosmerne obremenitve. Poleg moči nam lahko ta modul poda tudi natančne odčitke napetosti in toka. Z lahkoto lahko meri nizke napetosti (okoli 2 V) in nizke tokove, tako nizke kot 50 mA z napako največ 20 mA. Natančnost je odvisna od izbire komponent glede na vaše zahteve.

Zaloge

  • IC LM358 dvojni OP-AMP
  • 8 -polna IC osnova
  • Shunt upor (8,6 miliOhmov v mojem primeru)
  • Upori: 100K, 10K, 2.2K, 1K (1/2 W)
  • Kondenzatorji: 3 * 0,1uF keramični kondenzatorji
  • Veroboard ali zero board
  • Vijačne sponke
  • Spajkalnik in spajkanje
  • Arduino Uno ali katero koli drugo združljivo ploščo
  • OLED zaslon
  • Priključitev žic za drobtine

1. korak: Zberite potrebne komponente

Zbiranje potrebnih komponent
Zbiranje potrebnih komponent

Ta projekt uporablja zelo enostavne in enostavne komponente: vključujejo upore, keramične kondenzatorje, operacijski ojačevalnik in veroboard za izdelavo prototipov.

Izbira in vrednost komponent sta odvisni od vrste aplikacije in obsega moči, ki ga želite izmeriti.

2. korak: Načelo delovanja

Načelo delovanja
Načelo delovanja
Načelo delovanja
Načelo delovanja
Načelo delovanja
Načelo delovanja
Načelo delovanja
Načelo delovanja

Delovanje napajalnega modula temelji na dveh konceptih teorije vezja in osnovne električne energije: Koncept delilnika napetosti za merjenje vhodne napetosti in Ohmov zakon za izračun toka, ki teče skozi vezje. Za ustvarjanje zelo majhnega padca napetosti na njem uporabljamo shunt upor. Ta padec napetosti je sorazmeren s količino toka, ki teče skozi šant. Ta majhna napetost, ko jo ojača operacijski ojačevalnik, se lahko uporabi kot vhod v mikrokrmilnik, ki ga lahko programiramo tako, da nam da trenutno vrednost. Operacijski ojačevalnik se uporablja kot neinvertirni ojačevalnik, kjer je dobiček določen z vrednostmi povratnih informacij upor R2 in R1. Uporaba neinvertirne konfiguracije nam omogoča, da imamo kot merilno referenco skupno podlago. V ta namen se tok meri na spodnji strani vezja. Za svojo aplikacijo sem izbral dobiček 46 z uporabo upora 100K in 2.2K kot povratnega omrežja. Merjenje napetosti poteka z vezjem delilnika napetosti, ki deli vhodno napetost sorazmerno z uporabljenim uporovnim omrežjem.

Tako trenutno vrednost iz OP-Amp kot vrednost napetosti iz razdelilnega omrežja lahko vnesemo v dva analogna vhoda arduina, tako da lahko izračunamo moč, ki jo porabi obremenitev.

Korak: Združite dele.

Združevanje delov.
Združevanje delov.
Združevanje delov.
Združevanje delov.
Združevanje delov.
Združevanje delov.

Začnimo z gradnjo našega napajalnega modula z odločitvijo o položaju vijačnih sponk za vhodno in izhodno povezavo. Ko označimo ustrezne položaje, spajamo vijačne sponke in shunt upor.

4. korak: Dodajanje delov za omrežje napetosti

Dodajanje delov za omrežje napetosti
Dodajanje delov za omrežje napetosti
Dodajanje delov za omrežje napetosti
Dodajanje delov za omrežje napetosti
Dodajanje delov za omrežje napetosti
Dodajanje delov za omrežje napetosti

Za zaznavanje vhodne napetosti uporabljam omrežje delilnika napetosti 10K in 1K. Čez 1K upor sem dodal še kondenzator 0,1 uF, da izravnam napetosti. Omrežje za zaznavanje napetosti je spajkano blizu vhodnega priključka

5. korak: Dodajanje delov za trenutno omrežje Sense

Dodajanje delov za trenutno omrežje Sense
Dodajanje delov za trenutno omrežje Sense
Dodajanje delov za trenutno omrežje Sense
Dodajanje delov za trenutno omrežje Sense
Dodajanje delov za trenutno omrežje Sense
Dodajanje delov za trenutno omrežje Sense
Dodajanje delov za trenutno omrežje Sense
Dodajanje delov za trenutno omrežje Sense

Tok se meri z izračunom in povečanjem padca napetosti na šantu upornika z vnaprej določenim dobičkom, ki ga nastavi mreža upora. Uporablja se način neinvertirajočega ojačanja. Zaželeno je, da so sledi spajkanja majhne, da se izognete neželenemu padcu napetosti.

6. korak: Dokončanje preostalih povezav in dokončanje gradnje

Dokončanje preostalih povezav in dokončanje gradnje
Dokončanje preostalih povezav in dokončanje gradnje
Dokončanje preostalih povezav in dokončanje gradnje
Dokončanje preostalih povezav in dokončanje gradnje
Dokončanje preostalih povezav in dokončanje gradnje
Dokončanje preostalih povezav in dokončanje gradnje

Ko so omrežja za zaznavanje napetosti in toka povezana in spajkana, je čas, da spajkate moške zatiče glave in izvedete potrebne povezave izhodov napajanja in signala. Modul bo napajal standardna delovna napetost 5 voltov, ki jo zlahka dobimo z arduino plošče. Dva izhoda za zaznavanje napetosti bosta povezana z analognimi vhodi arduina.

Korak 7: Povezovanje modula z Arduinom

Povezovanje modula z Arduinom
Povezovanje modula z Arduinom
Povezovanje modula z Arduinom
Povezovanje modula z Arduinom
Povezovanje modula z Arduinom
Povezovanje modula z Arduinom
Povezovanje modula z Arduinom
Povezovanje modula z Arduinom

Ko je modul končan, je končno čas, da ga povežete z Arduinom in ga zaženete. Za ogled vrednosti sem uporabil zaslon OLED, ki je za komunikacijo z arduinom uporabljal protokol I2C. Na zaslonu so prikazani parametri napetost, tok in moč.

8. korak: Koda projekta in vezja

Koda projekta in vezja
Koda projekta in vezja

V tem koraku sem priložil vezje in kodo napajalnega modula (prej sem priložil datoteko.ino in.txt, ki vsebuje kodo, vendar je zaradi napake strežnika koda nedostopna ali neberljiva za uporabnike, zato sem napisal celotno kodo v tem koraku. Vem, da to ni dober način za deljenje kode:(). Kodo lahko spremenite glede na vaše zahteve. Upam, da vam je bil ta projekt v pomoč. Prosimo, delite svoje povratne informacije v komentarjih. Na zdravje!

#vključi

#vključi

#vključi

#vključi

#define OLED_RESET 4 Zaslon Adafruit_SSD1306 (OLED_RESET);

plavajoči val = 0;

plavajoči tok = 0;

plavajoča napetost = 0;

moč plavajočega = 0;

void setup () {

pinMode (A0, INPUT);

pinMode (A1, INPUT);

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // inicializiramo z zaslonom I2C addr 0x3C (za 128x32) display.display ();

zamuda (2000);

// Počisti vmesni pomnilnik.

display.clearDisplay ();

display.setTextSize (1);

display.setCursor (0, 0);

display.setTextColor (BELO);

Serial.begin (9600); // Za ogled vrednosti na serijskem monitorju

}

void loop () {

// pri povprečju za stabilne odčitke

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

tok = tok + analogno branje (A0);

napetost = napetost + analogno branje (A1); }

tok = (tok/20); tok = tok * 0,0123 * 5,0; // kalibracijska vrednost, ki se spremeni glede na uporabljene komponente

napetost = (napetost/20); napetost = napetost * 0,0508 * 5,0; // kalibracijska vrednost, ki se spremeni glede na uporabljene komponente

moč = napetost*tok;

// tiskanje vrednosti na serijski monitor

Serial.print (napetost);

Serial.print ("");

Serial.print (trenutno);

Serial.print ("");

Serial.println (moč);

// tiskanje vrednosti na zaslonu OLED

display.setCursor (0, 0);

display.print ("Napetost:");

display.print (napetost);

display.println ("V");

display.setCursor (0, 10);

display.print ("Trenutni:");

display.print (trenutno);

display.println ("A");

display.setCursor (0, 20);

display.print ("Napajanje:");

display.print (moč);

display.println ("W");

display.display ();

zamuda (500); // hitrost osveževanja, določena z zakasnitvijo

display.clearDisplay ();

}

Priporočena: