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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-21T19:56:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=2250&amp;mode</id>
<entry>
<author><name><![CDATA[DC2002]]></name></author>
<updated>2014-02-21T19:56:49+01:00</updated>
<published>2014-02-21T19:56:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=71423#p71423</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=71423#p71423"/>
<title type="html"><![CDATA[Re: Pomiar wilgotności powietrza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=71423#p71423"><![CDATA[
Proponuje SHT11. Sprawdziłem, działa bardzo dobrze. Osobiście używam bibliotekę z sieci. Należy tylko pamiętać, że odczyt z czujnika jest blokujący i trwa całe wieki, bo aż 750ms. Interfejs podobny do I2C ale wymaga oczekiwania na koniec konwersji czujnika.<br />Kod pliku sht.c:<br />[syntax=c]//----------------------------------------------------------------------------------<br />//<br />// Sensirion SHTxx Humidity Sensor Library<br />//<br />// Library for using the SHT1x humidity and temperature<br />// sensors from Sensirion (http://www.sensirion.com).<br />// Based on Sensirion application note &quot;Sample Code SHTxx&quot;.<br />//<br />// To use:<br />// - supply 5V to SHTxx (constants in calculations assume 5V, see ShtCalculate() and SHTxx datasheet)<br />// - connect the clock pin of the SHTxx to pin B1 (see Sht.h to change)<br />// - connect the data pin of the SHTxx to pin B2 (see Sht.h to change)<br />//<br />// - call ShtInit() to initialize pins, call when the processor starts<br />// - call ShtMeasure(MEASURE_TEMP) and ShtMeasure(MEASURE_HUMIDITY) to make the measurements<br />// - call ShtCalculate() to convert measurements to real-world units<br />//<br />// - call ShtReadStatus() and ShtWriteStatus() to modify the status register<br />//<br />//<br />// ToDo:<br />// - verify checksum digits sent from SHTxx<br />// - implement soft-reset<br />// - handle 12/8-bit temp/humidity readings<br />//<br />// History:<br />// 2003-Jul-03BL- Created<br />//<br />//----------------------------------------------------------------------------------<br /><br />#include &lt;avr/io.h&gt;<br />#include &quot;sht.h&quot;<br />#include &quot;delay.h&quot;<br />#include &quot;RS485.h&quot;//test<br />#include &quot;konfig.h&quot;<br />#include &quot;crc8.h&quot;<br />#include &lt;util/delay.h&gt;<br /><br /><br /><br />void enable_data(void) { sbi(SHT_DDR, SHT_DATA);}// Drive DATA pin<br />void disable_data(void){ cbi(SHT_DDR, SHT_DATA); // Release DATA pin<br />  sbi(SHT_PORT, SHT_DATA); }<br />void data_high(void){ sbi(SHT_PORT, SHT_DATA); }// DATA pin high<br />void data_low(void){ cbi(SHT_PORT, SHT_DATA); }// DATA pin low<br />void clock_high(void){ sbi(SHT_PORT, SHT_CLOCK); } // CLOCK pin high<br />void clock_low(void){ cbi(SHT_PORT, SHT_CLOCK); }// CLOCK pin low<br /><br /><br /><br />//----------------------------------------------------------------------------------<br />// Initialize AVR i/o pins.<br />//----------------------------------------------------------------------------------<br />void ShtInit(void)<br />{<br />sbi(SHT_DDR, SHT_CLOCK);// Set clock pin to output<br />cbi(SHT_PORT, SHT_CLOCK);// Turn off clock pin<br />disable_data();<br />}<br /><br />//----------------------------------------------------------------------------------<br />// generates a transmission start<br />//       _____         ________<br />// DATA:      |_______|<br />//           ___     ___<br />// SCK : ___|   |___|   |______<br />//<br />//----------------------------------------------------------------------------------<br />void transstart(void)<br />{<br />enable_data();<br />data_high();<br />clock_low();<br />DELAY(SHT_DELAY);<br />DELAY(SHT_DELAY);<br /><br />clock_high(); DELAY(SHT_DELAY);<br />data_low();DELAY(SHT_DELAY);<br />clock_low();DELAY(SHT_DELAY); DELAY(SHT_DELAY);<br />clock_high();DELAY(SHT_DELAY);<br />data_high();DELAY(SHT_DELAY);<br />clock_low();<br /><br /><br />}<br /><br />//----------------------------------------------------------------------------------<br />// communication reset: DATA-line=1 and at least 9 SCK cycles followed by transstart<br />//       _____________________________________________________         ________<br />// DATA:                                                      |_______|<br />//          _    _    _    _    _    _    _    _    _        ___     ___<br />// SCK : __| |__| |__| |__| |__| |__| |__| |__| |__| |______|   |___|   |______<br />//----------------------------------------------------------------------------------<br />void ShtReset(void)<br />{<br />unsigned char i;<br />enable_data();<br />data_high();<br />clock_low();<br />for(i=0;i&lt;10;i++) //9 SCK cycles<br />{<br />clock_high();<br />Delay(SHT_DELAY);<br />clock_low();<br />Delay(SHT_DELAY);<br />}<br />transstart(); //transmission start<br />}<br /><br />//----------------------------------------------------------------------------------<br />// reads a byte form the Sensibus and gives an acknowledge in case of &quot;ack=1&quot;<br />//----------------------------------------------------------------------------------<br />char read_byte(void)<br />{<br />unsigned char i,val=0;<br />disable_data();<br /><br />// Read in 8 bits, LSB first<br />for (i=0x80;i&gt;0;i/=2)<br />{<br />clock_high();<br />DELAY(SHT_DELAY);<br />if (bit_is_set(SHT_PIN, SHT_DATA))<br />val=(val | i); //read bit<br />clock_low();<br />}<br /><br />// Send ACK<br />enable_data();<br />data_low();<br />clock_high();<br />DELAY(SHT_DELAY);<br />clock_low();<br />disable_data();<br /><br />return val;<br />}<br /><br />//----------------------------------------------------------------------------------<br />// Writes a byte on the Sensibus and checks the acknowledge.<br />// Returns 0 if the successful<br />//----------------------------------------------------------------------------------<br />char write_byte(unsigned char value)<br />{<br />unsigned char i;<br />unsigned char error = 0;<br /><br />// Write each bit one at a time, LSB first<br />enable_data();<br />for (i=0x80;i&gt;0;i/=2)<br />{<br />if (i &amp; value)<br />data_high();<br />else<br />data_low();<br /><br />clock_high();<br />DELAY(SHT_DELAY);<br />DELAY(SHT_DELAY);<br />clock_low();<br /><br />}<br />disable_data();<br /><br />// Read ACK<br />clock_high();<br />DELAY(SHT_DELAY);<br />error = bit_is_set(SHT_PIN, SHT_DATA);<br />clock_low();<br /><br />return error; //error=1 in case of no acknowledge<br />}<br /><br />//----------------------------------------------------------------------------------<br />// Read humidity or temperature from the sensor.<br />// Returns the value in ticks. Use sht_calc() to convert to real world units.<br />// Returns 0xFFFF if the measurment failed<br />//----------------------------------------------------------------------------------<br />int ShtMeasure(unsigned char mode)<br />{<br />unsigned int temp = 0xFFFF;<br />unsigned charchecksum;<br />unsigned char c,a,b;<br />//uint8_t tablica_crc&#91;2&#93;={0,0};<br />// Signal start of communications<br />transstart();<br /><br />// Request measurement<br />write_byte(mode);<br /><br />// Sensor lowers the data line when measurement<br />// is complete. Wait up to 2 seconds for this.<br />for (c=0; c&lt;20; c++)<br />{<br />if (! bit_is_set(SHT_PIN, SHT_DATA))<br />{<br />break;<br />}<br />DELAY(1000000/10);//100ms<br />}<br /><br />// Read the measurement<br />if (! bit_is_set(SHT_PIN, SHT_DATA))<br />{<br />a= read_byte();<br />temp =a;<br />temp = temp &lt;&lt; 8;<br />b=read_byte();<br />temp += b;<br />checksum = read_byte();<br />//if (checksum!=crc8(a,b))return 0xFFFF;<br />}<br />return temp;<br />}<br /><br />//----------------------------------------------------------------------------------------<br />// Calculates tempurature in ^C and humidity in %RH (temperature compensated)<br />// sht_measure() returns temp and humidity in ticks. Use this function to convert<br />// to compensated values in real world units.<br />//<br />// This function returns integers with 2 assumed decimal places. For example 2550<br />// means 25.50. This is to avoid including the floating point math library.<br />//<br />// input :humi &#91;Ticks&#93; (12 bit)<br />// temp &#91;Ticks&#93; (14 bit)<br />// output: humi &#91;%RH&#93; (2 fixed decimals)<br />// temp &#91;^C&#93;  (2 fixed decimals)<br />//----------------------------------------------------------------------------------------<br /><br />void ShtCalculate(int *p_temperature, int *p_humidity)<br />{<br />const long D1x100 = -40 * 100;// for 5V power<br />const long D2x100 = 0.01 * 100;// for 14bit temp<br />const long C1x100 = -4 * 100;// for 12bit humidity<br />const long C2x10000 = 0.0405 * 10000;// for 12bit humidity<br />const long C3x10000000 = -0.0000028 * 10000000;// for 12bit humidity<br />const long T1x100000 = 0.01 * 100000;// for 12bit humidity<br />const long T2x100000 = 0.00008 * 100000;// for 12bit humidity<br /><br />long t = *p_temperature;// temperatere in ticks from sensor<br />long rh = *p_humidity;// humidity in ticks from sensor<br /><br />long t_C;// temperature in celcius: 2 fixed decimals<br />long rh_lin;// relative humidity: 2 fixed decimals<br />long rh_true;// temp compensated humidity: 2 fixed decimals<br /><br />t_C = D1x100 + D2x100*t;// calculate tempurature in celcius from ticks<br /><br />rh_lin = (C3x10000000*rh*rh)/100000 + (C2x10000*rh)/100 + C1x100;<br />rh_true = ((t_C-(25*100)) * (T1x100000 + T2x100000*rh))/100000 + rh_lin;<br /><br />if(rh_true&gt;10000)rh_true=10000; //cut if the value is outside of<br />if(rh_true&lt;10)rh_true=10; //the physical possible range<br /><br />*p_temperature=(int)t_C; //return temperature &#91;^C&#93;<br />*p_humidity=(int)rh_true; //return humidity&#91;%RH&#93;<br />}<br /><br />//----------------------------------------------------------------------------------<br />// Reads the status register with checksum (8-bit)<br />//----------------------------------------------------------------------------------<br />char ShtReadStatus(unsigned char *p_value)<br />{<br />unsigned char error=0;<br />unsigned char checksum=0;<br /><br />transstart(); //transmission start<br />error = write_byte(STATUS_REG_R); //send command to sensor<br />*p_value = read_byte(); //read status register (8-bit)<br />checksum = read_byte(); //read checksum (8-bit)<br />return error; //error=1 in case of no response form the sensor<br />}<br /><br /><br />//----------------------------------------------------------------------------------<br />// Writes the status register . Note this library only supports the default<br />// 14 bit temp and 12 bit humidity readings.<br />//----------------------------------------------------------------------------------<br />char ShtWriteStatus(unsigned char value)<br />{<br />unsigned char error=0;<br />transstart(); //transmission start<br />error += write_byte(STATUS_REG_W);//send command to sensor<br />error += write_byte(value); //send value of status register<br />return error; //error&gt;=1 in case of no response form the sensor<br />}[/syntax]<br /><br />Kod pliku sht.h<br /><br />[syntax=c]//----------------------------------------------------------------------------------<br />//<br />// Sensirion SHT1x Humidity Sensor Library<br />//<br />//----------------------------------------------------------------------------------<br /><br />#ifndef __sht_h<br />#define __sht_h<br /><br />#define XTAL 8000000// Processor clock<br /><br />#define sbi(portt,pinn) portt|=_BV(pinn) //dc<br />#define cbi(porttt,pinnn) porttt&amp;=~_BV(pinnn) //dc<br />#define tbi(poty,piny) porty^=_BV(piny)<br /><br />void data_high();<br />void clock_high();<br />void data_low();<br />void clock_low();<br /><br />#define SHT_TEMPERATURE 0x03// Measure temp - for ShtMeasure<br />#define SHT_HUMIDITY 0x05// Measure humidity - for ShtMeasure<br /><br />#define SHT_DDRDDRC// Port with clock and data pins<br />#define SHT_PORTPORTC// Port with clock and data pins<br />#define SHT_PINPINC// Port with clock and data pins<br />#define SHT_CLOCK5// Pin used to output clock to SHT<br />#define SHT_DATA4// Pin used to read/output data from/to SHT<br /><br />#define SHT_DELAY25// uS delay between clock rise/fall<br /><br />#define STATUS_REG_W 0x06 // Command to read status register<br />#define STATUS_REG_R 0x07 // Command to write status register<br />#define RESET 0x1e // Command for soft reset (not currently used)<br /><br /><br />void ShtInit(void);<br />void ShtReset(void);<br />int  ShtMeasure(unsigned char mode);<br />void ShtCalculate(int *p_temperature, int *p_humidity);<br />char ShtReadStatus(unsigned char *p_value);<br />char ShtWriteStatus(unsigned char value);<br /><br />#endif[/syntax]<br /><br />delay.c:<br />[syntax=c]//----------------------------------------------------------------------------------<br />//<br />// Delay functions<br />//<br />// History:<br />// 2003-07-06BL- Created<br />//<br />//----------------------------------------------------------------------------------<br /><br /><br /><br />// ------------------------------------------------------------------<br />//Quick and dirty Delay (Chris Efstathiou)<br />// ------------------------------------------------------------------<br />void Delay(unsigned long us)<br />{<br /> // 6 cpu cycles per loop + 16 cycles overhead<br /><br /> __asm__ volatile (<br /> &quot;L_%=: \n\t&quot; \<br /> &quot;subi %A0,lo8(-(-1)) \n\t&quot; \<br /> &quot;sbci %B0,hi8(-(-1)) \n\t&quot; \<br /> &quot;sbci %C0,hlo8(-(-1)) \n\t&quot; \<br /> &quot;sbci %D0,hhi8(-(-1)) \n\t&quot; \<br /> &quot;brne L_%= \n\t&quot; \<br /> : /* NO OUTPUT */ \<br /> : &quot;r&quot; (us) \<br /> ); \<br /><br />return;<br />}[/syntax]<br /><br />Delay.h<br />[syntax=c]#ifndef __delay_h<br />#define __delay_h<br /><br />#define DELAY(us)(Delay(((us*(XTAL/1000000))-16)/6))<br /><br />void Delay(unsigned long us);<br /><br />#endif[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=286">DC2002</a> — 21 lut 2014, o 19:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mistrzu]]></name></author>
<updated>2013-09-24T13:35:28+01:00</updated>
<published>2013-09-24T13:35:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=50672#p50672</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=50672#p50672"/>
<title type="html"><![CDATA[Re: Pomiar wilgotności powietrza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=50672#p50672"><![CDATA[
możecie sprawdzić też bardzo dokładny czujnik firmy Rotronic HC2-S. To jest sonda, która mierzy i wilgotność i temperaturę. Ma dwa kanały komunikacyjne, analogowy 0...1V oraz cyfrowy (UART) np. I2C, także można to wykorzystać na różne sposoby.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1788">Mistrzu</a> — 24 wrz 2013, o 13:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PawelGaj]]></name></author>
<updated>2013-02-03T16:53:31+01:00</updated>
<published>2013-02-03T16:53:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26737#p26737</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26737#p26737"/>
<title type="html"><![CDATA[Re: Pomiar wilgotności powietrza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26737#p26737"><![CDATA[
Jeszcze tańszy jest SHT10 <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=784">PawelGaj</a> — 3 lut 2013, o 16:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kila]]></name></author>
<updated>2013-02-03T12:20:01+01:00</updated>
<published>2013-02-03T12:20:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26716#p26716</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26716#p26716"/>
<title type="html"><![CDATA[Re: Pomiar wilgotności powietrza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26716#p26716"><![CDATA[
Dzięki, już zaczynam studiowanie obsługi STH21 <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ten będzie idealny - przestępna cena i jak się okazuje, nie taka trudna obsługa i2c <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=699">kila</a> — 3 lut 2013, o 12:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-03T11:40:32+01:00</updated>
<published>2013-02-03T11:40:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26711#p26711</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26711#p26711"/>
<title type="html"><![CDATA[Re: Pomiar wilgotności powietrza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26711#p26711"><![CDATA[
Jest również DHT22, oraz jego słabszy brat DHT11(którego miałem i obsługiwałem).<br /><br />Zalety to cena, i w przypadku DHT22 jak na tą cenę duża dokładność.<br />Wady to poryta komunikacja, podobna do 1wire, czas reakcji (nie wiem jak w dht22) oraz (w przypadku dht11) zakres temperatur.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 3 lut 2013, o 11:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kila]]></name></author>
<updated>2013-02-03T11:30:04+01:00</updated>
<published>2013-02-03T11:30:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26708#p26708</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26708#p26708"/>
<title type="html"><![CDATA[Re: Pomiar wilgotności powietrza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26708#p26708"><![CDATA[
Sun, nie wiem czy sobie poradzę z Twoimi bibliotekami <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Widzę, że napisane są na Twoje potrzeby, używając C++ i programowania obiektowego. Ała...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=699">kila</a> — 3 lut 2013, o 11:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kila]]></name></author>
<updated>2013-02-03T10:00:57+01:00</updated>
<published>2013-02-03T10:00:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26695#p26695</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26695#p26695"/>
<title type="html"><![CDATA[Re: Pomiar wilgotności powietrza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26695#p26695"><![CDATA[
No dobrze, spróbuję chyba uderzyć w ten czujnik... Dzięki!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=699">kila</a> — 3 lut 2013, o 10:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-02-03T09:57:55+01:00</updated>
<published>2013-02-03T09:57:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26694#p26694</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26694#p26694"/>
<title type="html"><![CDATA[Re: Pomiar wilgotności powietrza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26694#p26694"><![CDATA[
tak , ale sa proste do opanowania , pisałem juz o tym i kol kierlan tez<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 3 lut 2013, o 09:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kila]]></name></author>
<updated>2013-02-03T09:51:18+01:00</updated>
<published>2013-02-03T09:51:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26693#p26693</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26693#p26693"/>
<title type="html"><![CDATA[Re: Odp: Pomiar wilgotności powietrza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26693#p26693"><![CDATA[
I pewnie obydwa sterowane po i2c?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=699">kila</a> — 3 lut 2013, o 09:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-02-03T09:30:06+01:00</updated>
<published>2013-02-03T09:30:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26692#p26692</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26692#p26692"/>
<title type="html"><![CDATA[Re: Pomiar wilgotności powietrza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26692#p26692"><![CDATA[
W zasadzie to moge polecić SHT21 ew SHT11<br /><br />używałem obu są dobre .... ale w końcu to szwajcarska precyzja Sensiriona<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 3 lut 2013, o 09:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kila]]></name></author>
<updated>2013-02-03T08:37:45+01:00</updated>
<published>2013-02-03T08:37:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26690#p26690</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26690#p26690"/>
<title type="html"><![CDATA[Pomiar wilgotności powietrza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2250&amp;p=26690#p26690"><![CDATA[
Witam kolegów.<br /><br />Pojawiła się potrzeba zbudowania miernika wilgotności. Nie mam totalnie doświadczenia w tym temacie, także ciężko mi wystartować. Wybrałem dwa czujniki, opierając się na w sumie nie wiem czym, chyba na trudności oprogramowania.<br /><br /><span style="font-size: 85%; line-height: normal">Plusy i Minusy wyłuskane tylko i wyłącznie przeze mnie</span><br /><br />1. HIH-4000-002 (<a href="http://www.tme.eu/pl/Document/e6db3bab38139fc9aad882160ef7c62e/HIH-4000.pdf"  class="postlink">nota pdf</a>) - czujnik, który działa na zasadzie wystawiania pewnego napięcia na wyjściu. Mierzę to potem przetwornikiem ADC i wyświetlam na LCD. <br />PLUSY:<br />- nie drogi<br />- łatwo napisać bibliotekę<br />MINUSY:<br />- duża odchyłka przy zmianie temperatury<br /><br />2. SHT71 (<a href="http://www.tme.eu/pl/Document/0e60112e3a1a376ef865537024424b86/514606.pdf"  class="postlink">nota PDF</a>) - czujnik, komunikujący się z uP poprzez magistralę I2C. <br />PLUSY:<br />- bardzo dokładny<br />MINUSY: <br />- karkołomna (?) obsługa wg tego, co wyczytałem w nocie PDF<br />- cena przewyższa 100 zł <br /><br />Teraz tak - nie będę budować tego urządzenia do celów medycznych, więc pierwszy czujnik nie jest taki zły. Aczkolwiek, wg charakterystyki 4 z noty pdf widać odchyłkę o 0,5V dla tej samej wilgotności ale dla temp. 0 - 70 stopni. Jakaś odchyłka jest, pytanie czy dla temperatury domowej 20-30 *C jaka będzie odchyłka i błąd pomiarowy.<br />Drugi czujnik z kolei jest bardzo dokładny, ale komunikuje się po magistrali I2C, której jeszcze do końca nie kumam. Z tego co wyczytałem w nocie i na pewnym niezaprzyjaźnionym forum lekko się przestraszyłem i schowałem pod kołderkę jak dziewczynka. Ale z drugiej strony, to jest wyzwanie. Można się nauczyć komunikacji po I2C.<br /><br />Co mi koledzy polecicie? Może jakiś inny czujnik? Może jakieś doświadczenia macie w tym temacie?<br /><br />Pozdrawiam serdecznie!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=699">kila</a> — 3 lut 2013, o 08:37</p><hr />
]]></content>
</entry>
</feed>