|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
galex4 Član
Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.35
|
Objavljeno: Pon Apr 02, 2018 9:43 am Naslov sporočila: Flow senzor OF05ZAT Arduino |
|
|
Pozdravljeni,
Kot že sam naslov pove gre za omenjeni senzor pretoka.
Pri izračunu pretoka l/h sem naletel na težavo kako pretvoriti litre v litre na uro.
Pisan program za Arduinota.
Koda:
Koda: |
volatile uint32_t PulseCount = 0;
uint32_t copyPulseCount;
uint32_t lastDisplay = 0;
int hall = 2;
void processPulse()
{
PulseCount++;
}
void setup()
{
pinMode(hall, INPUT);
digitalWrite(hall, HIGH);
attachInterrupt(0, processPulse, RISING);
sei();
Serial.begin(115200);
}
void loop ()
{
if (millis() - lastDisplay >= 1000)
{
lastDisplay += 1000;
cli();
copyPulseCount = PulseCount;
sei();
Serial.print("Puls:\t");
Serial.println(copyPulseCount);
float liters = copyPulseCount * 4.6E-4; // = * 0.00046
Serial.print("Liter:\t");
Serial.println(liters, 3);
}
} |
Proizvajalec navaja, da je njegova t.i. ločljivost 0,46mL/P kar pomeni 2174 pulz/l.
Izpis na serial monitor deluje, sedaj pa imam težavo pretvoriti litre v litre na uro (osnove matematike).
Ali je izračun pravi:
liters = liters /60; //da litre delim 1/60 kar pomeni 60 min?
Ali ga moram v tem primeru deliti 3600 (3600 sekund)? |
|
Nazaj na vrh |
|
|
rafaellsi Član
Pridružen-a: Ned 11 Sep 2011 18:54 Prispevkov: 478 Aktiv.: 3.12 Kraj: Radovljica
|
Objavljeno: Pon Apr 02, 2018 10:42 am Naslov sporočila: |
|
|
število preštetih pulzov moraš deliti s časom v katerem si tepulze naštel ... |
|
Nazaj na vrh |
|
|
galex4 Član
Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.35
|
Objavljeno: Pon Apr 02, 2018 1:30 pm Naslov sporočila: |
|
|
Se pravi v mojem primeru:
l_h = copyPulseCount/previousMillis; |
|
Nazaj na vrh |
|
|
California Član
Pridružen-a: Pet 26 Avg 2005 19:48 Prispevkov: 234 Aktiv.: 1.05 Kraj: Hrastnik
|
Objavljeno: Tor Apr 03, 2018 10:45 am Naslov sporočila: |
|
|
Število pulzov deliš z 2174 da dobiš litre. Ko porabo prečitaš, števec postaviš na 0 in tako vsako polno uro ...
Lp, Vlado _________________ California |
|
Nazaj na vrh |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3638 Aktiv.: 17.05
|
Objavljeno: Tor Apr 03, 2018 1:27 pm Naslov sporočila: |
|
|
Kolikšen je največji možen pretok na minuto?
Jaz bi lepo štel impulze in vsako minuto v polje spremenljivk zapisal preštete impulze v pravkar pretekli minuti.
unsigned int PulziVminuti[60];
byte indexMinut; // kroži od 0 do 59 in spet na 0
Ko bi vpisal 60 vrednosti, bi povozil najstarejšo in potem naslednjo ...
Nato bi vsako minuto preprosto seštel vseh 60 vrednosti in vsoto delil s (60 * 2174) = 130440.
Tako bi dobil pretok v zadnji uri.
Torej:
Koda: |
void loop()
{
miliZdaj = millis(); // centralni trenutni čas
if (miliZdaj - miliPrej > 60000) // je minila 1 minuta?
{ // ja
PulziVminuti[indexMinut] = pravkarPresteto;
pravkarPresteto = 0; // šteje nove impulze
if(indexMinut < 59) indexMinut++;
else indexMinut = 0; // pripravi za naslednji vpis
miliPrej = miliZdaj; // pripravi za novo minuto
for (i = 0; i < 60; i++)
{
PulziVUri = PulziVUri + PulziVminuti[i];
}
Pretok = PulziVUri / 130440;
Izpis ...
} // vsako minuto
}// void loop() |
Pred vpisom v polje dodaš še kopijo in sei()/cli(), ... to že znaš. _________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Sre Apr 04, 2018 11:28 pm Naslov sporočila: |
|
|
Napravi frekvencmeter, ki bo meril frekvenco, dobil boš podatek v hertzih. Veš, da predstavlja 2174 Hz 1l/s, kar znese 60l na minuto. Če boš dobil 100Hz, je to 100/2174 * 60 je cca 2,7l/min
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 69 dni
Powered by phpBB © 2001, 2005 phpBB Group
|