Need sample code interfacing Altimeter and Arduino SPI
Hello, I recently buy a Altimeter Module MS5607 (http://www.parallax.com/Store/Sensors/AccelerationTilt/tabid/172/ProductID/780/List/0/Default.aspx?SortField=ProductName,ProductName) and I need to interface it with my Arduino UNO with SPI protocol.
Any advice there, any sample code? I cant figure how to communicate with the module.
Thanks, Daniel P
Any advice there, any sample code? I cant figure how to communicate with the module.
Thanks, Daniel P

Comments
John Abshier
Hi John, thank you! I have already seen the I2C code, but I need to communicate with SPI.
Daniel P.
Thank you,
Daniel P.
Thank you, but I have searched all over the internet and forums with no success for this module connected with SPI
Thank you,
Daniel P.
Daniel P
I'm still trying and I made this code, that when a "0" is recieved in the serial, the arduino sends the conversion and read commands to the altimeter and stores the 24 bit data of the altitude. Till now, I get the data in three bytes, but for some reason I only get 3 bytes of 11111111, 11111111, 11111111.
I post the code:
/* Circuit: SCK: pin 13 MISO: pin 12 MOSI: pin 11 SS: pin 9 */ const int ss = 9; #include <SPI.h> //3 bytes to get the 24 bit adc read byte byte1; byte byte2; byte byte3; void setup() { Serial.begin(9600); SPI.begin(); SPI.setBitOrder(MSBFIRST); pinMode(ss, OUTPUT); } void loop() { if (Serial.available() > 0) { byte incomingByte = Serial.read(); switch (incomingByte){ case '0': read_alt(); break; } //endswitch }//enif }//endloop void read_alt() { //READ Altimeter digitalWrite(ss, LOW); SPI.transfer(0x50); //ADC conversion command delay(1); // and store read data into three bytes byte1 = SPI.transfer(0x00);//ADC conversion read command, first 8 bits byte2 = SPI.transfer(0x00);//ADC conversion read command, second 8 bits byte3 = SPI.transfer(0x00);//ADC conversion read command, third 8 bits //print the 3 bytes in serial Serial.println(byte1, BIN); Serial.println(byte2, BIN); Serial.println(byte3, BIN); Serial.println(); //release chip, signal end transfer digitalWrite(ss, HIGH); }