Innehållsförteckning:

DIY kraftmätningsmodul för Arduino: 9 steg (med bilder)
DIY kraftmätningsmodul för Arduino: 9 steg (med bilder)

Video: DIY kraftmätningsmodul för Arduino: 9 steg (med bilder)

Video: DIY kraftmätningsmodul för Arduino: 9 steg (med bilder)
Video: G4 - state of the art instrument for weighing and force measurement 2024, Juli
Anonim
DIY kraftmätningsmodul för Arduino
DIY kraftmätningsmodul för Arduino
DIY kraftmätningsmodul för Arduino
DIY kraftmätningsmodul för Arduino
DIY kraftmätningsmodul för Arduino
DIY kraftmätningsmodul för Arduino

Hej alla, jag hoppas att ni har det bra! I denna instruerbara ska jag visa dig hur jag gjorde denna effektmätare/ Wattmeter -modul för användning med ett Arduino -kort. Denna effektmätare kan beräkna strömförbrukningen och DC -belastning. Tillsammans med ström kan denna modul också ge oss exakta avläsningar av spänning och ström. Den kan enkelt mäta låga spänningar (runt 2V) och låga strömmar, så låga som 50 mA med ett fel på högst 20mA. Noggrannheten beror på valet av komponenter baserat på dina krav.

Tillbehör

  • IC LM358 dubbel OP-AMP
  • 8 -stifts IC -bas
  • Shuntmotstånd (8,6 milliOhm i mitt fall)
  • Motstånd: 100K, 10K, 2.2K, 1K (1/2watt)
  • Kondensatorer: 3 * 0.1uF keramiska kondensatorer
  • Veroboard eller zero board
  • Skruvplintar
  • Lödkolv och löd
  • Arduino Uno eller något annat kompatibelt kort
  • OLED -skärm
  • Anslutning av brödtrådar

Steg 1: Samla de nödvändiga komponenterna

Samla de nödvändiga komponenterna
Samla de nödvändiga komponenterna

Detta projekt använder mycket enkla och lätta att få komponenter: de inkluderar motstånd, keramiska kondensatorer, operationsförstärkare och en veroboard för prototyper.

Valet och värdet av komponenter beror på typ av applikation och effektområde som du vill mäta.

Steg 2: Arbetsprincipen

Arbetsprincipen
Arbetsprincipen
Arbetsprincipen
Arbetsprincipen
Arbetsprincipen
Arbetsprincipen
Arbetsprincipen
Arbetsprincipen

Effektmodulens funktion är baserad på två koncept av kretsteori och grundläggande elektricitet: Spänningsdelarkonceptet för mätning av ingångsspänningen och Ohms lag för att beräkna strömmen som strömmar genom kretsen. Vi använder ett shuntmotstånd för att skapa ett mycket litet spänningsfall över det. Detta spänningsfall är i proportion till mängden ström som strömmar genom shunten. Denna lilla spänning när den förstärks av en operationsförstärkare kan användas som en ingång till en mikrokontroller som kan programmeras för att ge oss det aktuella värdet. Driftförstärkaren används som en icke -inverterande förstärkare där förstärkningen bestäms av värdena på återkopplingen motstånd R2 och R1. Genom att använda den icke inverterande konfigurationen kan vi ha en gemensam grund som mätreferens. För detta mäts strömmen på kretsens låga sida. För min applikation har jag valt en förstärkning på 46 genom att använda 100K och 2.2K motstånd som återkopplingsnätverk. Spänningsmätningen görs med hjälp av en spänningsdelarkrets som delar ingångsspänningen i proportion till det använda motståndsnätverket.

Både strömvärdet från OP-förstärkaren och spänningsvärdet från avdelningsnätet kan matas in i två analoga ingångar på arduino så att vi kan beräkna effekten som förbrukas av en belastning.

Steg 3: Samla delarna.

Att föra ihop delarna.
Att föra ihop delarna.
Att föra ihop delarna.
Att föra ihop delarna.
Att föra ihop delarna.
Att föra ihop delarna.

Låt oss börja bygga vår kraftmodul genom att bestämma skruvterminalernas läge för ingångs- och utgångsanslutning. Efter att ha markerat lämpliga positioner, löder vi skruvplintarna och shuntmotståndet på plats.

Steg 4: Lägga till delar för Voltage Sense Network

Lägga till delar för Voltage Sense Network
Lägga till delar för Voltage Sense Network
Lägga till delar för Voltage Sense Network
Lägga till delar för Voltage Sense Network
Lägga till delar för Voltage Sense Network
Lägga till delar för Voltage Sense Network

