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

Glajc Pavel pavel.glajc na del.cz
Neděle Září 22 19:36:30 CEST 2013


Jen jsem si letem prošel datasheet, není to čidlo příliš citlivé. Udávaná citlivost je v jednotkách až desítkách mT, někde v tabulkách jsem viděl, že magnetické pole Země na 50 rovnoběžce má 20mT. Nehraje Vám tam roli právě onen zemský magnetismus? Nešlo by použít pole magnetů vzhledem k čidlu, tak aby jej neovlivňoval zemský magnetismus?
Pavel Glajc

P.S.
Pokud byste chtěl experimentovat s tesláckými čidly MH1SS1, pošlete analogovou adresu, pár Vám jich zdarma pošlu.
----- Původní zpráva ----- 
> Odesilatel: "Petr Zapadlo" <zapik na email.cz> 
> Příjemce: HW-news <hw-list na list.hw.cz> 
> Datum: 22.09.2013 17:20 
> Předmět: 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