This is my first arduino project it is a reef controller and it seems to have bad tempurture resolution to me and I wanted to know if this seems normal if my temp is 78.12 deg F the next step would be 78.42 each increment is about .3 degrees is this right I was hoping for better

here is the code I cropped most of my project so it would be easier to find a problem hopefully I didnt take anything out needed

I have a DS18B20 recording temperatures in my house with 12 bit resolution. I see resolution down to 0.01 degrees F in the range I commonly get, i.e. I see 66.00, 66.01 ... 66.98, 66.99 etc in my data.

- The DS18B20 has 4 bits fractional part in 12 bit. == stepsize 0.0625 C == ~0.12 F This stepsize of 0.12F makes the hysteresis control with a margin of 0.10 F really living on the edge as the last bit in every digital sensor can be considered (including the) noise. Think you should increase that to at least 0.5F.

(!sensors.getAddress(Sump, 0)); this line calls the address at device 0 and anytime call on the word Sump it is really seeing that address from there I tried taking it out of my code and it gives me a temp of -196.60 all the time just to be sure

sorry it doesn't compile I cropped my code to make it fit in the forum

(!sensors.getAddress(Sump, 0)); this line calls the address at device 0 and anytime call on the word Sump it is really seeing that address from there I tried taking it out of my code and it gives me a temp of -196.60 all the time just to be sure

OK, I had to make myself more explicit (hurry is seldom good), what I really meant is that the ! (negation) does not have any value.

Quote

sorry it doesn't compile I cropped my code to make it fit in the forum

I prefer cropping it to a minimal version that runs and still shows the bug. That makes it much easier to verify what is going on. If I first need to fix the code to get it running I may(will) introduce new bugs of my own

the problem doesnt seem to lie in the code I have tried several others codes as well this thing was running smooth on the prototype breadbaord transfered it to the project box and now I have tried multiple codes a different sensor a different arduino board pariste mode on and off tried different resistor I am at a loss I noticed that I forgot to mention that it was working till I transfered half of the project but the sensor stayed wired and intack on the breadboard I get consistant results with my reading but not what I was getting

temp is right I just only get tempuraters that display 78.12 -->78.23 --> 78.34 and so on I never get anything in between those numbers just jumps in the reading same no matter what code I find the resolution changes it in the increments that I see at 9 bit my temps look like this 78.00 79.50 81.00 I keep thinking its a programming issue but it isnt I get the same results with multiple codes written by others

I have a DS18B20 recording temperatures in my house with 12 bit resolution.

Are you also using the DallasTemperature library?I used that about a year ago and got strange results and ever since I have been using the OneWire library maintained by Paul@PJRC and have had no problems with it.

- The DS18B20 has 4 bits fractional part in 12 bit. == stepsize 0.0625 C == ~0.12 F This stepsize of 0.12F makes the hysteresis control with a margin of 0.10 F really living on the edge as the last bit in every digital sensor can be considered (including the) noise. Think you should increase that to at least 0.5F.

temp is right I just only get tempuraters that display 78.12 -->78.23 --> 78.34 and so on I never get anything in between those numbers just jumps in the reading same no matter what code I find the resolution changes it in the increments that I see at 9 bit my temps look like this 78.00 79.50 81.00 I keep thinking its a programming issue but it isnt I get the same results with multiple codes written by others

Did you read what robtillaart wrote? The sensor can only give that level of resolution maximally (.12F roughly). 12 bit mode only gives four places to the right of the decimal point. This is .0625C resolution. That's pretty much as good as it gets.

There is a sensor model that will give you a "remainder" count from the internal ADC. This will allow you to calculate to a higher resolution.

Here is a code that runs instead of printing it to lcd it is in serial so no need for extra hardware

It's too hard to sort out what's relevant in your code. There may also one library more than you really need, which may imply a problem. Below is probably the most basic code you can get that can use the Dallas one-wire bus. It is from Hacktronics. While resolution 10 is said to be good enough, I use 12. I find the DS18B20 pretty robust but, if this code won't deliver, it may be a hardware or power supply problem.

I noticed that I forgot to mention that it was working till I transfered half of the project but the sensor stayed wired and intack on the breadboard I get consistant results with my reading but not what I was getting

So why do you think it might be the sketch?? From what you have said, it was working as you expected but then you 'moved half the project' - not sure exactly what you mean by this??

Have you changed the way the 18B20 is powered? Have you extended the distance between the Arduino and the 18B20?