Stap 7: Makeing de Circuit
Voor de berekening van de kracht en energie moeten we twee parameter. Voedingsspanning en huidige laden. Onze tool aanbod is 220V AC en genoeg voor een elektrische schok. De meting kan veilig worden gemaakt (vereisen geen hoogspanning werk) met behulp van een AC naar AC voedingsadapter of transformator. De transformator biedt isolatie tussen de boven- en onderlimieten AC spanning.
Voltage Sensor (AC/AC transformator)
AC naar AC power adapter of transformator kan komen in vele verschillende spanning waarderingen. Het eerste ding dat is belangrijk om te weten is de spanning van uw adapter. Ik heb een 220V naar 12V transformator gebruikt voor spanning meten.
Het uitgangssignaal van de transformator is een in de buurt van-sinusoïdale stroom. Hebt u een 12V voedingsadapter (RMS) de piek positief signaal moet plaatsvinden op + 16.97V en de piek negatief signaal moeten worden uitgevoerd op - 16.97V. Echter te wijten aan de slechte spanningsregeling met dit type adapter als de adapter is un-geladen (zoals in dit geval) de uitvoer is vaak rond 14V-16V (RMS) geven een spanning van de piek van rond 19V-23V. De output van de spanning van de transformator is evenredig aan de AC ingangsspanning.
Het signaal conditioning elektronica (Arduino, Edison) moet de output van de adapter omzetten in een golfvorm met een positieve piek die kleiner is dan 5V en een negatieve piek thats meer dan 0V en dus moeten we
- 1) schaal beneden de golfvorm en
- 2) toevoegen een offset zodat er geen negatieve component.
De golfvorm kan worden verkleind met behulp van een scheidingslijn van de spanning verbonden via de adapters-terminals en de offset (bias) kan worden toegevoegd met behulp van een spanningsbron gemaakt door een andere spanning divider verbonden via van de Arduino levering weergegeven in onderstaande figuur.
Weerstanden R2 en R1 vormen de spanning scheidingslijn die weegschaal beneden de lichtnetadapter wisselstroom en weerstanden R3 en R4 bieden de spanning bias. Condensator C1 biedt een lage impedantie-pad naar de grond voor de AC-signaal. R1 en R2 moet worden gekozen om een piek-spanning-productie van rond 1V, voor een AC-AC adapter met een AC-9V die RMS output dat een combinatie van de weerstand van 10k voor R1 en 100k voor R2 zou een geschikt output:
#include <IoTkit.h> // include IoTkit.h to use the Intel IoT Kit #include <Ethernet.h> // must be included to use IoTkit #include <aJSON.h> #include <LiquidCrystal.h> // create an object of the IoTkit class IoTkit iotkit; const int vSensorPin = A0; const int cSensorPin = A1; const int numberOfSamples = 3000; int sampleV, sampleC; float voltageV, voltageC; float instVoltage, instCurrent; float sumI, sumV, sumP; float realPower, apparentPower,reactivePower; float powerFactor, voltageRMS, currentRMS; unsigned long last_kWhTime, kWhTime; float kiloWattHour = 0.0; // RS, EN, D4, D5, D6, D7 LiquidCrystal lcd(7, 6, 2, 3, 4, 5); void setup() { // put your setup code here, to run once: pinMode(7, OUTPUT); // not needed for arduino pinMode(6, OUTPUT); // but must set as output for Edison LCD library pinMode(5, OUTPUT); pinMode(4, OUTPUT); pinMode(3, OUTPUT); pinMode(2, OUTPUT); iotkit.begin(); lcd.begin(20, 4); lcd.setCursor(0, 1); } void loop() { // put your main code here, to run repeatedly: calculatePower(); displayPower(); sendToCloud(); delay(2000); } void calculatePower(){ for(int i=0; i<numberOfSamples; i++){ sampleV = analogRead(vSensorPin); sampleC = analogRead(cSensorPin); voltageC = sampleC*5.0/1023.0; voltageV = sampleV*5.0/1023.0; instCurrent = (voltageC-2.5)/0.66; instVoltage = (voltageV-2.46)*7.8; sumV += instVoltage * instVoltage; sumI += instCurrent * instCurrent; sumP += abs(instVoltage * instCurrent); } voltageRMS = sqrt(sumV / numberOfSamples); currentRMS = sqrt(sumI / numberOfSamples); realPower = sumP / numberOfSamples; apparentPower = voltageRMS * currentRMS; powerFactor = realPower / apparentPower; reactivePower = sqrt(apparentPower * apparentPower - realPower * realPower); last_kWhTime = kWhTime; kWhTime = millis(); kiloWattHour += (realPower / 1000) * ((kWhTime - last_kWhTime) / 3600000.0); sumV = 0; sumI = 0; sumP = 0; } void displayPower(){ lcd.clear(); lcd.setCursor(0,0); //col,row lcd.print("Voltage: "); lcd.print((int)voltageRMS); lcd.print("V "); lcd.print("Current: "); lcd.print(currentRMS); lcd.print("A"); lcd.setCursor(0,1); lcd.print("Power: "); lcd.print(realPower); lcd.print("W "); lcd.print("pf: "); lcd.print(powerFactor); lcd.setCursor(0,2); lcd.print("VAR: "); lcd.print(reactivePower); lcd.print("VAR "); lcd.print("VA: "); lcd.print(apparentPower); lcd.print("VA"); lcd.setCursor(0,3); lcd.print("Energy used: "); lcd.print(kiloWattHour); lcd.print("KWH"); } void sendToCloud(){ iotkit.send("voltage", voltageRMS); iotkit.send("current", currentRMS); iotkit.send("realpower", realPower); iotkit.send("powerfactor", powerFactor); iotkit.send("reactivepower", reactivePower); iotkit.send("apparentpower", apparentPower); iotkit.send("energy", kiloWattHour); }
De spanning bias geboden door R3 en R4 moet de helft van de Arduino voedingsspanning en R3 en R4 moeten dus gelijk. Hogere weerstand verlaagt het energieverbruik. Ik gebruikte 100 k weerstanden voor zowel R3 en R4.
Dat de Edison op 5V wordt uitgevoerd heeft de resulterende golfvorm van het circuit een positieve piek van 2.5V + 1.15V = 3.65V en negatieve piek van 1.35V voldoet aan de eisen van de analoge ingangsspanning Edison en genoeg ruimte verlaten dus dat er geen gevaar bestaat van boven of onder spanning.
Wilt u gedetailleerde informatie over het berekenen van de optimale waarden voor de componenten component toleranties in aanmerking nemen, kan vervolgens Deze pagina u helpen.
Huidige Sensor
Er zijn diverse methoden beschikbaar voor sensing stroom in een systeem. Gebruik van shunt weerstanden, stroomtransformatoren en gebruik van Hall-effecten sensoren zijn enkele dergelijke beschikbare methoden. In dit instructable gebruikte ik Allegro ACS712 sensor meten van huidige. Allegro ACS712 sensor werkt volgens het Hall-effect principe en kan worden gebruikt voor zowel AC als DC Stroommeting. Er is geen behoefte van ondersteunende circuits voor deze sensor is een enorm voordeel ten opzichte van de andere beschikbare methoden.
Dit is een bi-directionele meettoestel en dus dit kan worden gebruikt voor zowel AC als DC huidige sensing. De ACS712-sensor is ontworpen voor de drie huidige bereiken 5A en 20A 30A. De sensor bestaat uit een geïntegreerde schakeling die volgens het Hall-effect principe werkt. Deze IC genereert een spanning evenredig is met de stroom die in het circuit. Breakout board van Stroomsensoren gebaseerd op dit apparaat ook beschikbaar in de markt en ze uw leven gemakkelijker maken.
Interfacing met Edison Arduino Breakout
Onderstaande figuur toont de aansluiting van de ACS712-sensor aan de Edison Arduino Base.
Volledige schakeldiagram, breadboard verbinding, fritzing projectbestanden en sensor gegevensblad zijn gekoppeld. Sluit alle de component dienovereenkomstig.
LCD verbinding
Verbind LCD met Edison volgens schema. Het diagram verbinding krijgt balg. Een weerstand van 330 ohm verbinden met de LED + pin voor LCD. Vo pin voor LCD moet verbinding maken met een variabele weerstand als u wilt bepalen van het contrast van de LCD of grond voor maximale contrast kan verbinden.
Volgende