CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

Question
Goto page 1, 2  Next
 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
alireza121



Joined: 09 Dec 2010
Posts: 9

View user's profile Send private message

Question
PostPosted: Wed Jan 05, 2011 8:22 am     Reply with quote

Hello

I used Hansolo's code for my PIC : 18f452 as follows and I got good result. Please consider my question after that :
http://www.ccsinfo.com/forum/viewtopic.php?t=28564
I have a question :

As you know the output of SHT10 is digital and I want to have it as analog to apply to one of analog input pin of PIC18f452.

How can I convert SHT10 output (digital) to analog ? I found the read_adc() in CCS which is for converting of analog to digital and is not applicable now.

If it is possible, Please send me the code.

Thanks a lot in advance,
Alireza121
Ttelmah



Joined: 11 Mar 2010
Posts: 19545

View user's profile Send private message

PostPosted: Wed Jan 05, 2011 10:33 am     Reply with quote

Not without extra hardware.
You could do a 'crude' conversion, by programming the PIC's PWM, to give 0 to 1023, for the temperature range you want, then adding an external integrator to covert this to a voltage. Otherwise, you need to add an external DAC, and use this to output the voltage you require.

Best Wishes
alireza121



Joined: 09 Dec 2010
Posts: 9

View user's profile Send private message

Question
PostPosted: Wed Jan 05, 2011 10:45 am     Reply with quote

Hello Ttelmah

Many thanks for your email.

Would you please clarify more and send me the code?
Thanks again,

Alireza121
rnielsen



Joined: 23 Sep 2003
Posts: 852
Location: Utah

View user's profile Send private message

PostPosted: Wed Jan 05, 2011 11:02 am     Reply with quote

You would need to have a PIC 'talk' to the SHT10 and receive the digital information from it. Then have the PIC drive a DAC that would apply that value to the output of the DAC. I think that's about the most simplest way to do it.

I'm curious though, if you're just going to input it into another PIC why not just input the digital value into your F452 and have it massage the data there? Seems a waste to go from digital->analog->digital because the analog input of your F452 would just convert it to a digital value anyway.

Ronald
newguy



Joined: 24 Jun 2004
Posts: 1909

View user's profile Send private message

PostPosted: Wed Jan 05, 2011 11:20 am     Reply with quote

rnielsen wrote:
I'm curious though, if you're just going to input it into another PIC why not just input the digital value into your F452 and have it massage the data there? Seems a waste to go from digital->analog->digital because the analog input of your F452 would just convert it to a digital value anyway.


Because this route requires the least thinking/understanding because he can then cut & paste things that others have done. And that's why he asked Ttelmah to do the DAC work for him.
alireza121



Joined: 09 Dec 2010
Posts: 9

View user's profile Send private message

Question
PostPosted: Wed Jan 05, 2011 12:04 pm     Reply with quote

Hello dear friends,

I think there is something wrong.

I review the problem again :

The SHT10 output is digital and at present I connected it to one of digital input of 18f452 and my system (temperature and humidity measuring system) is working properly. Now, I am reading the humidity and temperature on LCD properly.

I don't want to use an analog sensor and want to use just SHT10 from SENSIRION in my project due to its high accuracy.

My question is :

I need to have SHT10 output as analog signal,an analog signal that change its value according to changes in temperature and humidity. Because of output of SHT10 is digital, I should write a program in 18f452 to convert digital output of SHT10 to analog signal and I want to have this value to input of remaining of my program. Because remaining of my program needs analog signal.

I wrote a program in CCS to get analog signal from digital signal of SHT10 for 18f452, but couldn't get result.

Please help me in this regard.
Hope above explanation clarify my problem.

Waiting to your kind replies.
Thanks in advance,

Alireza121
temtronic



Joined: 01 Jul 2010
Posts: 9245
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Wed Jan 05, 2011 1:13 pm     Reply with quote

Show us your code for reading the SHT10 and converting it to analog.As others have said it's A waster of time to go from digital to analog to digital.... but heck, you're the programmer and only you know why you want to do all this extra work.
PS, everytime you convert, you will lose accuracy in your readings.
SherpaDoug



Joined: 07 Sep 2003
Posts: 1640
Location: Cape Cod Mass USA

View user's profile Send private message

PostPosted: Wed Jan 05, 2011 1:18 pm     Reply with quote

Where is this analog signal going? If it is only going into the A/D of another PIC18f452, you would be much better off to send a digital signal between the two processors.

1) Why do you want an analog signal?
2) What sort of accuracy and resolution do you need?
_________________
The search for better is endless. Instead simply find very good and get the job done.
newguy



Joined: 24 Jun 2004
Posts: 1909

View user's profile Send private message

PostPosted: Wed Jan 05, 2011 1:21 pm     Reply with quote

SherpaDoug wrote:
1) Why do you want an analog signal?


That's the assignment he was given at school.

Quote:
2) What sort of accuracy and resolution do you need?


I'm betting he doesn't know.
rnielsen



