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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-11-02T12:13:39+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=13431&amp;mode</id>
<entry>
<author><name><![CDATA[cebulak]]></name></author>
<updated>2015-11-02T12:13:39+01:00</updated>
<published>2015-11-02T12:13:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144054#p144054</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144054#p144054"/>
<title type="html"><![CDATA[Re: Odczyt danych z DHT11 spowolnienie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144054#p144054"><![CDATA[
<div class="quotetitle">Nefarious19 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent">Cztelność kodu poprawiłem jak umiałem.<br /></div><br /><br />Wrzuć ten kod w znaczniki syntax=c...</div><br /><br />Oczywiście<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8325">cebulak</a> — 2 lis 2015, o 12:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-11-02T11:29:35+01:00</updated>
<published>2015-11-02T11:29:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144053#p144053</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144053#p144053"/>
<title type="html"><![CDATA[Re: Odczyt danych z DHT11 spowolnienie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144053#p144053"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Cztelność kodu poprawiłem jak umiałem.<br /></div><br /><br />Wrzuć ten kod w znaczniki syntax=c...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 2 lis 2015, o 11:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cebulak]]></name></author>
<updated>2015-11-02T11:13:39+01:00</updated>
<published>2015-11-02T11:13:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144052#p144052</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144052#p144052"/>
<title type="html"><![CDATA[Re: Odczyt danych z DHT11 spowolnienie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144052#p144052"><![CDATA[
Cztelność kodu poprawiłem jak umiałem. <br />Jakoś tak u mnie jest że robie bałagan w kodzie.<br />Bardzo proszę o rybkę, nie wędkę <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=8325">cebulak</a> — 2 lis 2015, o 11:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2015-11-02T08:19:02+01:00</updated>
<published>2015-11-02T08:19:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144046#p144046</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144046#p144046"/>
<title type="html"><![CDATA[Re: Odczyt danych z DHT11 spowolnienie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144046#p144046"><![CDATA[
A ja powiem to co już kiedyś tu na forum napisałem. Obsługę tych dht czy to 11 czy am2032 robi się ślicznie z użyciem przerwania zewnętrznego i jednego timera który może być używany nawet jako PWM gdyż korzystamy wprost z jego rejestru tcnt.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 2 lis 2015, o 08:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[WoodPaker]]></name></author>
<updated>2015-11-02T01:32:38+01:00</updated>
<published>2015-11-02T01:32:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144042#p144042</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144042#p144042"/>
<title type="html"><![CDATA[Re: Odczyt danych z DHT11 spowolnienie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144042#p144042"><![CDATA[
Zaraz Ci jakiś różowy albo inny sinokoperkowy przyfasoli ostzreżeniem za złe formatowanie kodu. Przeformatuj kod programu żeby dało się go przeczytać. Teraz ciężko się to ogląda.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1425">WoodPaker</a> — 2 lis 2015, o 01:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cebulak]]></name></author>
<updated>2015-11-02T11:29:14+01:00</updated>
<published>2015-11-02T00:38:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144041#p144041</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144041#p144041"/>
<title type="html"><![CDATA[Odczyt danych z DHT11 spowolnienie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13431&amp;p=144041#p144041"><![CDATA[
Witam,<br />Mam problem otóż tak bezspośrednio spod ESP8266 przy użyciu języku LUA bardzo ciężko jest odczytać prawidłowo temeprature i wilgotność. Ma to związek z czasem wykonywanie się poleceń. Z tego co znalazłem jedym działa na konkretnych wersjach nodemcu innym nie. W związku z tym postanowiłem zrobić swojego rodzaju spowalniacz danych przesyłanych przez DHT11. Znalazłem na jednej ze strony gotowy kody do odczytu danych z DHT11 trochę go przerobiłem aby działał bardzie jak ja chce. <br /><br />Ogólnie efekt ma być taki atmega48 (taka była pod ręką) odczytuje dane z DHT11 i zapisuje siąg bitów w tablicy. Następnie na podstawie danych zapisanych w tablicy wysłam stan niski lub wysoki na jeden z pinów. W taki sposób, że jak mam w tablicy 0 to przez 0,5s jest stan niski gdy mam 1 to przez 0,5s wysyłam stan wysoki i tak aż do momentu jak wyśle 40 bitów. Na potrzeby testów czasw kodzie jest ustawiony na 5s zamiast 0,5s. Jest tam jeszcze sygnalizacja LED nie korzystam z niej jest to pozostałość ze znalezionego kodu.<br /><br />Niestety coś mi nie działa jako winowajce problemów widzę przypisywanie 1 i 0 do tablicy lub ewentualnie jakiś błąd w miejscu wysyłania sygnałów na pin. Akurat wszystko się poprawnie kompiluje, błędu nie widzę a nie działa. <br /><br />Będę bardzo wdzięczny za pomoc w rozwiązaniu mojego problemu<br /><br />[syntax=c]#define DHT_PORT PORTD<br />#define DHT_PIN PD2<br />#define DHT_DIR DDRD<br />#define DHT_PIN_STATE PIND<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />uint8_t fetchData(uint8_t* arr);<br /><br />int main(void){<br />DDRB |= (1&lt;&lt;PB1);<br />DDRC &amp;= ~(1&lt;&lt;PC5);<br />PORTC |= (1&lt;&lt;PC5);<br />while(1){<br />uint8_t data&#91;40&#93;;<br />fetchData(data);<br />for (int i = 0; i &lt; 40; ++i) {<br />if( data&#91;i&#93;==1){<br />PORTB |= (1&lt;&lt;PB1);<br />_delay_ms(5000);<br />}<br />else{<br />PORTB &amp;= ~(1&lt;&lt;PB1);<br />_delay_ms(5000);<br />}<br />}<br />}<br />return 0;<br />}<br /><br />uint8_t fetchData(uint8_t* arr)<br />{<br />uint8_t data&#91;40&#93;;<br />uint8_t cnt;<br />int8_t i;<br />/******************* Inicjalizacja  *******************/<br />DHT_DIR |= (1 &lt;&lt; DHT_PIN);<br />/* Najpierw potrzebujemy opóźnienia 20 milisekund, więc preskaler clk/1024 */<br />TCCR0A = 0; //wyzerowanie TCCR0<br />TCCR0A |= (1 &lt;&lt; CS02) | (1 &lt;&lt; CS00); //prescaler 1024<br />TCNT0 = 0; //licz do 157 dla 20ms (przy clk=8000000Hz)<br />DHT_PORT &amp;= ~(1 &lt;&lt; DHT_PIN);// stan niski na około 20 ms<br />while (TCNT0 &lt; 157);<br />/* Teraz ustaw Timer0 z preskalerem clk/8 */<br />TCCR0A=0;<br />TCCR0A |= (1&lt;&lt;CS01); // clk/8<br />TCNT0 = 0;<br />DHT_PORT ^= (1 &lt;&lt; DHT_PIN);<br />DHT_DIR &amp;= ~(1 &lt;&lt; DHT_PIN);<br />/* Czekaj na odpowiedź z sensora 20-40µs */<br />while (DHT_PIN_STATE &amp; (1 &lt;&lt; DHT_PIN)) {<br />if (TCNT0 &gt;= 60)<br />return 0;    // 60us --&gt; TCNT0 musi liczyć do 60 z 8000000CPU_CLK<br />}<br />/************************* Rozpoczęcie transmisji *************************/<br />TCNT0 = 0;<br />/* Czekamy aż sensor odpowie. Najpierw stan niski ~80µs */<br />while (!(DHT_PIN_STATE &amp; (1 &lt;&lt; DHT_PIN))) {<br />if (TCNT0 &gt;= 100)<br />return 0;    //jeśli więcej niż 100us, fail<br />}<br />TCNT0 = 0;<br />/* Teraz stan wysoki: ~80µs */<br />while (DHT_PIN_STATE &amp; (1 &lt;&lt; DHT_PIN)) {<br />if (TCNT0 &gt;= 100)<br />return 0; //if more than 100us - fail<br />}<br />/********************* Przesył danych **********************/<br /><br />for (i = 0; i &lt; 40; ++i) {<br />TCNT0 = 0;<br />/* Najpierw 50µs stanu niskiego */<br />while (!(DHT_PIN_STATE &amp; (1 &lt;&lt; DHT_PIN))) {<br />if (TCNT0 &gt;= 70)<br />return 0;            //70us<br />}<br />TCNT0 = 0;<br />/* Teraz dane. 26 to 28µs stanu wysokiego wskazuje<br /> zero, a około 70µs to wysłana jedynka */<br />while (DHT_PIN_STATE &amp; (1 &lt;&lt; DHT_PIN)) {<br />if (TCNT0 &gt;= 90)<br />return 0;            //90us<br />}<br />/* Żeby nie psuć zmiennej TCNT0, skopiujemy ją sobie */<br />cnt = TCNT0;<br />if (cnt &gt;= 25 &amp;&amp; cnt &lt;= 35) {       //pomiędzy 20 i 35us<br />data&#91;i&#93;=0; //ustaw zero<br />}<br />else if (cnt &gt;= 60 &amp;&amp; cnt &lt;= 80) { //pomiędzy 60 and 80us<br />data&#91;i&#93;=1; //jedynka<br />}<br />else<br />return 0;<br />}<br />/********************* Zakończenie komunikacji, CRC *********************/<br />for (i = 0; i &lt; 40; ++i)<br />{<br />arr&#91;i&#93; = data&#91;i&#93;;<br />}<br />return 1;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8325">cebulak</a> — 2 lis 2015, o 00:38</p><hr />
]]></content>
</entry>
</feed>