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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-05-26T08:07:07+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=11813&amp;mode</id>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2015-05-26T08:07:07+01:00</updated>
<published>2015-05-26T08:07:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130117#p130117</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130117#p130117"/>
<title type="html"><![CDATA[Re: Sterowanie grupowe]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130117#p130117"><![CDATA[
paradaise1  - drugi mały procesor tylko do obsługi czujników ?<p>Statystyki: Napisane przez Gość — 26 maja 2015, o 08:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-05-26T07:29:06+01:00</updated>
<published>2015-05-26T07:29:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130115#p130115</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130115#p130115"/>
<title type="html"><![CDATA[Re: Sterowanie grupowe]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130115#p130115"><![CDATA[
Użyj czujnika LM35. Ma on dokładność 0,5 stopnia i czas reakcji pewnie taki jak DS18B20. No i jest analogowy więc wartość możesz zczytywać ciągle. Z tego co widziałem w tej bibliotece w tej funkcji:<br />[syntax=cpp]requestTemperatures();[/syntax]<br /> jest pętla while która mieli się bez przerwy aż do dokonania konwersji. Możesz usunąć tą linijkę i sprawdzać w jakimś if'ie w programie czy dokonała się konwersja.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 26 maja 2015, o 07:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krzysssztof]]></name></author>
<updated>2015-05-26T07:05:24+01:00</updated>
<published>2015-05-26T07:05:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130112#p130112</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130112#p130112"/>
<title type="html"><![CDATA[Re: Sterowanie grupowe]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130112#p130112"><![CDATA[
Oczekujesz te 750ms na pomiar?<br />Najlepiej zrobić to w przerwaniu jakimś - w momencie, gdy pomiar zostanie dokonany, odczytaj jego wartość.<br /><br />Ewentualnie można zmienić rozdzielczość przetwornika ds18b20 (datasheet, strona 8). Przy wymaganej przez Ciebie 0,5stopnia rozdzielczość może być mniejsza od 12 bit, a więc i czas się skraca.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4274">krzysssztof</a> — 26 maja 2015, o 07:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[paradaise1]]></name></author>
<updated>2015-05-25T22:14:37+01:00</updated>
<published>2015-05-25T22:14:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130107#p130107</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130107#p130107"/>
<title type="html"><![CDATA[Sterowanie grupowe]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11813&amp;p=130107#p130107"><![CDATA[
Witam, <br />Chciałbym za pomocą Arduino stworzyć regulator temperatury powietrza, który będzie sterował pracą grzałki. Sterowanie będzie odbywało się w cyklu np 2s, w zależności od obliczonego sygnały sterującego grzałka będzie się włączać i wyłączać (np. syg. sterujący 50% - 1s grzałka on, 1s off). Do pomiaru temperatury wykorzystuję czujnik ds18b20. Problem pojawia się w momencie odczytywania wartości temp - 750ms odczytu zakłóca pracę całego cyklu. Pytanie, czy istnieje programowy sposób obejścia problemu? Bo z tego co się domyślam sprzętowym rozwiązaniem mogłaby być wymiana czujnika na analogowy (mogę się oczywiście mylić, dlatego prosiłbym o komentarz <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" />) - a w przypadku takiego rozwiązania, jaki czujnik byście polecili? Zakres 0 -40' C, rozdzielczość może być 0,5', i możliwie najszybszy czas reakcji na zmianę temperatury. Za wszelkie wskazówki będę wdzięczny.<br /><br />A tutaj kod z obecnym szkieletem projektu:<br /><br />[syntax=cpp]#include &lt;OneWire.h&gt;<br />#include &lt;DallasTemperature.h&gt;<br />#define ONE_WIRE_BUS 7<br /><br />OneWire oneWire(ONE_WIRE_BUS);<br />DallasTemperature sensors(&amp;oneWire);<br /><br />unsigned long czas;<br />unsigned long on = 0;<br />unsigned long off= 0;<br />unsigned long u = 0;<br /><br /><br />void setup(void)<br />{<br />Serial.begin(9600);<br />sensors.begin();<br />pinMode(13, OUTPUT);<br />}<br />void loop(void)<br />{<br />czas = millis();<br /><br />if (czas &gt;= on)<br />  {<br />   u=100 // W tym miejscu będzie obliczany sygnał sterujący ustawiający czas trwania impulsu<br />   digitalWrite(13, HIGH);<br />  on = czas + 2000;<br />  off = czas+u;<br />  }<br />  <br />if (czas &gt;=off)<br />  {<br />    digitalWrite(13, LOW);<br />  }<br /><br /><br />sensors.requestTemperatures();<br />Serial.print(czas/1000);<br />Serial.print(&quot; &quot;);<br />Serial.println(sensors.getTempCByIndex(0)); <br />Serial.print(&quot; &quot;);<br />Serial.println(u); // <br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10007">paradaise1</a> — 25 maja 2015, o 22:14</p><hr />
]]></content>
</entry>
</feed>