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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-08-11T11:19:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12600&amp;mode</id>
<entry>
<author><name><![CDATA[kiziuk]]></name></author>
<updated>2015-08-11T11:19:30+01:00</updated>
<published>2015-08-11T11:19:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137023#p137023</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137023#p137023"/>
<title type="html"><![CDATA[Re: Więcej, niż 4 x 18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137023#p137023"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />No tak - jak coś nie działa to pewnie biblioteka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> eeeeh panowie panowie ...<br /></div><br /><br />Nie. Jak coś nie działa, to nie działa i szukam przyczyny. Może biblioteka, a może nie. Zresztą, jak wspomniałem, nie zauważyłem niczego, co sugerowałoby, że biblioteka jest zależna od liczby czujników  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />A i wstępne wnioski prowadzą do sprzętu, ale wolałem zapytać zanim zacznę psuć coś, co do tej pory działało.<br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />I to jest podpowiedź dobra .... bo kolega nie rozumie, że zgodnie dataszetem jak piszesz, to może być 4,7K dla jednego czujnika podłączonego w układzie testowym ....<br /></div><br /><br />Problem w tym, że mój o tym nie wspomina. Twierdzi, że magistrala wymaga podciągania przez 5k. Żeby chociaż gwiazdka była  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Pojemność linii i zakłócenia się zwiększają gdy tylko wydłużasz magistralę .... stąd ważne jest coraz mocniejsze podciąganie<br />więc nie zastanawiaj się tylko od razu załóż tam 2,2K a jak nie zadziała to zejdź do 1,2K albo nawet 1K i sprawdź<br /></div><br /><br />Idę szukać takiego SMD  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 33 minutach ]</span></strong><br /><br />Zawiadamiam, że dzięki Waszej pomocy, problem został szybko rozwiązany <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Żeby nie pruć układu, dolutowałem po prostu na szybko kolejne podciągające 4k7 przy wyjściu na okablowanie  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /> <br /><br />Przy okazji, zacząłem się zastanawiać, czy wyjście magistrali 1wire z urządzenia nie powinno być jakoś sprytnie buforowane? Taka noga procka wyciągnięta na zewnątrz na długich kablach jest chyba nie najlepszym rozwiązaniem?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10744">kiziuk</a> — 11 sie 2015, o 11:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-08-11T10:34:13+01:00</updated>
<published>2015-08-11T10:34:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137019#p137019</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137019#p137019"/>
<title type="html"><![CDATA[Re: Więcej, niż 4 x 18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137019#p137019"><![CDATA[
<div class="quotetitle">kiziuk napisał(a):</div><div class="quotecontent"><br />Kod obsługi 1wire jest oparty o biblioteki z książki (pierwsza wersja, więc może potem były jakieś zmiany).<br /></div><br />No tak - jak coś nie działa to pewnie biblioteka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> eeeeh panowie panowie ...<br /><br /><div class="quotetitle">xbary napisał(a):</div><div class="quotecontent"><br />Jeśli to nie pomoże to zmniejszaj rezystor podciągający,<br /></div><br />I to jest podpowiedź dobra .... bo kolega nie rozumie, że zgodnie dataszetem jak piszesz, to może być 4,7K dla jednego czujnika podłączonego w układzie testowym ....<br /><br />Pojemność linii i zakłócenia się zwiększają gdy tylko wydłużasz magistralę .... stąd ważne jest coraz mocniejsze podciąganie<br /><br />więc nie zastanawiaj się tylko od razu załóż tam 2,2K a jak nie zadziała to zejdź do 1,2K albo nawet 1K i sprawdź<br /><br />oczywiście dobór kabli jak pisze xbary to także niebagatelna sprawa .... <br /><br />To nie jest panie kochany programowanie na PC gdzie biblioteka może działać albo nie działać - tu jest ELEKTRONIKA i gdy coś nie działa to przyczyny mogą być w 50% także właśnie w tejże elektronice ... a drugie 50% to trzeba szukać we własnych błędach gdy się zaczyna dopiero z jakimś tematem. Wtedy szybciej się do czegoś dochodzi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 11 sie 2015, o 10:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kiziuk]]></name></author>
<updated>2015-08-11T10:27:34+01:00</updated>
<published>2015-08-11T10:27:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137018#p137018</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137018#p137018"/>
<title type="html"><![CDATA[Re: Więcej, niż 4 x 18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137018#p137018"><![CDATA[
Hmmm, mam 3 czujniki na YTKSY 1x4x0.5 i dwa na skrętce kat.5 (wszystkie odcinki gdzieś po 2 metry), połączone w gwiazdę; przy czym ten nowy czujnik jest też na YTKSY.<br />Czujniki w trybie z osobnym zasilaniem z pociąganiem linii DQ przez 4k7 - zgodnie z datasheetem.<br />No nic, będę kombinował, może to faktycznie jakiś problem sprzętowy. Dużo masz tych czujników na jednej magistrali?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10744">kiziuk</a> — 11 sie 2015, o 10:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xbary]]></name></author>
<updated>2015-08-11T08:49:26+01:00</updated>
<published>2015-08-11T08:49:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137011#p137011</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137011#p137011"/>
<title type="html"><![CDATA[Re: Więcej, niż 4 x 18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=137011#p137011"><![CDATA[
Zmień kabel na YTKSY 1x2x0.5 ... a z zasilaniem jak masz to na 4 żyłkowy. Taki telefoniczny.<br />Jeśli to nie pomoże to zmniejszaj rezystor podciągający, powinno zadziałać jeśli w kod prawidłowy.<br />Dlatego zwracam uwagę na kabel bo właśnie miałem zagwostkę podobną. Zmiana ze skrętki komputerowej kabla pomogła.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=447">xbary</a> — 11 sie 2015, o 08:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kiziuk]]></name></author>
<updated>2015-08-11T07:11:47+01:00</updated>
<published>2015-08-11T07:11:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=136997#p136997</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=136997#p136997"/>
<title type="html"><![CDATA[Więcej, niż 4 x 18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12600&amp;p=136997#p136997"><![CDATA[
Dzień dobry.<br />Zmajstrowałem sobie kiedyś sterownik automatyki do kotłowni, w oparciu o AVR mega32. Postanowiłem ostatnio rozbudować liczbę termometrów, dla lepszego monitorowania stanu kotła i natrafiłem na problem, na którym skończyły mi się pomysły.<br />Kod obsługi 1wire jest oparty o biblioteki z książki (pierwsza wersja, więc może potem były jakieś zmiany).<br />Problem mam taki, że jeśli podłączone są &lt;=4 czujniki do magistrali, wszystko działa (od kilku miesięcy non-stop). Natomiast jeśli podłączę 5 czujnik, wszystkie czujniki na magistrali przestają być widziane.<br />Zmieniłem maksymalną obsługiwaną liczbę czujników w ds18x20.h<br />[syntax=c]#define MAXSENSORS6// &lt;----- Tutaj definiujemy maksymaln¹ iloœæ czujników[/syntax]<br />oraz w głównym programie.<br />Funkcja wykrywania i odczytu temperatury z czujników (używana przy wstępnej konfiguracji czujników) wygląda następująco:<br />[syntax=c]void ConfigTempSensors(void) {<br />//konfiguracja czujnikow<br />//zapis wszystkich ID czujnikow do tablicy uint8_t, wyswietlanie temperatury dla kazdego ID,<br />//przypisanie ID do odpowiedniego rodzaju czujnika, zapis do eeprom<br /><br />uint8_t KeyPressed;<br /><br />//wylaczenie buzzera po nacisnieciu klawisza jako ze nie dziala wylaczanie timerem w glownej petli<br />buzzer_stop;<br />//zatrzymanie otwierania i zamykania zaworu<br />valve_open_stop;<br />valve_close_stop;<br /><br />//wyszukanie czujnikow temperatury na magistrali 1wire<br />czujniki_cnt = search_sensors();<br /><br />current_sensor_id = 0; //id aktualnie wyswietlonego czujnika<br /><br />//<br />//wyswietlanie znalezionych czujnikow i aktualnych temperatur<br />//<br />//wyswietlanie miejsca instalacji kazdego czujnika i przypisywanie odpowiedniego wskazania<br />for (uint8_t i = 0; i &lt; MAX_TEMP_SENSORS; ++i) {<br />KeyPressed = 0;<br />do {<br />//czytanie wyniku pomiarow dla czujnikow co 2 sekundy<br />if (tempsensors_timer == 0) {<br />for (uint8_t j = 0; j &lt; MAX_TEMP_SENSORS; ++j) {<br />if (DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;j&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits)) {<br />temp_sensors&#91;j&#93; = (cel * 10) + cel_fract_bits;<br />if (subzero == 1)<br />temp_sensors&#91;j&#93; = temp_sensors&#91;j&#93; * -1; //temperatura ujemna<br />} else<br />temp_sensors&#91;j&#93; = 2000; //wartosc 2000 oznacza blad odczytu z czujnika<br />}<br />DS18X20_start_meas(DS18X20_POWER_EXTERN, NULL); //uruchomienie pomiaru<br />tempsensors_timer = 200;<br />}<br /><br />//wyswietlanie danych<br />if (statusdisplay_timer == 0) {<br />lcd_cls();<br />lcd_locate(0,0);<br />lcd_str_P(temp_sensors_list&#91;i&#93;); //wyswietlanie nazwy czujnika<br />lcd_locate(1,0);<br />lcd_str(&quot;czujnik&quot;);<br />lcd_str(&quot;\x01&quot;); //podwojna strzalka<br />lcd_int(current_sensor_id); //wyswietlanie ID czujnika<br />lcd_str(&quot; &quot;);<br />if (temp_sensors&#91;current_sensor_id&#93; != 2000) {<br />itoa(temp_sensors&#91;current_sensor_id&#93;,numstr,10); //konwersja temperatury na string<br />AddDecimalPoint(numstr); //dodanie punktu dziesietnego przed ostatnia cyfra<br />lcd_str(numstr); //wyswietlenie temperatury<br />lcd_str(&quot;\xdf&quot;); //znaczek stopni<br />lcd_str(&quot;C&quot;); //znak jednostki temperatury<br />}<br />else<br />lcd_str(&quot;-blad-&quot;);<br />lcd_locate(1,7);<br />statusdisplay_timer = 200;<br />}<br /><br />//obsluga klawiatury<br />//wyswietlanie temperatury z poprzedniego czujnika<br />if (!(KeyUp_PORT &amp; (1 &lt;&lt; KeyUp_PIN))) {<br />if (current_sensor_id &gt; 0)<br />current_sensor_id--;<br />buzzer_start;<br />_delay_ms(30);<br />buzzer_stop;<br />statusdisplay_timer = 0;<br />while (!((KeyUp_PORT &amp; (1 &lt;&lt; KeyUp_PIN))));  //oczekiwanie na zwolnienie klawisza<br />}<br />//wyswietlanie temperatury z nastepnego czujnika<br />if (!(KeyDn_PORT &amp; (1 &lt;&lt; KeyDn_PIN))) {<br />if (current_sensor_id &lt; MAX_TEMP_SENSORS - 1)<br />current_sensor_id++;<br />buzzer_start;<br />_delay_ms(30);<br />buzzer_stop;<br />statusdisplay_timer = 0;<br />while (!((KeyDn_PORT &amp; (1 &lt;&lt; KeyDn_PIN))));  //oczekiwanie na zwolnienie klawisza<br />}<br />//zapamietanie ID aktualnie wyswietlonego czujnika na pozycji danego miejsca instalacji czujnika<br />if (!(KeyOk_PORT &amp; (1 &lt;&lt; KeyOk_PIN))) {<br />for (uint8_t j = 0; j &lt; OW_ROMCODE_SIZE; ++j)<br />temp_sensors_id&#91;i&#93;&#91;j&#93; = gSensorIDs&#91;current_sensor_id&#93;&#91;j&#93;;<br />buzzer_start;<br />_delay_ms(30);<br />buzzer_stop;<br />statusdisplay_timer = 0;<br />while (!((KeyOk_PORT &amp; (1 &lt;&lt; KeyOk_PIN))));  //oczekiwanie na zwolnienie klawisza<br />KeyPressed = 1;<br />}<br />//anulowanie konfiguracji i ponowne przypisanie poprzednio zapamietanych ID czujnikow<br />if (!(KeyBk_PORT &amp; (1 &lt;&lt; KeyBk_PIN))) {<br />buzzer_start;<br />_delay_ms(30);<br />buzzer_stop;<br />statusdisplay_timer = 0;<br />while (!((KeyBk_PORT &amp; (1 &lt;&lt; KeyBk_PIN))));  //oczekiwanie na zwolnienie klawisza<br />//przywracanie zapisanej konfiguracji czujnikow z EEPROM<br />ReadSensorsFromEEPROM();<br />i = MAX_TEMP_SENSORS; //opuszczenie konfiguracji czujnikow<br />KeyPressed = 2;<br />}<br />}<br />while (KeyPressed == 0);<br />}<br /><br />//jesli nacisnieto OK - zapis tablicy czujnikow do EEPROMa<br />if (KeyPressed == 1) {<br />for (uint8_t i = 0; i &lt; MAX_TEMP_SENSORS; ++i)<br />for (uint8_t j = 0; j &lt; OW_ROMCODE_SIZE; ++j){<br />eeprom_busy_wait();<br />eeprom_update_byte((uint8_t*) &amp;eeprom_temp_sensors_id&#91;i&#93;&#91;j&#93;, temp_sensors_id&#91;i&#93;&#91;j&#93;);<br />}<br />buzzer_start;<br />_delay_ms(700);<br />buzzer_stop;<br />}<br />}[/syntax]<br /><br />Dodanie wyświetlania na wyświetlaczu wartości zmiennej czujniki_cnt pokazuje, że jeśli podłączone są 4 czujniki, wartość jest 4, ale jeśli podłączę piąty czujnik, wartość jest 0. Próbowałem zamienić jeden z czujników - wszystko działa, więc okablowanie jak i sam czujnik wydaje się być sprawny.<br />Chwilowo dalej nie doszedłem. Do debugowania muszę co i raz biegać do kotłowni  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /> <br />Czy jest to jakiś znany problem? Przejrzałem kod obsługi DS18x20 jak również 1wire i niespecjalnie rzuciło mi się w moje laickie oko nic, co mogłoby zależeć od liczby czujników.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10744">kiziuk</a> — 11 sie 2015, o 07:11</p><hr />
]]></content>
</entry>
</feed>