Joined: 23 Sep 2003
Posts: 852
Location: Utah

View user's profile Send private message

PostPosted: Wed Jan 05, 2011 1:30 pm     Reply with quote

The SHTXX series sensors use an I2C bus for communications, though it's not completely I2C compliant. You need 2 signal lines to communicate with the sensor. There are several posts on the proper way to talk to it. It's impossible to get the SHT10 to give any kind of analog signal out. Do you have the data sheet for it? Read it well.

I would suggest you learn how to talk to the sensor first and how to get the data out of it. If you have code that you have tried, post it.

Ronald
alireza121



Joined: 09 Dec 2010
Posts: 9

View user's profile Send private message

Question
PostPosted: Wed Jan 05, 2011 1:51 pm     Reply with quote

1.I need the analog signal for input of the fuzzy logic.As you know input of fuzzy logic is analog not digital.

2.Accuracy and resolution which is in SHT10 datasheet is enough for my current application:

for relative humidity : +/- 4.5%

for temperature : +/- 0.5 %

Many thanks in advance for your replies.
temtronic



Joined: 01 Jul 2010
Posts: 9245
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Wed Jan 05, 2011 2:03 pm     Reply with quote

Yeesh...they actually TEACH fuzzy logic in school ??? Man I thought it was dead a decade or two ago !
NO, you do NOT need an analog voltage to use 'fuzzy logic'. Think about it, computers (at least ANYTHING made after fuzzy logic was invented, are ALL digital computers.
Whether the computer's internal ADC converts the sensor reading to digital or the peripheral does the conversion is not relevant to HOW fuzzy operates.
As a 'sidebar', I am surprised to find a Fuzzy compiler that will work on any of the new 18 series PICs.
alireza121



Joined: 09 Dec 2010
Posts: 9

View user's profile Send private message

Question
PostPosted: Wed Jan 05, 2011 2:38 pm     Reply with quote

For your information dear friend :

1.Many of systems in the world work with Fuzzy logic, the fuzzy logic hasn't died yet, it is an old controller but useful and efficient. Take a look at your house households, for instance, your washing machine is working on basis of fuzzy logic and also more examples ...

The fuzzy logic has many applications in the world from households appliances to industrial applications, I specially recommend to study more about it.

2.Dear friend : please pay attention in following, since you are in a great mistake :

THE COMPUTERS INVENTED MANY YEARS BEFORE FUZZY LOGIC NOT AFTER THAT, Dr.Zadeh after many researches about answers to questions as fuzzy (not precise) instead of binary answers (Yes or No : precise answers) invented fuzzy logic.

So, we need analog signal (fuzzy) instead of digital signal (binary).
Hope above brief answer clarified the fuzzy logic.

Please study more books and papers in this regard.

3.Not need to special compiler, first you read fuzzy logic fundamentals, after that, start to write the code by CCS compiler.

Cheers,
SherpaDoug



Joined: 07 Sep 2003
Posts: 1640
Location: Cape Cod Mass USA

View user's profile Send private message

PostPosted: Wed Jan 05, 2011 3:10 pm     Reply with quote

The input to a fuzzy logic system is a number. It doesn't matter if that number comes from an A/D converter processing an analog signal, or from a UART processing a digital serial signal. Somehow you need to get the number from the outside world into the processor chip. Within the processor chip, assuming it is a digital chip like a PIC or 99.999% of all the other processors in the world, the number will be stored in digital form. A PIC can not work with an analog signal without immediately converting it to digital form.

If you have a number representing temperature or humidity in a sensor chip which has a digital output, and you need to get the number into a PIC which will use it in digital form, it makes sense to transfer it by digital means. Converting the number to an analog voltage so the PIC can convert it back to digital is complex, error prone, will introduce noise or many sorts, power hungry, and generally a bad idea. Rolling Eyes
_________________
The search for better is endless. Instead simply find very good and get the job done.
temtronic



Joined: 01 Jul 2010
Posts: 9245
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Wed Jan 05, 2011 5:15 pm     Reply with quote

Working backwards...typical of 'fuzzy'....lol

3) CCS compiler works with DIGITAL computers NOT ANALOG. You seem from the start to have to need to have a pure analog control system...NONE of the PIC computers,with CCS compilers actually work with pure analog variables. They all digitize the data.

2)Please supply the make and model of an ANALOG computer that uses fuzzy. You still imply you can use a digital computer to take analog data and perform a function with it. You miss my point, that NO computer made after fuzzy was invented, works using analog signals left in analog form, the data is digitized (ones and zeros, no maybe bits!)

1) For what it's worth, my washing machine is actually pure DIGITAL. Simple on/off switches for all sensors, tachometers and digital encoders for controls and motor speed, PWM of DC motor drive. Nothing anaolog there. Mind you I did design and build it 15 years ago, and aside from an update from LEDs to an LCD panel, nothing has changed.

BTW if you read the Microchip apnote on fusing fuzzy...it is nothing more than a huge sequence of if....then...else coding.....
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group