Hi all,
am having problem with displaying deg C using the LM 335 temp sender
i believe i have set the AD settings right for 16F877 RA0 pin
have attached the prog and circuit
thanks
Hi all,
am having problem with displaying deg C using the LM 335 temp sender
i believe i have set the AD settings right for 16F877 RA0 pin
have attached the prog and circuit
thanks
IF ITS STOCK IT WONT ROCK
Hi,
I've never used this sensor but are you sure you have it wired correct?
As in you schematic,viewed from the top with the flat side "up" the left most pin should be GND. The middle pin then goes to the analog in of the PIC with a 12k pullup. At least that's how I read the datasheets example for the basic temp sensor circuit.
/Henrik Olsson.
Hi, Cooter
Your conversion formula is wrong ...
°K = °C +273.15... and your scaling doesn't meet anything known.
now, you MUST Download your sensor datasheet ... and wire it decently.
Can't work at this time !!!
Alain
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Oh ya, that circuit's is out in the weeds somewhere.
And when you do get it working, the easiest way I've found to calibrate the system is to dip the sensor in ice water and set the reading to match, not change any resistors or rewire anything, just adjust the math on the PIC to match.
And are you sure the A/D is working right? Have you tried putting a pot across the A/D input? Does that respond correctly?
hi all,
am trying to understand how to implament the ADC on the pic 16f877
my code is for a LM335 temp sensor connected to RA0(pin 2)
the VDD and VSS is from a 7805 voltage reg that also supplies the LM335
Cant get ADC to work from my circuit. or is it my code??????????????
why cant i use decimal ie 0.46 in my maths routine?????????????
This has had me up all week trying to get it to work
PLZ someone guide me in the correct direction
'PIC 16f877 with a LM335 temp sender
'
'
define osc 20 ' 20mhz oscillator
' LCD ROUTINES
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4 '4,5,6,7
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 3
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 2
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
' Define ADCIN parameters
Define ADC_BITS 10 ' Set number of bits in result
define ADC_CLOCK 3 ' Set clock source
Define ADC_SAMPLEUS 50 ' Set sampling time in uS
AD_RAW var word ' Create adval to store result
AD_RESULT var word
TRISA = %11111111 ' Set PORTA to all input
ADCON1 = %10001110 ' Set PORTA analog and RIGHT justify result
ADCON0 = %10000001 ' Configure and turn on A/D Module
Pause 500 ' Wait .5 second
loop:
ADCIN 0, AD_RAW ' Read channel 0 to ad_raw
AD_RESULT = (ad_raw *0.48828) - 273.15 ' Convert Kelvins to Degrees C
Lcdout $fe, 1 ' Clear LCD
Lcdout "TEMP ", DEC AD_Result ," C" ' Display the decimal value
Pause 100 ' Wait .1 second
Goto loop ' Do it forever
End
IF ITS STOCK IT WONT ROCK
Did you really bought the copy of PBP you have????
Did it came with it a MANUAL ???
Did you read the MANUAL ????
Didn't find any reference as to that PBP is NOT supporting floating maths ???
I am looking forward to you replying to the above so that we can continue support here.
Ioannis
P.S. If you are just connect the sensor to the PIC directly, your useful range will be limited (0C-100C is from 2,7315 to 3,7315 Volts). I suggest to use opamps and extend the range of the sensor from 0C->0Volts to 100C->5 Volts.
thanks for the quick responce
got PBP 2.47 from DONTRONICS here in melbourne
Yes. Read the 213 pages and even been looking up web sites with references. downloaded the data sheet read the A2D converter module.. CH 11 pg 127
ok just found 1 error in setting the TRISA had 8 bits set to 1 should have been 6 ie TRISA %111111 not TRISA %11111111
still not workin. even connected a 5k lin pot and got no responce.
and as Ioannis said using an opamp to extend the range i will be now
MY CODE WILL NOT COMPILE WITH THIS LINE
AD_RESULT = (ad_raw *0.48828) - 273.15
Had to do it this way
ad_result = (ad_raw * 48828)/1000
ad_result = ad_result/100
ad_result = (ad_result *27315)/100
WHY????????????????????????????????????????
HMMMMMMM very frustrating
IF ITS STOCK IT WONT ROCK
Can anyone please help me with a schematic on how to achieve what Ioannis is suggesting or is the example below not far away from what I'm looking for?
How do I "electronically" rescale 2,7315Volts to an ideal "0V" and/or a 3,7315Volts to an ideal "5V"?
I don't know...
As I'd like to use my sensor to control a freezer, the temperature range I need goes from -30°C to +30°C.
I found quite some info, for example here and I've already ordered some LM358 opamps to build this circuit.
It looks like this circuit will output 0V at 0°C and 1V at 100°C. It is still "loosing" 4 precious volts, isn't it?
How can this circuit be modified to, again ideally, match something like -30°C = 0V and +30°C = 5V?
![]()
Last edited by flotulopex; - 10th April 2015 at 22:19. Reason: typo
Roger
Bookmarks