geen resultaat bij delen door 1000 [solved]
hallo beste mensen,
mijn naam john en ik ben nieuw op dit forum. ik heb mij net pas aangemeld dus mijn profiel nog niet date, maar dat komt nog wel.
ik heb het volgende probleem. ik ben bezig met een kwh logger dmv een aparte kwh meter die ik in mijn meterkast wil inbouwen.
ben nu bezig met de code hiervoor te schrijven maar moet erbij vermelden dat ik nog niet zoveel ervaring hiermee heb. vooral lang bezig geweest met inlezen. heb hier en daar wat stukjes code geleend om de pulsen die mijn kwh meter geeft te tellen en om te zetten in verbruikt vermogen en totaal kwh verbruik. ik laat alles naar de seriele monitor gaan om alles te controleren.
het aantal pulsen dat mijn kwh meter geeft( 1000 pulsen = 1kwh) wil ik delen door duizend zodat de uitkomst in kwh gegeven wordt.
alleen krijg ik geen resultaat als ik door duizend deel. als ik bijvoorbeeld 100 invul, krijg ik wel resultaat. volgens mij zit ik mij nu blind te staren op iets wat misschien betrekkelijk eenvoudig maar ik zie het niet(meer) .
kan iemand hier een (deskundige) blik op werpen en mij een stukje op gang helpen. een complete oplossing niet nodig, ik moet zelf ook nog iets te doen hebben.
hieronder de code tot zover:
mijn naam john en ik ben nieuw op dit forum. ik heb mij net pas aangemeld dus mijn profiel nog niet date, maar dat komt nog wel.
ik heb het volgende probleem. ik ben bezig met een kwh logger dmv een aparte kwh meter die ik in mijn meterkast wil inbouwen.
ben nu bezig met de code hiervoor te schrijven maar moet erbij vermelden dat ik nog niet zoveel ervaring hiermee heb. vooral lang bezig geweest met inlezen. heb hier en daar wat stukjes code geleend om de pulsen die mijn kwh meter geeft te tellen en om te zetten in verbruikt vermogen en totaal kwh verbruik. ik laat alles naar de seriele monitor gaan om alles te controleren.
het aantal pulsen dat mijn kwh meter geeft( 1000 pulsen = 1kwh) wil ik delen door duizend zodat de uitkomst in kwh gegeven wordt.
alleen krijg ik geen resultaat als ik door duizend deel. als ik bijvoorbeeld 100 invul, krijg ik wel resultaat. volgens mij zit ik mij nu blind te staren op iets wat misschien betrekkelijk eenvoudig maar ik zie het niet(meer) .
kan iemand hier een (deskundige) blik op werpen en mij een stukje op gang helpen. een complete oplossing niet nodig, ik moet zelf ook nog iets te doen hebben.
hieronder de code tot zover:
code: [select]
#include <liquidcrystal.h>
liquidcrystal lcd (12,11,10,6,5,4,3);
//instellen vaste variabelen voor tellen pulsjes
const int kwhpulse = 2; // puls aangesloten op digitale ingang 2
// instellen variabelen voor bijhouden aantal pulsjes
int pulsestate = 1; // huidige staat van kwh puls, deze äctief laag" dus hier inverteren
long kwhpulsecounter = 0; // teller voor aantal pulsen
int lastpulsestate = 1; // vorige staat van kwh puls
// instellen variabelen berekenen pulstijd
float pulseaan = 0;
float pulseuit = 1;
float verstrekentijd =0;
//instellen variabelen berekenen kwh en huidig vermogen
int currentwatts = 0;
float totalkwh = 0.00;
int tijd=0;
//setup
void setup() {
pinmode(kwhpulse, input); // maak van (digitale)pin 2 een input
serial.begin(9600); // seriele communicatie op 9600 baud
lcd.begin(16,2); // lcd met 2 regels en 16 karakters per regel
//lcd.print("kwh"); // boodschap op lcd schrijven
}
void loop() {
pulsestate = digitalread(kwhpulse); // lees waarde digitale ingang en bewaar de waarde in "pulsestate"
if (pulsestate != lastpulsestate){ //vergelijk de staat van de kwhpulse met zij vorige staat
if (pulsestate == low){ //als de huidige staat laag ging de puls van uit naar aan
kwhpulsecounter++; // als de staat veranderd, verhoog de teller
serial.print ("aantal pulsen: "); //controle
serial.println (kwhpulsecounter); //controle
pulseaan = millis(); //tijd in milliseconden vanaf start arduino
verstrekentijd = (pulseaan - pulseuit)/1000; //gemeten tijd tussen twee pulsen
pulseuit = pulseaan; //bewaren voor volgende ronde
serial.print("tijd tussen pulsen: "); //controle
serial.print (verstrekentijd); //controle
serial.println(" sec"); //controle
currentwatts = 3600000 / (1000 * verstrekentijd);
serial.print ("huidig verbruik: "); //controle
serial.print (currentwatts); //controle
serial.println(" watt"); //controle
totalkwh = kwhpulsecounter / 1000;
serial.print ("totaal kwh verbruik: ");
serial.println(totalkwh);
}
}
//bewaar de huidige staat als de laatste staat voor de volgende keer in de loop
lastpulsestate = pulsestate;
}
dag comteccie
welkom op het nederlandstalige gedeelte van het arduino forum.
ik ben blij te zien dat je je code toevoegde. dat maakt de zaak direct wat handiger.
ik heb voor jou code tags toegevoegd ant dat leest makkelijker. best doe je dat natuurlijk zelf.
ik ben niet helemaal zeker van wat ik ga voorstellen maar vervang eens volgende lijn
door
met vriendelijke groet
jantje
welkom op het nederlandstalige gedeelte van het arduino forum.
ik ben blij te zien dat je je code toevoegde. dat maakt de zaak direct wat handiger.
ik heb voor jou code tags toegevoegd ant dat leest makkelijker. best doe je dat natuurlijk zelf.
ik ben niet helemaal zeker van wat ik ga voorstellen maar vervang eens volgende lijn
code: [select]
totalkwh = kwhpulsecounter / 1000;
door
code: [select]
totalkwh = ((float)kwhpulsecounter) / 1000.0;
met vriendelijke groet
jantje
Arduino Forum > International > Nederlands (Moderators: Jantje, JO3RI) > geen resultaat bij delen door 1000 [solved]
arduino
Comments
Post a Comment