Re: arduino - měření intervalu (frekvence)

Martin Záruba swz na volny.cz
Neděle Září 22 18:26:08 CEST 2013


S jednou sondou to vyřešit nejde. Není jak rozeznat, zda jen kýve tam a zpět
nebo zda se rychle otáčí.. Sepne jedna - začátek intervalu. Sepne druhá -
konec intervalu. Pokud druhá nesepne - nefouká.

Martin Záruba
----- Original Message -----
From: "Petr Zapadlo" <zapik na email.cz>
To: "HW-news" <hw-list na list.hw.cz>
Sent: Sunday, September 22, 2013 5:19 PM
Subject: arduino - měření intervalu (frekvence)


Přeji pěknou neděli,

řeším anemometr (už jsem na toto téma sem psal)
Vlastní čidlo jsem udělal nakonec z vybrakovaného modelářského motoru -
oběžky.
krásný domek s ložisky, vybrakoval jsem cívku s jádrem, takže zbyl rotor
osazený magnety velmi lehce se točící kolem dokola.  Dovnitř hallovu sondu.
Zdánlivě hotovo.

Ocejchoval jsem v autě - měřil jsem multimetrem frekvenci. (85Hz pro
100km/h)

Arduino jsem ověřil jednoduchým multivibrátorem, vše OK.
Nicméně při spojení anemometru s arduinem se mi objevují velmi vysoké
rychlosti větru - přes 330m/s (a to asi pravda nebude :-)

Navíc je to zarovnané nahoře  (změna barvy byla chyba v konfiguraci RRD
tools)

http://zapik.brunda.name/wind.png

Když se dívám na anemometr, tak se chvíli lehce točí a když fouká jen málo,
tak se třeba lehounce chvěje.
předpokládám, že to je ten problém.
V arduinu měřím interval v přerušení:

attachInterrupt(1,citac, FALLING);

 //mereni vetru v preruseni

void citac () {
  rychlost = millis() - poc;
  if (rychlost == 0) rychlost++;
  poc = millis();
  vysl= k0*(1000/rychlost)/3.6;   //vypocet rychlosti v m/s z doby
  prumer=(prumer+vysl)/2;

V dalším kodu mám ještě zachycování minim a maxim:
 if (maxr < vysl ) maxr=vysl;  //v grafu červena(puvodně žlutá)
  if (minr > vysl ) minr=vysl;

Jak vyřešit tento problém?
- pokud budu více průměrovat, tak mi bude dlouho trvat, než to dokonverguje
k
rozumné hodnotě
- pokud budu povolovat preruseni az po nějaké době, jaká je ta správná doba?
Poukud problém opravdu dělá kývaní kolem zlomu, bude to generovat nesmysly i
když dovolím přerušovat s delšími intervaly.


Napadá Vás jak to řešit?  matematicky, obvodově?

Díky

Zapik


--


Petr "Zapik" Zapadlo
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list