[OPGELOST] Metingen verrichten werkt voor maar 90 %

Goedenmiddag,

Ik begin het leuk te vinden om projectjes te maken met een Arduino. Ik heb nog niet veel ervaring, maar dat komt wel met de tijd (hoop ik).

Ik ben op dit moment bezig met een project waarmee ik het aantal omwentelingen wil gaan meten. Het apparaat is een instrument die door middel van lucht ronddraait. Ik kan aflezen hoeveel omwentelingen er worden gemaakt in een bepaalde tijd. Op dit moment bedraagt die tijd 15 seconde. Als het aantal omwentelingen bekent is, en de tijd, kan de frequentie bepaald worden. De frequentie wordt maar gedeeltelijk weergegeven. Als ik bijvoorbeeld het aantal omwentelingen (3214) deel door de tijd (15 seconde) hoor ik als antwoord te krijgen: 155/15 = 10.33333333 etc.. Echter krijg ik als antwoord dan gewoon 10. Mijn programma rond dus alles af voor de komma.

Is er misschien iemand die mij hierbij zou kunnen helpen? Mijn doel is om gebruik te maken van twee decimalen achter de komma.

Met vriendelijke groet,

Patrick

int pulsen = 0;               // totaal aantal pulsen van luchttoevoer aan en luchttoevoer aan
int pulsenaan = 0;            // aantal pulsen wanneer er luchttoevoer is
int pulsenuit = 0;            // aabtak pulsen wanneer er geen luchttoevoer is
float frequentie = 0;         //frequentie = pulsen / 15

Verderop in mijn programma wordt de frequentie weergegeven.

frequentie = pulsen / 15;



lcd1.print(frequentie);

Waarschijnlijk een optimalisatie van de compiler om int /int in int te zetten (of zo hoort het in C te zijn)
Probeer dit eens

frequentie = ((float)pulsen) / 15.0;

Met vriendelijke groet
Jantje

een int delen door een int blijft een int, ome jan doet het dus goed.

[/quote]

Jantje:
Waarschijnlijk een optimalisatie van de compiler om int /int in int te zetten (of zo hoort het in C te zijn)
Probeer dit eens

frequentie = ((float)pulsen) / 15.0;

Met vriendelijke groet
Jantje

Het werkt inderdaad, Hartelijk dank!

Of vermenigvuldig de teller met 100; t100/n is 100quotient. Je kunt de text (string) vorm van het quotient gemakkelijk hier uit halen mbv integer operaties (veel goedkoper/sneller dan floating point operaties).

vriendelijke groet,

Jos