harima2

I have tried your code with a "Seeduino", and it works very fine.But I need a smaller board for my project .

I 'm trying despairingly this code on a "Stickduino" or a "Pro mini" (5V with a regulator, but I have tried also with the supply of the Pro mini 3V)Impossible to obtain correct values (it's always '0')

I have verified all the solders, all the wires....Nothing !!

Please anay idea or suggestion...?

Ardni

Hi,I just thought I'd add something to this old thread. It seems some people have been having trouble getting the code to work. I too had my fair share of problems and have posted them below in an effort to help others in the future who may have similar problems. I'm not sure if the problems of the previous 2 poster are related to mine, but perhaps they have found a solution at this stage.

Anyway, I bought the SCP1000 breakout board from sparkfun and tried to interface it to an arduino duemilnova. The first problem was the 5V I/O pins on the arduino and the 3.3V pins on the SCP1000. To overcome this I got the logic level converters also from sparkfun and wired them up. Still the code did not work. The details provided by sparkfun for the logic level converters are a little misleading if not read carefully, on the low voltage side you will get half of the voltage on the high side, and not the actual low voltage. The problem I had was that I was driving 2.5V to the SCP1000 I/O pins and had the SCP1000 powered of a 3.3V supply. There is mention in the datasheet for the SCP1000 that Vcc cannot differ from the I/O voltages by more than a certain amount. (I don't have to hand the exact values). So the solution was to power the SCP1000 of 2.5V. This actually produces less error comapared to a higher voltage according to the datasheet also, which is a bonus. I have been getting what seem to be acuarate readings of pressure and temperature ever since.

Anyway hopfully this post will save somebody some time in getting their sensor to work.

C.Zwanenburg

normally the world pressure will be between 980 hPa and 1040 hPa. A value of 1073 hPa or the older value of mBar is way to high. Maybe with a the addition of a constant like 1073 x 0.95 = 1020 to get a realistic value.

In my setup I got the exact pressure in Pascal and had to convert it to hPa, by adding a constant of 0,01.

Temperature was a bigger problem, I got something of 30 degrees C on a 20 degrees C day, so there I had to adjust this value.

C.Zwanenburg

0.95 is not a tested value. If you got a series of readings every 2 or 5 or 10 seconds, what you might require, you need to correct it to your local value. At this point in the Netherlands it's about 1031 hPa. If you got values around 1073 I suggest you take 0.9608.

Although you could be better looking for the reason why you have 1073, because if you use a Sparkfun SPC1000 Pressure Sensor is should be calibrated anyway, and no adjustment is needed.

Silvandre

I have my Arduino MEGA plugged with a SCP1000 P01. the 3.3V are from the Arduino. I have already tried the codes present here in this post and nothing happens it just writes what is in the Serial.println() instruction of the setup and does nothing more! I've already read the code about 100 times and didn't find anything wrong!

Could Someone help me!

Regards

Arthur_P.

Andre, You may have already figured it out as you posted the question a while ago. The Arduino Mega uses different pins than the other Arduinos. So you have to change the conections and pin definitions in the code to reflect that. In fact, if you want to use the SPI library you will have to change the pin definitions in the .h file that comes with that as it doesn't support the Mega yet. Here are the pins you need on the Mega.

glasspusher

Hi folks,The posted code works fine except that you want to change the type of return value for the read_register16 from a float to an unsigned long, same as the variable it's acting on. I had some funny business until I changed this.

unsigned long read_register16(char register_name)

Also, if you want to run this on a 5V board, check out this page on Spark Fun for how to do it. I used the resistor method and everything is working fine.