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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-10-08T21:26:13+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13154&amp;mode</id>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2015-10-08T18:12:22+01:00</updated>
<published>2015-10-08T18:12:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141859#p141859</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141859#p141859"/>
<title type="html"><![CDATA[Re: Czujniki DS18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141859#p141859"><![CDATA[
Do wstawienia kodu, używamy znacznika SYNTAX !<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 8 paź 2015, o 18:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kamil12239]]></name></author>
<updated>2015-10-08T21:26:13+01:00</updated>
<published>2015-10-08T17:35:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141856#p141856</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141856#p141856"/>
<title type="html"><![CDATA[Re: Czujniki DS18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141856#p141856"><![CDATA[
Tutaj fragment kodu:<br />W ten sposób niestety nie zadziała. Jakieś inne wskazówki co robie źle?<br /><br />[syntax=c]uint16_t temperatura_czujnika_1 =DS18X20_read_meas; //zakladam ze czujnik zwraca temperature pomnozona przez 10<br />//uint16_t temperatura_czujnika_2 = odczytajTemperatureCzujnik(2); //, u Ciebie moze byc inaczej, ale logika bedzie ta sama<br /> <br /> <br />uint16_t temperatura_docelowa = 250; //250 = 25.0 stopni C<br /><br />czujniki_cnt = search_sensors();<br /> <br />        /* wysyłamy rozkaz wykonania pomiaru temperatury<br />         * do wszystkich czujników na magistrali 1Wire<br />         * zakładając, że zasilane są w trybie NORMAL,<br />         * gdyby był to tryb Parasite, należałoby użyć<br />         * jako pierwszego prarametru DS18X20_POWER_PARASITE */<br />        DS18X20_start_meas( DS18X20_POWER_EXTERN, NULL );<br /> <br />        /* czekamy 750ms na dokonanie konwersji przez podłączone czujniki */<br />        _delay_ms(750);<br /> <br />        /* dokonujemy odczytu temperatury z pierwszego czujnika o ile został wykryty */<br />        /* wyświetlamy temperaturę gdy czujnik wykryty */<br />        if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;0&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(0);<br />        else {<br />                lcd_locate(1,0);<br />                lcd_str(&quot; error &quot;);     /* wyświetlamy informację o błędzie jeśli np brak czujnika lub błąd odczytu */<br />        }<br /> <br />        /* dokonujemy odczytu temperatury z pierwszego czujnika o ile został wykryty */<br />        if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;1&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(9);<br />        else {<br />                lcd_locate(1,9);<br />                lcd_str(&quot; error &quot;);<br />        }<br /> <br />        sei();  /* włączamy globalne przerwania */<br /> <br />        lcd_locate(0,0);<br />        lcd_str_P(PSTR(&quot; Zewn.    Wewn.&quot;)); /* wyświetl napisy w zerowej linii LCD */<br /> <br />        /* pętla nieskończona */<br />        while(1) {<br /> <br />                if(s1_flag) {   /* sprawdzanie flagi tyknięć timera programowego co 1 sekundę */<br /> <br />                        /* co trzy sekundy gdy reszta z dzielenia modulo 3 == 0 sprawdzaj ilość dostępnych czujników */<br />                        if( 0 == (sekundy%3) ) czujniki_cnt = search_sensors();<br /> <br />                        /* co trzy sekundy gdy reszta z dzielenia modulo 3 == 1 wysyłaj rozkaz pomiaru do czujników */<br />                        if( 1 == (sekundy%3) ) DS18X20_start_meas( DS18X20_POWER_EXTERN, NULL );<br /> <br />                        /* co trzy sekundy gdy reszta z dzielenia modulo 3 == 2 czyli jedną sekundę po rozkazie konwersji<br />                         *  dokonuj odczytu i wyświetlania temperatur z 2 czujników jeśli są podłączone, jeśli nie<br />                         *  to pokaż komunikat o błędzie<br />                         */<br />                        if( 2 == (sekundy%3) ) {<br />                                if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;0&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(0);<br />                                else {<br />                                        lcd_locate(1,0);<br />                                        lcd_str(&quot; error &quot;);<br />                                }<br /> <br />                                if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;1&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(9);<br />                                else {<br />                                        lcd_locate(1,9);<br />                                        lcd_str(&quot; error &quot;);<br />                                }<br />                        }<br /> <br />                        /* zerujemy flagę aby tylko jeden raz w ciągu sekundy wykonać operacje */<br />                        s1_flag=0;<br />                } /* koniec sprawdzania flagi */<br />//WARUNKI DLA ZAPALEnia DIODY<br /><br /> <br /> <br />//sprawdzamy czujnik1<br />if( temperatura_czujnika_1 &gt;= temperatura_docelowa )<br />{<br /> <br />    PORTB |= (1&lt;&lt;PB0);<br />}<br />else<br />{<br />PORTB &amp;= ~(1&lt;&lt;PB0);<br /><br />}<br /><br /><br />        } /* koniec pętli nieskończonej */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8178">kamil12239</a> — 8 paź 2015, o 17:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2015-10-08T15:48:29+01:00</updated>
<published>2015-10-08T15:48:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141841#p141841</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141841#p141841"/>
<title type="html"><![CDATA[Re: Czujniki DS18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141841#p141841"><![CDATA[
Jedną z możliwości reakcji na przekroczenie ustalonych progów temperatury w układach DS18B20 jest zapis tych temperatur w specjalnych rejestrach pamięci SCRATCHPAD - TH REGISTER i TL REGISTER. Jeśli zmierzona temperatura będzie niższa niż zadana TL lub wyższa niż TH - układ DS18B20 generuje alarm. Przy pomocy algorytmu wyszukiwania układów 1-wire ( 1-Wire Search Algorithm patrz nota aplikacyjna: APPLICATION NOTE 187 na stronie producenta) można odczytać numer seryjny układu lub numery seryjne układów jeśli jest ich więcej generujących alarm i wtedy odpowiednio sterować jakimiś wyjściami.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 8 paź 2015, o 15:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marmur]]></name></author>
<updated>2015-10-07T19:11:17+01:00</updated>
<published>2015-10-07T19:11:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141762#p141762</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141762#p141762"/>
<title type="html"><![CDATA[Re: Czujniki DS18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141762#p141762"><![CDATA[
Sama logika (gdzieś zapętlona) gaszenia/zapalania powinna wygladac mniej wiecej tak (o ile dobrze zrozumiałem co chcesz zrobić):<br /><br />[syntax=c]//funkcje są fikcyjne, podstaw swoje<br />//dostosuj tez typ zmiennej według potrzeby<br />uint16_t temperatura_czujnika_1 = odczytajTemperatureCzujnik(1); //zakladam ze czujnik zwraca temperature pomnozona przez 10<br />uint16_t temperatura_czujnika_2 = odczytajTemperatureCzujnik(2); //, u Ciebie moze byc inaczej, ale logika bedzie ta sama<br /><br /><br />uint16_t temperatura_docelowa = 250; //250 = 25.0 stopni C<br /><br /><br />//sprawdzamy czujnik1<br />if( temperatura_czujnika_1 &gt;= temperatura_docelowa )<br />{<br />    if( stanDiody(1) == false ) //stanDiody to funkcja odczytujaca np. stan portu<br />{<br />        zapalDiode(1); //zapalDiode funkcja wystawiajaca bit odpowiadajacy portowi i pinowi diody 1<br />}<br />}<br />else if( stanDiody(1) == true )<br />{<br />zgasDiode(1); <br />}<br /><br />//sprawdzamy czujnik2<br />if( temperatura_czujnika_2 &gt;= temperatura_docelowa )<br />{<br />    if( stanDiody(2) == false ) <br />{<br />        zapalDiode(2);<br />}<br />}<br />else if( stanDiody(2) == true )<br />{<br />zgasDiode(2);<br />}[/syntax]<br /><br /><br />Jeżeli masz podobnie i nie działa, problemu trzeba poszukać gdzieś indziej.<br />Ale ciężko wróżyć, podaj wtedy kod swojego softu <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=10570">marmur</a> — 7 paź 2015, o 19:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2015-10-07T18:47:31+01:00</updated>
<published>2015-10-07T18:47:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141755#p141755</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141755#p141755"/>
<title type="html"><![CDATA[Re: Czujniki DS18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141755#p141755"><![CDATA[
Witam<br /><div class="quotetitle">kamil12239 napisał(a):</div><div class="quotecontent"><br />...problem polega na tym że chcę zapisać warunki dla tych czujników np jezeli temp z pierwszego czujnika jest większa niż 25 *C to zapal diode nr 1. , jeżeli temp1 jest większa od temp2 to zapal diode nr 2.Do warunków tych użyłem zmiennej cel....<br /></div><br />Problem polega na tym, że nie wiemy co naskrobałeś w kodzie głównym. Pokaż Twój kod ( oczywiście pomijając &quot;Mirkowe&quot; kody).<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 7 paź 2015, o 18:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kamil12239]]></name></author>
<updated>2015-10-07T18:29:42+01:00</updated>
<published>2015-10-07T18:29:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141750#p141750</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141750#p141750"/>
<title type="html"><![CDATA[Czujniki DS18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13154&amp;p=141750#p141750"><![CDATA[
Witam.<br /> Mam układ z ATMEGA32 a w nim wyświetlacz LCD, kilka diod na wyjściu i dwa czujniki DS18B20 podłączone w trybie normalnym do jednego pinu mikrokontrolera. Korzystam z bibliotek pana Mirka z blue boka. Wszystko ładnie wyświetla mi temperaturę z dwóch czujników ale problem polega na tym że chcę zapisać warunki dla tych czujników np jezeli temp z pierwszego czujnika jest większa niż 25 *C to zapal diode nr 1. , jeżeli temp1 jest większa od temp2 to zapal diode nr 2.<br />Do warunków tych użyłem zmiennej <strong>cel</strong>. I dioda zapala się po przekroczeniu 25 *C tylko wtedy gdy jednocześnie przekroczy ją na dwóch czujnikach. <br />Jak zrobić te warunki? <br /><br />Czytałem w książce że kazdemu czujnikowi przypisywane jest odpowiednie ID. Tylko nie wiem jak z tego skorzystać po prostu nie mam pomysłu jak cokolwiek z tym zrobić a kombinowałem na wszelkie możliwe sposoby. Proszę o naprowadzenie mnie jak to wykonać.<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8178">kamil12239</a> — 7 paź 2015, o 18:29</p><hr />
]]></content>
</entry>
</feed>