För ingångsspänningsavkänning använder jag ett spänningsdelningsnätverk på 10K och 1K. Jag lade också till en 0,1 uF kondensator över 1K -motståndet för att jämna ut spänningarna. Spänningsavkänningsnätet löds nära ingången

Steg 5: Lägga till delar för Current Sense Network

Lägga till delar för Current Sense Network
Lägga till delar för Current Sense Network
Lägga till delar för Current Sense Network
Lägga till delar för Current Sense Network
Lägga till delar för Current Sense Network
Lägga till delar för Current Sense Network
Lägga till delar för Current Sense Network
Lägga till delar för Current Sense Network

Strömmen mäts genom att beräkna och förstärka spänningsfallet över shuntmotståndet med en fördefinierad förstärkning inställd av motståndsnätverket. Icke inverterande förstärkningsläge används. Det är önskvärt att hålla lödspåren små för att undvika oönskat spänningsfall.

Steg 6: Slutföra återstående anslutningar och slutföra byggnaden

Slutföra de återstående anslutningarna och avsluta bygget.
Slutföra de återstående anslutningarna och avsluta bygget.
Slutföra de återstående anslutningarna och avsluta bygget.
Slutföra de återstående anslutningarna och avsluta bygget.
Slutföra de återstående anslutningarna och avsluta bygget.
Slutföra de återstående anslutningarna och avsluta bygget.

Med spännings- och strömavkänningsnätverk anslutna och lödda, är det dags att löda de manliga huvudstiften och göra nödvändiga anslutningar av kraft- och signalutgångar. Modulen drivs av standardspänningen på 5 volt som vi enkelt kan få från ett arduino -kort. De två spänningsavkänningsutgångarna kommer att anslutas till de analoga ingångarna på arduinoen.

Steg 7: Anslutning av modulen med Arduino

Anslutning av modulen med Arduino
Anslutning av modulen med Arduino
Ansluter modulen med Arduino
Ansluter modulen med Arduino
Anslutning av modulen med Arduino
Anslutning av modulen med Arduino
Anslutning av modulen med Arduino
Anslutning av modulen med Arduino

När modulen är klar är det nu äntligen dags att ansluta den till en Arduino och få den att köra. För att se värdena har jag använt en OLED -skärm som använde I2C -protokollet för att kommunicera med arduino. Parametrarna som visas på skärmen är spänning, ström och effekt.

Steg 8: Projektkod och kretsschema

Projektkod och kretsschema
Projektkod och kretsschema

Jag har bifogat kretsschemat och koden för effektmodulen i detta steg (tidigare hade jag bifogat.ino- och.txt -filen som innehåller koden men något serverfel orsakade att koden var otillgänglig eller oläslig för användare, så jag skrev hela kod i det här steget. Jag vet att det inte är ett bra sätt att dela koden:(). Ändra gärna den här koden enligt dina krav. Jag hoppas att det här projektet var till hjälp för dig. Dela gärna din feedback i kommentarerna. Skål!

#omfatta

#omfatta

#omfatta

#omfatta

#define OLED_RESET 4 Adafruit_SSD1306 display (OLED_RESET);

float val = 0;

flottörström = 0;

flottörspänning = 0;

flottörkraft = 0;

void setup () {

pinMode (A0, INPUT);

pinMode (A1, INPUT);

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // initiera med I2C addr 0x3C (för 128x32) display.display ();

fördröjning (2000);

// Rensa bufferten.

display.clearDisplay ();

display.setTextSize (1);

display.setCursor (0, 0);

display.setTextColor (VIT);

Serial.begin (9600); // För att se värdena på den seriella bildskärmen

}

void loop () {

// ta genomsnittet för stabila avläsningar

för (int i = 0; i <20; i ++) {

ström = ström + analogRead (A0);

spänning = spänning + analogRead (A1); }

ström = (ström/20); ström = ström * 0,0123 * 5,0; // kalibreringsvärde, ska ändras beroende på vilka komponenter som används

spänning = (spänning/20); spänning = spänning * 0,0508 * 5,0; // kalibreringsvärde, ska ändras beroende på vilka komponenter som används

effekt = spänning*ström;

// skriva ut värdena på den seriella bildskärmen

Serial.print (spänning);

Serial.print ("");

Serial.print (aktuell);

Serial.print ("");

Serial.println (ström);

// skriva ut värdena på OLED -skärmen

display.setCursor (0, 0);

display.print ("Spänning:");

display.print (spänning);

display.println ("V");

display.setCursor (0, 10);

display.print ("Current:");

display.print (aktuell);

display.println ("A");

display.setCursor (0, 20);

display.print ("Power:");

display.print (ström);

display.println ("W");

display.display ();

fördröjning (500); // uppdateringsfrekvens inställd av fördröjningen

display.clearDisplay ();

}

Rekommenderad: