Sadržaj:
- Supplies
- Korak 1: Prikupljanje potrebnih komponenti
- Korak 2: Princip rada
- Korak 3: Spajanje dijelova zajedno
- Korak 4: Dodavanje dijelova za mrežu osjetnika napona
- Korak 5: Dodavanje dijelova za mrežu trenutnog smisla
- Korak 6: Dovršenje preostalih veza i dovršetak izgradnje
- Korak 7: Povezivanje modula s Arduinom
- Korak 8: Kod projekta i kružni dijagram
- Korak 9: Video vodič
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Pozdrav svima, nadam se da vam ide odlično! U ovom uputstvu ću vam pokazati kako sam napravio ovaj modul mjerača snage/ vatmetra za upotrebu sa Arduino pločom. Ovaj mjerač snage može izračunati potrošnju energije i istosmjernog opterećenja. Uz snagu, ovaj modul može nam dati i tačna očitanja napona i struje. Lako može mjeriti niske napone (oko 2 V) i male struje, do 50 mA s greškom ne većom od 20 mA. Tačnost zavisi od izbora komponenti na osnovu vaših zahteva.
Supplies
- IC LM358 dvostruki OP-AMP
- 8 -polna IC baza
- Šant otpornik (8,6 miliOhma u mom slučaju)
- Otpornici: 100K, 10K, 2.2K, 1K (1/2 vata)
- Kondenzatori: 3 * 0,1uF keramički kondenzatori
- Veroboard ili nulta tabla
- Vijčane stezaljke
- Lemilica i lemljenje
- Arduino Uno ili bilo koju drugu kompatibilnu ploču
- OLED ekran
- Priključivanje žica za žitne žice
Korak 1: Prikupljanje potrebnih komponenti
Ovaj projekt koristi vrlo jednostavne i lako dostupne komponente: one uključuju otpornike, keramičke kondenzatore, operativno pojačalo i veroboard za izradu prototipova.
Izbor i vrijednost komponenti ovise o vrsti aplikacije i rasponu snage koju želite mjeriti.
Korak 2: Princip rada
Rad modula za napajanje zasnovan je na dva koncepta teorije kola i osnovne električne energije: Koncept razdjelnika napona za mjerenje ulaznog napona i Ohmov zakon za izračunavanje struje koja prolazi kroz kolo. Koristimo odvojni otpornik za stvaranje vrlo malog pada napona na njemu. Ovaj pad napona je proporcionalan količini struje koja prolazi kroz šant. Ovaj mali napon kada se pojača operativnim pojačalom može se koristiti kao ulaz u mikrokontroler koji se može programirati da nam da trenutnu vrijednost. Operativno pojačalo se koristi kao neinvertirajuće pojačalo gdje je dobitak određen vrijednostima povratne sprege otpornik R2 i R1. Korištenje neinvertirajuće konfiguracije omogućuje nam da imamo zajedničku osnovu kao mjernu referencu. Za to se struja mjeri na donjoj strani kola. Za svoju aplikaciju odabrao sam dobitak od 46 koristeći 100K i 2.2K otpornik kao povratnu mrežu. Mjerenje napona vrši se pomoću kruga razdjelnika napona koji dijeli ulazni napon proporcionalno korištenoj mreži otpornika.
I vrijednost struje iz OP-pojačala i vrijednost napona iz razdjelne mreže mogu se unijeti u dva analogna ulaza arduina tako da možemo izračunati potrošnju energije opterećenja.
Korak 3: Spajanje dijelova zajedno
Počnimo s izgradnjom našeg energetskog modula odlučivanjem o položaju vijčanih stezaljki za ulaznu i izlaznu vezu. Nakon označavanja odgovarajućih položaja, zalemimo vijčane stezaljke i otpornik za odvajanje.
Korak 4: Dodavanje dijelova za mrežu osjetnika napona
Za mjerenje ulaznog napona koristim mrežu razdjelnika napona od 10K i 1K. Dodao sam i 0,1 uF kondenzator preko 1K otpornika kako bi se izgladili naponi. Mreža s naponom je lemljena u blizini ulaznog terminala
Korak 5: Dodavanje dijelova za mrežu trenutnog smisla
Struja se mjeri izračunavanjem i pojačavanjem pada napona na šantu otpornika s unaprijed definiranim pojačanjem koje postavlja mreža otpornika. Koristi se način rada bez invertiranja pojačanja. Poželjno je da tragovi lemljenja budu mali kako bi se izbjegao neželjeni pad napona.
Korak 6: Dovršenje preostalih veza i dovršetak izgradnje
S povezivanjem i lemljenjem mreža osjetnika napona i struje, vrijeme je za lemljenje muških iglica zaglavlja i uspostavljanje potrebnih veza izlaza napajanja i signala. Modul će se napajati standardnim radnim naponom od 5 volti koji lako možemo dobiti s arduino ploče. Dva izlaza osjetnika napona bit će spojena na analogne ulaze arduina.
Korak 7: Povezivanje modula s Arduinom
Budući da je modul završen, konačno je vrijeme da ga povežete s Arduinom i pokrenete. Da bih vidio vrijednosti, koristio sam OLED ekran koji je koristio I2C protokol za komunikaciju s arduinom. Parametri prikazani na ekranu su Voltage, Current i Power.
Korak 8: Kod projekta i kružni dijagram
U ovaj sam korak priložio dijagram kruga i kôd modula za napajanje (prethodno sam priložio.ino i.txt datoteku koja sadrži kôd, ali je zbog neke greške poslužitelja kôd bio nedostupan ili nečitljiv korisnicima, pa sam napisao cijeli koda u ovom koraku. Znam da to nije dobar način za dijeljenje koda:(). Slobodno izmijenite ovaj kôd u skladu sa svojim zahtjevima. Nadam se da vam je ovaj projekt bio od pomoći. Podijelite svoje povratne informacije u komentarima. Živjeli!
#include
#include
#include
#include
#define OLED_RESET 4 Adafruit_SSD1306 ekran (OLED_RESET);
plovak val = 0;
plovna struja = 0;
plivajući napon = 0;
snaga plovka = 0;
void setup () {
pinMode (A0, INPUT);
pinMode (A1, INPUT);
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // inicijalizira sa I2C addr 0x3C (za 128x32) display.display ();
kašnjenje (2000);
// Brisanje međuspremnika.
display.clearDisplay ();
display.setTextSize (1);
display.setCursor (0, 0);
display.setTextColor (BIJELO);
Serial.begin (9600); // Da biste vidjeli vrijednosti na serijskom monitoru
}
void loop () {{100} {101}
// uzimajući prosjek za stabilna očitanja
za (int i = 0; i <20; i ++) {
struja = struja + analogno čitanje (A0);
napon = napon + analogno čitanje (A1); }
struja = (struja/20); struja = struja * 0,0123 * 5,0; // kalibracijska vrijednost, koja se mijenja u skladu s korištenim komponentama
napon = (napon/20); napon = napon * 0,0508 * 5,0; // kalibracijska vrijednost, koja se mijenja u skladu s korištenim komponentama
snaga = napon*struja;
// ispis vrijednosti na serijskom monitoru
Serial.print (napon);
Serial.print ("");
Serial.print (trenutni);
Serial.print ("");
Serial.println (napajanje);
// ispisuje vrijednosti na OLED ekranu
display.setCursor (0, 0);
display.print ("Napon:");
display.print (napon);
display.println ("V");
display.setCursor (0, 10);
display.print ("Trenutno:");
display.print (trenutno);
display.println ("A");
display.setCursor (0, 20);
display.print ("Napajanje:");
display.print (napajanje);
display.println ("W");
display.display ();
kašnjenje (500); // učestalost osvježavanja određena kašnjenjem
display.clearDisplay ();
}