Projects/Power Meter: verschil tussen versies

Uit Hackerspace Bitlair
Zarya (overleg | bijdragen)
Nieuwe pagina aangemaakt met '{{Project |name=Power Meter |contact=Gebruiker:Zarya |info=Bitlair Power meter |status=Productie }} <gallery> Image:Zarya_15155.jpg| Meter </gallery>'
 
kGeen bewerkingssamenvatting
 
(8 tussenliggende versies door 3 gebruikers niet weergegeven)
Regel 1: Regel 1:
{{Project
{{Project
|name=Power Meter
|name=Power Meter
|contact=Gebruiker:Zarya
|start=2012-07-07
|contact=Zarya
|info=Bitlair Power meter
|info=Bitlair Power meter
|status=Productie
|status=Finished
|Picture=Zarya_15155.jpg
|end=2012-07-15
}}
}}
* Meter url https://stats.bitlair.nl/
== Code ==
<syntaxhighlight lang="c" line>
#include <WProgram.h>
#include <inttypes.h>
#define MS_PER_HOUR    3.6e6
int cycles_per_kwh = 100;
int max_watt = 6000;
unsigned long previous = 0;
unsigned long cycle = 0;
boolean last = LOW;
void kwhChange() {
    unsigned long now = millis();
    unsigned long time = now - previous;
    if (cycle == 0) {
        cycle++;
        return;
    }
//    digitalWrite(13,last);
    previous = now;
    double W = 1000 * ((double) MS_PER_HOUR / time) / cycles_per_kwh;
    Serial.print("Cycle ");
    Serial.print(cycle, DEC);
    Serial.print(": ");
    Serial.print(time, DEC);
    Serial.print(" ms, ");
    Serial.print(W, 2);
    Serial.println(" W");
    cycle++;
    if (last) last = LOW;
    else last = HIGH;
}
void setup () {
  Serial.begin(57600);
  pinMode(13, OUTPUT);
  attachInterrupt(0, kwhChange, FALLING);
}
void loop () {
    digitalWrite(13,digitalRead(2));
}
</syntaxhighlight>
== Pictures ==
<gallery>
<gallery>
Image:Zarya_15155.jpg| Meter
Image:Zarya_15155.jpg| Meter
Image:Zarya_15157.jpg| Electronic
</gallery>
</gallery>
== Schema ==
[[Bestand:Pocircuit.png|200px]]

Huidige versie van 12 jan 2026 17:24


Project: Power Meter
Beschrijving Bitlair Power meter
Start 2012-07-07
Contact Zarya
Status Finished

Code

 #include <WProgram.h>
 #include <inttypes.h>
 
 #define MS_PER_HOUR    3.6e6
 
 int cycles_per_kwh = 100;
 int max_watt = 6000;
 unsigned long previous = 0;
 unsigned long cycle = 0;
 boolean last = LOW;
 
 void kwhChange() {
     unsigned long now = millis();
     unsigned long time = now - previous;
     if (cycle == 0) {
         cycle++;
         return;
     }
 //    digitalWrite(13,last);
    previous = now;
    double W = 1000 * ((double) MS_PER_HOUR / time) / cycles_per_kwh;
    Serial.print("Cycle ");
    Serial.print(cycle, DEC);
    Serial.print(": ");
    Serial.print(time, DEC);
    Serial.print(" ms, ");
    Serial.print(W, 2);
    Serial.println(" W");
    cycle++;
    if (last) last = LOW;
    else last = HIGH;
 }
 
 void setup () {
   Serial.begin(57600);
   pinMode(13, OUTPUT);
   attachInterrupt(0, kwhChange, FALLING);
 }
 
 void loop () {
     digitalWrite(13,digitalRead(2));
 }

Pictures

Schema