<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=22257&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2019-06-08T12:33:23+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=22257&amp;mode</id>
<entry>
<author><name><![CDATA[Alef2]]></name></author>
<updated>2019-06-04T02:25:13+01:00</updated>
<published>2019-06-04T02:25:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219509#p219509</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219509#p219509"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219509#p219509"><![CDATA[
polecam artykuł:<br /><!-- m --><a class="postlink" href="http://mikrokontrolery.blogspot.com/2011/04/obrotomierz-diy.html" >http://mikrokontrolery.blogspot.com/201 ... z-diy.html</a><!-- m --><br />masz gotowca<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14998">Alef2</a> — 4 cze 2019, o 02:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-06-08T12:33:23+01:00</updated>
<published>2019-06-03T13:39:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219500#p219500</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219500#p219500"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219500#p219500"><![CDATA[
<div class="quotetitle">Szofer napisał(a):</div><div class="quotecontent"><br />... pomiar na ADC najprawdopodobniej...<br /></div><br /><br />Można za pomocą ADC, ale jest to cholernie kłopotliwe i nawet w sterownikach przy pralkach czyta się przeważnie impulsy z tego co się orientuję. Przy pomiarze napięcia trzeba najpierw sygnał wyprostować, wyfiltrować i uśrednić. Po pierwszych testach porzuciłem ten sposób i mierzę impulsy &quot;zero&quot; z jednej połówki (wystarczająca dokładność). O ile pamiętam to chyba 4 impulsy na obrót mam. Tacho można podłączyć bezpośrednio pod port procka (podobnie jak i fazę z gniazdka) oczywiście przez odpowiedni rezystorek, który ograniczy prąd na pin (wewnętrzna dioda zbije napięcie do bezpiecznego poziomu). Rozwiązanie takie jest wygodne i potrzebuje tylko jednego dodatkowego elementu - rezystora około 20-50k co jest dużą zaletą. Wadą natomiast jest słaba czułość - musi być co najmniej kilka/naście obr/s dlatego po kolejnych testach zastosowałem dodatkowy stopień wzmacniający na tranzystorze dzięki czemu już przy niecałych 120obr/min (około 2obr/s - czyli bardzo wolno w stosunku do maksymalnej prędkości) mam czyste impulsy. Warto tu jeszcze zaznaczyć, że takie tacho przy 28000 obr/min daje ponad 100V(!) Nie ma się co jednak stresować i popadać w paranoje, bo ten właściwy zakres obrotów ogarnia się w 30V-35V <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />EDIT: Dla tacho zamiast 22000 powinno być 28000 (poprawiłem)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 3 cze 2019, o 13:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iTTiny]]></name></author>
<updated>2019-05-29T18:53:32+01:00</updated>
<published>2019-05-29T18:53:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219364#p219364</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219364#p219364"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219364#p219364"><![CDATA[
Jeden impuls na jeden obrót, drobny element przecina transoptor szczelinowy podłączony do INT0 <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Wysłane z mojego POCOPHONE F1 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14220">iTTiny</a> — 29 maja 2019, o 18:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2019-05-29T18:09:46+01:00</updated>
<published>2019-05-29T18:09:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219363#p219363</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219363#p219363"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219363#p219363"><![CDATA[
Z us śmiało możesz przejsc na ms, przy 20000 obr/min wychodzi przerwanie co ~3ms i licz w czasie sekundy (1000ms) latwiej sie liczy,<br /><br />Ile impulsów masz na obrót?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 29 maja 2019, o 18:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2019-05-29T17:49:02+01:00</updated>
<published>2019-05-29T17:49:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219362#p219362</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219362#p219362"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219362#p219362"><![CDATA[
W pralkach beko siedzi atmega w programatorze, a prędkość czyta po tacho zamontowan fabrycznie na silniku, pomiar na ADC najprawdopodobniej, moje spostrzeżenia z naprawy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 29 maja 2019, o 17:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iTTiny]]></name></author>
<updated>2019-05-29T17:22:58+01:00</updated>
<published>2019-05-29T17:22:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219361#p219361</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219361#p219361"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219361#p219361"><![CDATA[
Silnik AC, jeśli to możliwe to zależy mi na tym, żeby takie pomiary zrobić bez zabawy w dodatkowe rozbudowy układu. <br />Poza tym zależy mi na &quot;ćwiczeniu&quot; samym w sobie, da się to zmierzyć w ten sposób tylko w tym momencie leży mój &quot;pomiar&quot; od strony programu <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> I niezmiernie mnie to irytuje <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14220">iTTiny</a> — 29 maja 2019, o 17:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2019-05-29T17:11:10+01:00</updated>
<published>2019-05-29T17:11:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219360#p219360</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219360#p219360"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219360#p219360"><![CDATA[
Cześć, a nie lepiej mierzyć napięcie z tacho silnika, tak jak to robi fabryka?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 29 maja 2019, o 17:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iTTiny]]></name></author>
<updated>2019-05-29T17:01:01+01:00</updated>
<published>2019-05-29T17:01:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219359#p219359</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219359#p219359"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219359#p219359"><![CDATA[
Ok, więc tak... Dalej jest beznadziejnie ale coś mi się wydaje, że moja kolejna próba nie za wiele różni się podejściem od poprzedniej...<br /><br />w while:<br />[syntax=c]if ( flag ==1 ) {<br /><br />flag = 0;//Flaga na false -&gt; czekamy na kolejny pomiar<br /><br />obroty = (( obr*4 ) *60 );//Obliczanie obrotow -&gt; (zliczona ilosc obrotow *4 to ilosc obr/s) *60 sek = obr/min<br /><br />lcd_locate(1,2);<br />lcd_int(obroty);//Wyświetlenie liczby obrotów<br />lcd_str_P( PSTR(&quot; obr/min   &quot;));<br />}[/syntax]<br /><br /><br />Przerwania:<br />[syntax=c]ISR( TIMER1_COMPA_vect ) {<br /><br />cnt++;//timer co 5us<br /><br />if ( cnt == 50000 ) {                //Jesli minelo 250ms<br /><br />obr = impuls;        //Przypisujemy aktualna ilosc obrotow<br />flag = 1;//Zmiana flagi -&gt; Mozna obliczac aktualny wynik<br />impuls = 0;//Zerowanie ilosci obrotow INT0<br />cnt = 0;//zerowanie licznika czasu<br />}<br />}<br /><br />ISR (INT0_vect) {<br /><br />impuls++;//zliczanie obrotów<br /><br />}[/syntax]<br /><br />W dalszym ciągu &quot;rozdzielczoś&quot; wyniku to 120obr/min...<br />Na oscyloskopie przy max obrotach pokazuje okres nieco ponad 25ms, więc mam jakieś odniesienie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Ktoś ma propozycję zmiany kodu ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14220">iTTiny</a> — 29 maja 2019, o 17:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-05-17T19:24:40+01:00</updated>
<published>2019-05-17T19:24:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219061#p219061</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219061#p219061"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219061#p219061"><![CDATA[
Przy niskich obrotach lepiej jest mierzyć odstęp między kolejnymi impulsami, natomiast przy wysokich obrotach ilość imp. w czasie. Zależy jeszcze jak dokładny chcemy wynik i jak szybko chcemy go uzyskać. Trenować można na różne sposoby dzięki czemu w konkretnej aplikacji będziesz wiedział co i jak użyć. Ja na ten przykład teraz walczę z silnikiem od pralki automatycznej. Jeszcze nie wiem do czego wykorzystam, ale postanowiłem zrobić mu regulator obrotów z użyciem PID. Tak, wiem, że są dostępne dedykowane regulatory jednak chce powalczyć na malutkim uC, bo umożliwi mi to rozbudowę o inne funkcje <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Problem o tyle skomplikowany, że chce regulację od około 120obr/min, a silnik może się kręcić nawet z 22000obr/min. Oczywiście to max i nie powinno się go nawet tak rozpędzać dlatego 12-13k mi wystarczy. Jednak to spory zakres i wybrałem tu pomiar między impulsami, bo mam natychmiastowy odczyt aktualnej prędkości co przyda się przy stabilizacji. Ograniczeniem będzie stabilizacja na wyższych obrotach, ale mi akurat zależy na tych niższych więc wybrany algorytm się tu raczej sprawdzi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 17 maja 2019, o 19:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iTTiny]]></name></author>
<updated>2019-05-17T18:39:22+01:00</updated>
<published>2019-05-17T18:39:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219060#p219060</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219060#p219060"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219060#p219060"><![CDATA[
<div class="quotetitle">SylwekK napisał(a):</div><div class="quotecontent"><br />Jakie minimalne i maksymalne obroty przewidujesz do pomiaru?<br /></div>Cóż, szczerze mówiąc nie mam min/max, to tylko ćwiczenie, trochę się tym pobawię i odłożę w kąt aż do momentu kiedy będzie mi to potrzebne w jakimś projekcie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />Zapewne do prostej konstrukcji wystarczy kilka tysięcy może 5 <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />? Coś szybszego to nawet nie przychodzi mi do głowy żaden pomysł gdzie bym mógł wykorzystać pomiar do 10/20 tys obr/min ale kto wie... Jeśli zajdzie taka potrzeba to pewnie wtedy będę się nad tym głowił <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Wysłane z mojego POCOPHONE F1 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14220">iTTiny</a> — 17 maja 2019, o 18:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-05-17T18:33:53+01:00</updated>
<published>2019-05-17T18:33:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219059#p219059</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219059#p219059"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219059#p219059"><![CDATA[
Jakie minimalne i maksymalne obroty przewidujesz do pomiaru?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 17 maja 2019, o 18:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iTTiny]]></name></author>
<updated>2019-05-17T14:43:50+01:00</updated>
<published>2019-05-17T14:43:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219055#p219055</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219055#p219055"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219055#p219055"><![CDATA[
<div class="quotetitle">Alef2 napisał(a):</div><div class="quotecontent"><br />A jaki jest sposób wyświetlania obrotów?<br />Pochwal się koniecznie swoja konstrukcją.<br /></div>Jak już pisałem, prosty obrotomierz, transoptor szczelinowy podłączony do int 0 i LCD 2x16 do wyświetlania wyników. <br />Nie jest to żadna konstrukcja tylko bardziej bym powiedział ćwiczenia praktyczne <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Wpadł mi w ręce transoptor i chciałem coś z nim podziałać.. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Dzięki za wszystkie uwagi, na pewno potestuje i będzie wszystko fajnie działało <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Wysłane z mojego POCOPHONE F1 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14220">iTTiny</a> — 17 maja 2019, o 14:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alef2]]></name></author>
<updated>2019-05-17T14:28:36+01:00</updated>
<published>2019-05-17T14:28:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219054#p219054</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219054#p219054"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219054#p219054"><![CDATA[
A jaki jest sposób wyświetlania obrotów?<br />Pochwal się koniecznie swoja konstrukcją.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14998">Alef2</a> — 17 maja 2019, o 14:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iTTiny]]></name></author>
<updated>2019-05-17T13:39:52+01:00</updated>
<published>2019-05-17T13:39:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219053#p219053</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219053#p219053"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219053#p219053"><![CDATA[
<div class="quotetitle">Alef2 napisał(a):</div><div class="quotecontent"><br />Zauważ, że 120 obr/min to jest 2obr/s, czyli 1 obr na 500ms. Więc masz pomiar obrotów z rozdzielczością 120obr/min.<br />Żeby zmniejszyć rozdzielczość trzeba wydłużyć czas pomiaru. Ale to zła droga, bo wynik, który odświeża się po np. 10s jest bezużyteczny.<br />Lepszym rozwiązaniem jest pomiar okresu, bo okres możesz zmierzyć z rozdzielczością np 1us, co przy czasie pomiaru 500ms, daje pomijalny błąd braku rozdzielczości.<br />Zasada działania jest mniej więcej taka:<br />-pierwszy impuls uruchamia timer w trybie licznika czasu<br />- czekasz 500ms, w tym czasie licznik zlicza impulsy a timer odmierza czas<br />-jak upłynie 500ms, czekasz na pojawienie się impulsu<br />- impuls zatrzymuje licznik czasu.<br />Otrzymujesz liczbę impulsów i czas tych impulsów. czas impulsów dzielisz przez liczbe impulsów, otrzymując okres. Okres przeliczasz na obroty i gotowe.<br /></div>Coś takiego widziałem i właśnie pod tym kątem myślałem jeszcze, żeby przerobić program. Niestety możliwość testu będę miał dopiero pod koniec miesiąca ale przygotuję sobie program już teraz a potem potestuje <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br /><br /><br />Wysłane z mojego POCOPHONE F1 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14220">iTTiny</a> — 17 maja 2019, o 13:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alef2]]></name></author>
<updated>2019-05-17T12:53:52+01:00</updated>
<published>2019-05-17T12:53:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219052#p219052</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219052#p219052"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219052#p219052"><![CDATA[
Zauważ, że 120 obr/min to jest 2obr/s, czyli 1 obr na 500ms. Więc masz pomiar obrotów z rozdzielczością 120obr/min.<br />Żeby zmniejszyć rozdzielczość trzeba wydłużyć czas pomiaru. Ale to zła droga, bo wynik, który odświeża się po np. 10s jest bezużyteczny.<br />Lepszym rozwiązaniem jest pomiar okresu, bo okres możesz zmierzyć z rozdzielczością np 1us, co przy czasie pomiaru 500ms, daje pomijalny błąd braku rozdzielczości.<br />Zasada działania jest mniej więcej taka:<br />-pierwszy impuls uruchamia timer w trybie licznika czasu<br />- czekasz 500ms, w tym czasie licznik zlicza impulsy a timer odmierza czas<br />-jak upłynie 500ms, czekasz na pojawienie się impulsu<br />- impuls zatrzymuje licznik czasu.<br />Otrzymujesz liczbę impulsów i czas tych impulsów. czas impulsów dzielisz przez liczbe impulsów, otrzymując okres. Okres przeliczasz na obroty i gotowe.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14998">Alef2</a> — 17 maja 2019, o 12:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomcat65]]></name></author>
<updated>2019-05-17T12:40:18+01:00</updated>
<published>2019-05-17T12:40:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219051#p219051</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219051#p219051"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219051#p219051"><![CDATA[
Nie zaglądałem do kodu, ale z opisu wynika, że mierzysz impulsy w czasie? Jeśli tak, to kiepska metoda. Lepiej odwrotnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15092">tomcat65</a> — 17 maja 2019, o 12:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2019-05-17T10:23:00+01:00</updated>
<published>2019-05-17T10:23:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219049#p219049</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219049#p219049"/>
<title type="html"><![CDATA[Re: Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219049#p219049"><![CDATA[
<div class="quotetitle">iTTiny napisał(a):</div><div class="quotecontent"><br />Zastanawiam się, czy tak teoretycznie może wystąpić &quot;kolizja&quot; jeśli w trakcie wykonywania się przerwania TIMER0 akurat odpali się przerwanie by input i oba te przerwania będą chciały zmienić tą wspólnie używaną zmienną... ?<br /></div><br />A procki AVR obsługują wielowątkowość ? żeby mogło do takiego zdarzenia dojść ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Trzeba jeszcze sobie raz przećwiczyć temat działania przerwań. W dużym skrócie - normalnie gdy inaczej specjalnie tego nie załączysz, to w trakcie jednego przerwania nie może być obsłużone inne. Gdy podczas np obsługi przerwania (w trakcie) INT0 nadejdzie inne przerwanie - to zapali się jego flaga sprzętowa i będzie grzecznie czekać do zakończenia INT0, po czym nastąpi wykonanie jednej instrukcji z pętli głównej i od razu skok do przerwania tego co zapaliło flagę.<br /><br />Oczywiście można włączyć sobie atrybut NO_BLOCK dla procedury ISR(), no ale to już jest jazda bez trzymanki i trzeba b.dobrze wiedzieć co się robi - bo efekty złego przemyślenia mogą być o wiele gorsze do zdebugowania niż awarie stosu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 17 maja 2019, o 10:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iTTiny]]></name></author>
<updated>2019-05-17T09:51:23+01:00</updated>
<published>2019-05-17T09:51:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219048#p219048</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219048#p219048"/>
<title type="html"><![CDATA[Obrotomierz - Czy dobrze to przemyślałem ? :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22257&amp;p=219048#p219048"><![CDATA[
Cześć,<br /><br />Robiłem sobie ostatnio prosty obrotomierz i finalnie udało mi się uzyskać jakieś wyniki ale nie do końca wydają mi się poprawne...<br />Chodzi mi o to, że błąd to jakieś... 120obr/min w niektórych przypadkach nawet więcej - Zależy od prędkości <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Co mi nie daje spokoju to przede wszystkim, czy jeśli używam jednej zmiennej w przerwaniu INT0 to czy mogę ją zerować w przerwaniu TIMER0 ? Ponieważ tak robię <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> - Zastanawiam się, czy tak teoretycznie może wystąpić &quot;kolizja&quot; jeśli w trakcie wykonywania się przerwania TIMER0 akurat odpali się przerwanie by input i oba te przerwania będą chciały zmienić tą wspólnie używaną zmienną... ?<br />Generalnie jako tako coś działa ale wyniki są na tyle chaotyczne i czasami dziwne (nie zmieniają się kiedy trochę zwiększam prędkość), że powątpiewam w poprawność tego programu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Przykład:<br />[syntax=c]//Przerwanie zewnętrzne: PD2 -&gt; INT0  SETUP<br />EIMSK |= (1&lt;&lt;INT0);//ext interrupt enable<br />EICRA |= (1&lt;&lt;ISC00)|(1&lt;&lt;ISC01);//Activation on falling edge<br /><br />//INT0 ustawienie<br />DDRD &amp;= ~ (1&lt;&lt;PD2);            //Set as input<br />PORTD |= (1&lt;&lt;PD2);             //Turn On the Pull-up<br /><br /><br />ISR( TIMER0_COMPA_vect ) {<br /><br />cnt++;        //timer &#91;us&#93;<br /><br />if(cnt == 5000) {//jesli mineło 500ms<br /><br />obr = ( obrot * 120 );//wpisanie ilości obrotów / min<br />cnt = 0;//zerowanie timera<br />flag = 1;//flaga dla funkcji w petli glownej<br /><br />}<br /><br />}<br /><br />ISR (INT0_vect) {<br /><br />obrot++;          //Zliczanie obrotów<br /><br />}[/syntax]<br /><br />Może cały mój zamysł pomiaru prędkości obrotowej jest zły? <br />Oczywiście wszystkie zmienne używane w przerwaniach są okraszone &quot;Volatile&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14220">iTTiny</a> — 17 maja 2019, o 09:51</p><hr />
]]></content>
</entry>
</feed>