<?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=8566&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-09-22T19:41:38+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8566&amp;mode</id>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-09-22T19:41:38+01:00</updated>
<published>2014-09-22T19:41:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96402#p96402</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96402#p96402"/>
<title type="html"><![CDATA[Re: Moduł radiowy XY-FST 433MHZ format danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96402#p96402"><![CDATA[
W wyżej pokazanym kodzie obsługi przerwania brakuje zablokowania modyfikacji tablicy jeśli jest akurat przetwarzana w głównej pętli programu:<br />[syntax=c]if(0 == full_flag)<br />{<br />   //modyfikacja tablicy<br />}[/syntax]<br /><br />Co do zasięgu to mocno zależy on od napięcia zasilania, a nadajnik można zasilać od 2,5 do 12 V. Długość anteny możesz skracać sukcesywnie co 2 mm i sprawdzać zasięg. Porównując moc nadajnika do innych modułów to 100 m powinieneś spokojnie uzyskać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 22 wrz 2014, o 19:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[The River]]></name></author>
<updated>2014-09-20T18:29:46+01:00</updated>
<published>2014-09-20T18:29:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96165#p96165</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96165#p96165"/>
<title type="html"><![CDATA[Re: Moduł radiowy XY-FST 433MHZ format danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96165#p96165"><![CDATA[
Tak, czytałem rozdział o dekodowaniu RC5 i znam ten temat dlatego tutaj w podobny sposób próbowałem odczytać dane z modułu radiowego. Udało mi się poprawić obsługę ICP i teraz znacznie szybciej następuje odczyt danych. Co więcej za pomocą nadajnika udało mi się wygenerować podobną ramkę i &quot;przyuczyć&quot; nowego pilota. Problem jednak w tym, co jest trochę dziwne, że zarówno pierwszy pilot z którego odczytywałem ramke jak i &quot;mój&quot; nadajnik generują jedynke w postacji ok.850 us stan wysoki, 550 us stan niski (razem 1,4 ms). Natomiast sklonowany pilot zachowuje tą samą długość bitu (1,4 ms) ale zmiania już proporcje na ok 1100us stan wysoki i 300 us stan niski, co powoduje że funkcja do odbioru danych działa tylko na pierwszym pilocie. Po modyfikacji polegającej na zwiększeniu akceptowanych przedziałów czasowych odczytuje również drugi pilot. Problem jednak pojawia się gdy chce za pomocą sklonowanego pilota przyuczyć następny pilot. Wtedy odbierana są już jakieś impulsy nie przypominające prawidłowej ramki. <br />Coś musze dalej robić nie tak bo zasięg jaki uzyskałem przy antenie 34 cm to ok 10 metrów (15 to absolutne maksimum).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=508">The River</a> — 20 wrz 2014, o 18:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[The River]]></name></author>
<updated>2014-09-19T11:26:06+01:00</updated>
<published>2014-09-19T11:26:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96030#p96030</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96030#p96030"/>
<title type="html"><![CDATA[Re: Moduł radiowy XY-FST 433MHZ format danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96030#p96030"><![CDATA[
Faktycznie coś pomyliłem, spróbuje napisać obsługę ICP skupiając się tylko na czasie trwania stanu wysokiego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=508">The River</a> — 19 wrz 2014, o 11:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-09-19T11:11:27+01:00</updated>
<published>2014-09-19T11:11:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96026#p96026</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96026#p96026"/>
<title type="html"><![CDATA[Re: Moduł radiowy XY-FST 433MHZ format danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96026#p96026"><![CDATA[
<div class="quotetitle">The River napisał(a):</div><div class="quotecontent"><br />puścić na UART tak jak w tej bibliotece Virtual Wire dla Arduino<br /></div><br /><br />Virtual Wire nie ma nic wspólnego z UART<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 19 wrz 2014, o 11:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[The River]]></name></author>
<updated>2014-09-19T10:56:37+01:00</updated>
<published>2014-09-19T10:56:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96024#p96024</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96024#p96024"/>
<title type="html"><![CDATA[Re: Moduł radiowy XY-FST 433MHZ format danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96024#p96024"><![CDATA[
Kiedy trzymam przycisk dłuższą chwilę wtedy odbieram coś takiego:<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/508/97fa34ccb474efc57e879b2e1c2bc6bb.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/508/97fa34ccb474efc57e879b2e1c2bc6bb.png" alt="Obrazek" /></a><br /><br />Gdzie przerwa pomiędzy ramkami wynosi ponad 11 ms. <br /><br />Sama obsługa ICP wygląda tak:<br />[syntax=c]ISR(TIMER1_CAPT_vect)<br />{<br />TCCR1B ^= (1&lt;&lt;ICES1);// zmiana zbocza<br />//PORTC ^= (1&lt;&lt;PC1);<br />pulse_width = (ICR1 - last_capture)*4;<br />last_capture = ICR1;<br />if(cnt != 0)<br />{<br />if( (pulse_width &gt; 50 ) &amp;&amp; ( pulse_width &lt; 300 ) )received_data&#91;cnt-1&#93; = 1;<br />else if( (pulse_width &gt; 400 ) &amp;&amp; ( pulse_width &lt; 750 ) )received_data&#91;cnt-1&#93; = 2;<br />else if( (pulse_width &gt; 760 ) &amp;&amp; ( pulse_width &lt; 950 ) )received_data&#91;cnt-1&#93; = 3;<br />else if( (pulse_width &gt; 1000 ) &amp;&amp; ( pulse_width &lt; 1450 ) )received_data&#91;cnt-1&#93; = 4;<br />else<br />{<br />cnt = 0;<br />//TCCR1B |= (1&lt;&lt;ICES1);// wyzwalanie zboczem narastającym<br />}<br />}<br /><br /><br />cnt++;<br />if(cnt &gt; 49)<br />{<br />full_flag = 1;<br />cnt = 0;<br />}<br /><br />}[/syntax]<br /><br />Czyli rozróżniam tak jakby 4 stany, długi i krótki wysoki oraz długi i krótki niski. Długi wysoki i krótki niski to powiedzmy jeden, a krótki wysoki i długi niski to zero.  W osobnej pętli głównej po otrzymaniu pełnej ramki sobie to przetwarzam na dane:<br /><br />[syntax=c]if(full_flag)<br />{<br />uart_send_str(&quot;Nowa tablica \r\n&quot;);<br />for(i=0;i&lt;49;i++)<br />{<br />//uart_send_int(pulse_width&#91;i&#93;);<br />uart_send_int(received_data&#91;i&#93;);<br />uart_send_str(&quot;\r\n&quot;);<br />if((i+1)%4 == 0)uart_send_str(&quot;\r\n&quot;);<br />}<br />uart_send_str(&quot;\r\n&quot;);<br /><br />for(i=0; i&lt;8; i++)<br />{<br />if( (received_data&#91;i*2+24&#93; == 3) &amp;&amp; (received_data&#91;i*2+25&#93; == 2))<br />{<br />byte |= (1&lt;&lt;(7-i));<br />}<br />if( (received_data&#91;i*2+24&#93; == 1) &amp;&amp; (received_data&#91;i*2+25&#93; == 4))<br />{<br />byte &amp;= ~(1&lt;&lt;(7-i));<br />}<br />}<br />uart_send_str(&quot;bajt: &quot;);<br />uart_send_int(byte);<br />uart_send_str(&quot;\r\n&quot;);<br />uart_send_int(numer_ramki);<br />uart_send_str(&quot;\r\n&quot;);<br />numer_ramki++;<br /><br />if(byte == 129)<br />{<br />//PORTC &amp;= ~(1&lt;&lt;PC5);<br />PORTC ^= (1&lt;&lt;PC5);<br />}<br /><br />full_flag = 0;<br />TCCR1B |= (1&lt;&lt;ICES1);// wyzwalanie zboczem narastającym<br />}[/syntax]<br /><br />Działać tak jak powiedziałem to działa, co prawda przy odległości 20 cm (z anteną) przyciśnięcie przycisku powinno być natychmiast wykryte, a ja muszę go przytrzymać sekundę/dwie, więc jest pewne opóźnienie. Natomiast zastanawia mnie to w jaki sposób można by było te dane puścić na UART tak jak w tej bibliotece Virtual Wire dla Arduino. UART odpiera dane w kodzie NRZ a tutaj prawdę mówiąc nie wiem jak określić ten kod.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=508">The River</a> — 19 wrz 2014, o 10:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-09-19T10:09:07+01:00</updated>
<published>2014-09-19T10:09:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96019#p96019</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96019#p96019"/>
<title type="html"><![CDATA[Re: Moduł radiowy XY-FST 433MHZ format danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96019#p96019"><![CDATA[
Możliwe, że czekasz na dodatkowe zbocze, które nie nadchodzi. Tutaj do rozróżnienia bitów wystarczy czas trwania stanu wysokiego. Podczas krótkiego trzymania przycisku idzie jedna ramka i pewnie odbierasz ją jako niekompletną z powodu podanego powyżej. Jak trzymasz dłużej to początek kolejnej ramki niejako daje zakończenie dekodowania pierwszej ramki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 19 wrz 2014, o 10:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[The River]]></name></author>
<updated>2014-09-19T08:26:33+01:00</updated>
<published>2014-09-19T08:26:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96002#p96002</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96002#p96002"/>
<title type="html"><![CDATA[Moduł radiowy XY-FST 433MHZ format danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8566&amp;p=96002#p96002"><![CDATA[
Witam<br /><br />Mam uniwersalny pilot 433MHz ze stałym kodem i próbuję zrobić do niego odbiornik. Wykorzystałem w tym celu taki oto moduł radiowy:<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/508/411863c5540536ce39e05dd306495b32.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/508/411863c5540536ce39e05dd306495b32.jpg" alt="Obrazek" /></a><br /><br />Udało mi się odebrać dane z pilota i je zinterpretować przy użyciu Input Capture. Nie działa to jeszcze tak jakbym chciał ponieważ krótkie naciśnięcie przycisku nie jest odbierane, dopiero dłuższe taka jakby nie każda ramka była interpretowana poprawie. Ale rzecz w tym że zastanawia mnie format danych, ramka odbierana na wyjściu modułu odbiornika wygląda następująco: <br /><br /><a href="http://forum.atnel.pl/_obrazki/o/508/83ec61ed674d4e7fbea608fdb29f3f47.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/508/83ec61ed674d4e7fbea608fdb29f3f47.png" alt="Obrazek" /></a><br /><br />gdzie:<br />-pierwszy poziom wysoki trwa 917 us<br />- następnie poziom niski 560 us<br />- znowu krótki poziom wysoki 208 us<br />- i najdłuższy poziom niski 1260 us<br />Z tego co udało mi się dowiedzieć na temat tego modułu są wykorzystywane z biblioteką Wirtual Wire do Arduino tylko tam dane odbierane i wysyłane są na UART, gdzie standardowa ramka jest kodowana w NRZ i zarówno 0 jak i 1 logiczne trwa tyle samo. <br />Może ktoś miał kontakt z podobnymi modułami i podpowie jak lepiej zinterpretować to kodowanie i ulepszyć odbiór danych.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=508">The River</a> — 19 wrz 2014, o 08:26</p><hr />
]]></content>
</entry>
</feed>