<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: LM34DZ Fahrenheit Temperature Sensor</title>
	<atom:link href="http://www.neufeld.newton.ks.us/electronics/?feed=rss2&#038;p=131" rel="self" type="application/rss+xml" />
	<link>http://www.neufeld.newton.ks.us/electronics/?p=131</link>
	<description></description>
	<lastBuildDate>Sun, 08 Dec 2024 17:19:24 -0600</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: Keith Neufeld</title>
		<link>http://www.neufeld.newton.ks.us/electronics/?p=131&#038;cpage=1#comment-24665</link>
		<dc:creator>Keith Neufeld</dc:creator>
		<pubDate>Fri, 12 Mar 2010 12:44:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.neufeld.newton.ks.us/electronics/?p=131#comment-24665</guid>
		<description>Phew, if you follow the link to All Electronics, you can download the datasheet from them.  It shows the pinout that you&#039;re looking for.</description>
		<content:encoded><![CDATA[<p>Phew, if you follow the link to All Electronics, you can download the datasheet from them.  It shows the pinout that you&#8217;re looking for.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Phew</title>
		<link>http://www.neufeld.newton.ks.us/electronics/?p=131&#038;cpage=1#comment-24664</link>
		<dc:creator>Phew</dc:creator>
		<pubDate>Fri, 12 Mar 2010 03:33:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.neufeld.newton.ks.us/electronics/?p=131#comment-24664</guid>
		<description>i am just a beginner  in electronics and i want to know the pin configuration for the LM32DZ.. thanks!</description>
		<content:encoded><![CDATA[<p>i am just a beginner  in electronics and i want to know the pin configuration for the LM32DZ.. thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JimG</title>
		<link>http://www.neufeld.newton.ks.us/electronics/?p=131&#038;cpage=1#comment-23544</link>
		<dc:creator>JimG</dc:creator>
		<pubDate>Wed, 12 Aug 2009 23:06:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.neufeld.newton.ks.us/electronics/?p=131#comment-23544</guid>
		<description>There&#039;s another way to scale an a/d reading that doesn&#039;t involve floating point math, but does require 16 bit variables.

Lets say your a/d reading is a value of 150, which is about .732 volts / 73 degrees

using a simple function such as this will allow you to scale a adc count to any value (with some limitations - see the last paragraph).

By adjusting the value of fs up or down, you can fine tune the output. fs is the value for 1024 counts.

&lt;code&gt;
&lt;pre&gt;
uint16_t scale_adc(uint16_t adc, uint16_t fs)
{
	uint16_t v=adc&lt;&gt;=1;				// divide v by 2
		if (fs&amp;0x8000) {		// see if fs bit 15 is set
			result+=v;		// if so, update result	
		}
		fs&lt;&lt;=1;				// multiply fs by 2
	}
	return result;	
}
// a test program
int	main(void)
{
	uint16_t adc,fs,temp1;
	adc=150;
	for (fs=5000; fs&lt;=5010; fs++) {
		temp1=scale_adc(adc, fs);
		printf(&quot;fs=%d, adc=%d, scale_adc=%d\n&quot;, fs, adc, temp1);
	}
	return 0;
}
&lt;/pre&gt;
&lt;/code&gt;

running this gives:

&lt;pre&gt;
fs=5000, adc=150, scale_adc=731
fs=5001, adc=150, scale_adc=731
fs=5002, adc=150, scale_adc=731
fs=5003, adc=150, scale_adc=731
fs=5004, adc=150, scale_adc=731
fs=5005, adc=150, scale_adc=731
fs=5006, adc=150, scale_adc=731
fs=5007, adc=150, scale_adc=731
fs=5008, adc=150, scale_adc=732
fs=5009, adc=150, scale_adc=732
fs=5010, adc=150, scale_adc=732
&lt;/pre&gt;

So a value of around 5010 would be optimum for 73.2 degrees.

Going a little further, fixing fs at 5010 and varying the adc count:
&lt;pre&gt;
fs=5010, adc=145, scale_adc=708
fs=5010, adc=146, scale_adc=713
fs=5010, adc=147, scale_adc=717
fs=5010, adc=148, scale_adc=723
fs=5010, adc=149, scale_adc=727
fs=5010, adc=150, scale_adc=732
fs=5010, adc=151, scale_adc=736
fs=5010, adc=152, scale_adc=743
fs=5010, adc=153, scale_adc=747
fs=5010, adc=154, scale_adc=752
fs=5010, adc=155, scale_adc=756
&lt;/pre&gt;

This method isn&#039;t perfect, but it doesn&#039;t require floating point math. 

Try to stay away from fs values that are a power of 2 (128,256,512,1024,etc).</description>
		<content:encoded><![CDATA[<p>There&#8217;s another way to scale an a/d reading that doesn&#8217;t involve floating point math, but does require 16 bit variables.</p>
<p>Lets say your a/d reading is a value of 150, which is about .732 volts / 73 degrees</p>
<p>using a simple function such as this will allow you to scale a adc count to any value (with some limitations &#8211; see the last paragraph).</p>
<p>By adjusting the value of fs up or down, you can fine tune the output. fs is the value for 1024 counts.</p>
<p><code></p>
<pre>
uint16_t scale_adc(uint16_t adc, uint16_t fs)
{
	uint16_t v=adc&lt;&gt;=1;				// divide v by 2
		if (fs&amp;0x8000) {		// see if fs bit 15 is set
			result+=v;		// if so, update result
		}
		fs&lt;&lt;=1;				// multiply fs by 2
	}
	return result;
}
// a test program
int	main(void)
{
	uint16_t adc,fs,temp1;
	adc=150;
	for (fs=5000; fs&lt;=5010; fs++) {
		temp1=scale_adc(adc, fs);
		printf("fs=%d, adc=%d, scale_adc=%d\n", fs, adc, temp1);
	}
	return 0;
}
</pre>
<p></code></p>
<p>running this gives:</p>
<pre>
fs=5000, adc=150, scale_adc=731
fs=5001, adc=150, scale_adc=731
fs=5002, adc=150, scale_adc=731
fs=5003, adc=150, scale_adc=731
fs=5004, adc=150, scale_adc=731
fs=5005, adc=150, scale_adc=731
fs=5006, adc=150, scale_adc=731
fs=5007, adc=150, scale_adc=731
fs=5008, adc=150, scale_adc=732
fs=5009, adc=150, scale_adc=732
fs=5010, adc=150, scale_adc=732
</pre>
<p>So a value of around 5010 would be optimum for 73.2 degrees.</p>
<p>Going a little further, fixing fs at 5010 and varying the adc count:</p>
<pre>
fs=5010, adc=145, scale_adc=708
fs=5010, adc=146, scale_adc=713
fs=5010, adc=147, scale_adc=717
fs=5010, adc=148, scale_adc=723
fs=5010, adc=149, scale_adc=727
fs=5010, adc=150, scale_adc=732
fs=5010, adc=151, scale_adc=736
fs=5010, adc=152, scale_adc=743
fs=5010, adc=153, scale_adc=747
fs=5010, adc=154, scale_adc=752
fs=5010, adc=155, scale_adc=756
</pre>
<p>This method isn&#8217;t perfect, but it doesn&#8217;t require floating point math. </p>
<p>Try to stay away from fs values that are a power of 2 (128,256,512,1024,etc).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bateeze henry</title>
		<link>http://www.neufeld.newton.ks.us/electronics/?p=131&#038;cpage=1#comment-23054</link>
		<dc:creator>bateeze henry</dc:creator>
		<pubDate>Fri, 17 Apr 2009 13:42:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.neufeld.newton.ks.us/electronics/?p=131#comment-23054</guid>
		<description>am in uganda trying to design a LED thermometer requiring an LM34DZ temperature sensor IC but i have failed to get it. i would like alternative ICs of LM34DZ.


 i will greatful for your response</description>
		<content:encoded><![CDATA[<p>am in uganda trying to design a LED thermometer requiring an LM34DZ temperature sensor IC but i have failed to get it. i would like alternative ICs of LM34DZ.</p>
<p> i will greatful for your response</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bateeze henry</title>
		<link>http://www.neufeld.newton.ks.us/electronics/?p=131&#038;cpage=1#comment-23053</link>
		<dc:creator>bateeze henry</dc:creator>
		<pubDate>Fri, 17 Apr 2009 13:27:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.neufeld.newton.ks.us/electronics/?p=131#comment-23053</guid>
		<description>iam in uganda trying to design a LED thermometer requiring an LM34DZ temperature sensor IC but i have failed to get it. i would like alternative ICs of LM32DZ</description>
		<content:encoded><![CDATA[<p>iam in uganda trying to design a LED thermometer requiring an LM34DZ temperature sensor IC but i have failed to get it. i would like alternative ICs of LM32DZ</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keith Neufeld</title>
		<link>http://www.neufeld.newton.ks.us/electronics/?p=131&#038;cpage=1#comment-22847</link>
		<dc:creator>Keith Neufeld</dc:creator>
		<pubDate>Tue, 17 Feb 2009 16:18:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.neufeld.newton.ks.us/electronics/?p=131#comment-22847</guid>
		<description>Dave, the I2C chips sound interesting, especially in SMT.  Thanks for pointing that out!</description>
		<content:encoded><![CDATA[<p>Dave, the I2C chips sound interesting, especially in SMT.  Thanks for pointing that out!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://www.neufeld.newton.ks.us/electronics/?p=131&#038;cpage=1#comment-22842</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Mon, 16 Feb 2009 23:15:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.neufeld.newton.ks.us/electronics/?p=131#comment-22842</guid>
		<description>There are quite a few temperature sensor ICs in the LM family.  In addition to the analog ones, there are some which are digital (e.g., National LM75/Maxim DS75).  These have an I2C bus, which means that you can 
put several of them on the same I2C bus (e.g., Sprinkle them around a card, enclosure, etc.).

Dave</description>
		<content:encoded><![CDATA[<p>There are quite a few temperature sensor ICs in the LM family.  In addition to the analog ones, there are some which are digital (e.g., National LM75/Maxim DS75).  These have an I2C bus, which means that you can<br />
put several of them on the same I2C bus (e.g., Sprinkle them around a card, enclosure, etc.).</p>
<p>Dave</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keith Neufeld</title>
		<link>http://www.neufeld.newton.ks.us/electronics/?p=131&#038;cpage=1#comment-22793</link>
		<dc:creator>Keith Neufeld</dc:creator>
		<pubDate>Wed, 04 Feb 2009 14:39:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.neufeld.newton.ks.us/electronics/?p=131#comment-22793</guid>
		<description>Jim, I don&#039;t know why I thought there was no floating point on the Arduino -- you&#039;re clearly correct.  Thanks for pointing that out.

I like the LM34DZ in part because it doesn&#039;t require external components for preamplification or level-shifting.  But I really dig your idea of feeding a different voltage to AREF -- thanks!</description>
		<content:encoded><![CDATA[<p>Jim, I don&#8217;t know why I thought there was no floating point on the Arduino &#8212; you&#8217;re clearly correct.  Thanks for pointing that out.</p>
<p>I like the LM34DZ in part because it doesn&#8217;t require external components for preamplification or level-shifting.  But I really dig your idea of feeding a different voltage to AREF &#8212; thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jin</title>
		<link>http://www.neufeld.newton.ks.us/electronics/?p=131&#038;cpage=1#comment-22789</link>
		<dc:creator>Jin</dc:creator>
		<pubDate>Wed, 04 Feb 2009 02:57:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.neufeld.newton.ks.us/electronics/?p=131#comment-22789</guid>
		<description>I think Arduino does have floating point. I&#039;ve used it, at any rate: http://www.arduino.cc/en/Reference/Float

A very simple improvement would be to feed the 3.3V output to the AREF pin for ~3.1 steps per degree. Slightly more involved would be to use an op amp to give you full scale for the temperature range of interest.</description>
		<content:encoded><![CDATA[<p>I think Arduino does have floating point. I&#8217;ve used it, at any rate: <a href="http://www.arduino.cc/en/Reference/Float" rel="nofollow">http://www.arduino.cc/en/Reference/Float</a></p>
<p>A very simple improvement would be to feed the 3.3V output to the AREF pin for ~3.1 steps per degree. Slightly more involved would be to use an op amp to give you full scale for the temperature range of interest.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
