Wednesday, February 22, 2012

TMP36 Test


TMP36 Temperature Sensor

Kirk Schichl


Description and Use
        
            The TMP36 are low voltage temperature sensors that provide a voltage output that is linearly proportional to the Celsius temperature, and ranges from -40°C to +125°C. This device is intended for single-supply operation from 2.7 volts to 5.5 volts at maximum. The supply current runs well below 50μA, which provides very low self-heating. 


Pin Configuration:





Test Summary: Arduino with TMP36 Temperature Sensor.

Description:
The testing of the Arduino Nano working with the TMP36 temperature sensor was done in lab. The TMP36 was connected to the Nano with a voltage supply of 5 volts while the Nano reads the voltage output. The output voltage can be converted to temperature easily using the scale factor of 10 mV/°C. The Arduino code would read the output voltage and convert it into degrees Celsius. What we did to make sure the code was working with the TMP36 sensor was to touch the sensor and notice any changes in the temperature readings. This was successful.
Code for Arduino:



Integration into Payload:
This component will be soldered directly onto a printed circuit board and connected via wires outside of the insulated payload to record atmospheric temperatures. The printed circuit board connects all the instruments including the Arduino.


Goals:
The goals of the test were to get the Arduino successfully working with the TMP36 temperature sensor. Also, making sure the code written for the Arduino was perfect and able to measure accurate temperature readings. This is key to the overall success of the weather balloon to accurately measure temperatures.



Results:
The test went well when we compared our numbers to a thermometer in the room. The temperatures TMP36 was reading was around 19°C-22°C when the temperature in the room was around 20°C at the time.  


Sunday, February 19, 2012

BMP085 Test

BMP085 Breakout Pressure Sensor
·       Sami Yanikoglu

Description and Use

                  The BMP085 barometric pressure sensor is a low power sensor that can measure between 300 to 1100 hPa, measuring accurately down to a hundredth of a percent.  The sensor requires 1.8-3.6V, we will be using a 3.3V input.  The chip is designed to work with a microcontroller such as the arduino nano.  The data taken from the BMP085 chip will be sent from the arduino to the Parallax data logger to document the pressure periodically throughout the entire flight using the I2C bus.  The BMP085 is equipped with a temperature sensor which provides information necessary for the calculation of pressure.  Our code will bypass this sensor and use the ____? sensor for higher precision readings. 
The wiring of this chip to the arduino is show below along with the pin diagram.


                  We connected our BMP085 to 3.3V power and ground as well as the SDA and SCL pins.  The SDA pin transmits data to and from the arduino, and the SCL line is connected to the internal clock of the arduino.
                 
We are using the data logger in UART, or Universal Asynchronous Receiver Transmitter, protocol that requires ASCII characters to be sent or received in a serial signal from the Arduino.  These transmissions from the Arduino are sent through the Vinculum chip and encoded into digital signals in order to communicate with the data logger.  The data logger also has a Vinculum chip on board to decipher the ASCII code sent and handle the file system on the USB stick. 

Testing

                  Sample code written for the arduino can be found on the Sparkfun website, and was the basis for our initial testing of the BMP085.



Further testing of the BMP085 breakout pressure sensor must be performed to ensure its abilities at low temperatures when insulated.

Integration into Payload

This component will need to be soldered to a secondary board along with our temperature and humidity sensors that will be located at the edge of out payload.  This placement will ensure that the internal temperature of our payload from our other electronics doesn’t affect our readings.  Holes will also need to be placed close to the sensors for direct access to the outside conditions. 





Parallax USB Data Logger Test

Parallax USB Data Logger
Brett Russell

Description and Use

                  The Parallax USB Data Logger is used by the Arduino microprocessor to read or write data to a USB drive using serial transmissions.  The Arduino programming environment, as of version 1.0 released December 2011, has a built in class to allow this type of communication from any if its digital ports called SoftwareSerial.  This class allows any digital ports to communicate to the Vinculum chip; this chip requires a separate set of commands sent to it in a string, character or ASCII code format. (http://www.parallax.com/dl/docs/prod/comm/VDAPFirmwareSpec.pdf) 
                  This components interfacing to the Arduino requires more code than wiring, noted in the Testing section.  A pin out diagram as well as an overhead image can be seen below. Parallax USB Data 



Logger Data Sheet:

 http://www.rlx.sk/parallax/MemoryStickDataloggerV1.1.pdf

                  We are using the data logger in UART, or Universal Asynchronous Receiver Transmitter, protocol that requires ASCII characters to be sent or received in a serial signal from the Arduino.  These transmissions from the Arduino are sent through the Vinculum chip and encoded into digital signals in order to communicate with the data logger.  The data logger also has a Vinculum chip on board to decipher the ASCII code sent and handle the file system on the USB stick. 

Testing

  The most time consuming aspect of this component is the programming, which the Arduino syntax has the appearance of Java but has header files denoting a C programming language. 


              


Once done writing to the file, you must close out the file by sending a command to the Vinculum chip.  If you neglect to close the file computers will not be able to read the file, let alone Excel.  All data on the USB drive may be compromised if such a situation arises, so be sure to try code out on an empty or pre-backed up drive.


Further testing of the Parallax USB Data Logger must be performed to ensure its abilities at low temperatures when insulated.

Integration into Payload

This component will need to be soldered directly to the circuit board, if that is the path we choose to go, and have its soldered connections protected from impact stress.  Otherwise the chip will have to be situated in a location where there will be no stress on the USB card plugged into it.  Also this particular data logger is rated to operate above zero degrees Celsius, so it will have to be insulated from the harsh exterior environment of the upper atmosphere.

HIH-4030 Test

HIH-4030 Humidity Sensor
Chantelle Spence

Goal of the Test

The purpose of this testing is to receive the relative humidity of the surrounding environment as a function of temperature.

Description of Test

The testing of the humidity sensor included witting programing code, calibrating, and comparing measured percent relative humidity values. The code used is as follows:
float val = 0;
float RH = 0;
float my_room_temperature = 20; //in degrees C !
float max_voltage = 5; // maximum voltage
 
void setup()
{
 Serial.begin(9600);
}
 
void loop()
{
     val = analogRead(0); //output is connected to A(0)
delay(1000);
Serial.println(val); // printing output value
my_room_temperature = 20; // temperature reading in     centigrade!
 
RH= ((((val/1023.)*5) - 0.958)/0.0307)/(1.0546 – 0.00216* my_room_temperature) ; //calculate %RH
   
      Serial.println(RH); //prints %RH
 delay(1000);            
}
   
  Where the code used was determined using the data sheet which supplied the following information:
 
V OUT=(VSUPPLY)(0.0062(sensor RH) + 0.16), typical at 25 º C
True RH = (Sensor RH)/(1.0546 – 0.00216T), T in º C
Sensor RH=(V OUT - zero offset)/slope=(V OUT - 0.958)/0.0307
 
Therefore it can be determined that the RH=((V OUT - 0.958)/0.0307)/(1.0546 – 0.00216T) where T in º C. If the future this code will require temperature input from the temperature sensor, rather than assuming a constant temperature.
The used data sheet can be found at:
http://www.sparkfun.com/datasheets/Sensors/Weather/SEN-09569-HIH-4030-datasheet.pdf
Below is the image of the humidity sensor:




Where pin 1 was connected to ground, pin 2 was connected to analog output zero, and pin 3 was connected to +5V.

Results

The results vary from 19-21% RH when the offset is used.  However when the offset is not used readings were around 40%.  Using the above code, the output was rather constant and only fluctuated by +1%.  To compare the outputted percent relative humidity to the actual humidity the value, a humidity sensor from Petco was used.  This five dollar sensor displayed the actual relative humidity, which was used to calibrate and compare with the humidity sensor output values.

Recommended Actions Based on Results

When attaching and using all components on the Arduino, the humidity sensor will require updated temperature input, rather than using a constant temperature.  In order to make this change, the temperature values will be sent to the humidity sensor.

Integration into Payload

To incorporate this piece into the payload, it must be connected to the circuit board.  This instrument must be exposed to the environment and have temperature sensor input


ADXL335 Test

Triple Axis Accelerometer
Mitchell Knotts

Description and Use

                  The ADXL335 Triple Axis Accelerometer is a very small device that can sense accelerations in three different axis.  We are incorporating this instrument into our balloons payload so we can monitor the accelerations that the payload will experience. The accelerometer is very easy to use, it requires 1.8 – 3.6V and each axis has its own analog output pin. Each output pin will be connected to one of the analog input pins on the Arduino, finally the Arduino will interpret the signals from the accelerometer and output the acceleration values to the data logger.
                  This components interfacing to the Arduino requires more code than wiring, noted in the Testing section.  A pin out diagram as well as an overhead image can be seen below.
Triple Axis Accelerometer Triple Axis Accelerometer
Pinout definitions
Pin
Name
Description
1
ST
Self Test
2
X
X Axis
3
Y
Y Axis
4
Z
Z Axis
5
Gnd
System Ground
6
Vcc
Voltage In (3.3V)
ADXL335 triple axis accelerometer Data Sheet: http://www.sparkfun.com/datasheets/Components/SMD/adxl335.pdf
                   

Testing

                  Testing started out with connecting the Accelerometer to the Arduino. After the connections were made we had to read the data sheet for the ADXL335 chip and find out how the output values from the chip relate to useful units of acceleration. According to the data sheet the acceleration vs. voltage is a linear relationship. I started out by just programming the Arduino to read in the voltage from each axis. I then turned the accelerometer until the axis was parallel to the ground, meaning zero force of acceleration acting on the axis of interest. I recorded this value, the Zero Value, and moved to the next axis. After recording the “Zero value” for each axis I then twisted the accelerometer so that the axis in interest was pointed towards the ground, meaning the acceleration of gravity was acting on the axis in interest. I did this for all three axes and recorded the value. The value that was equivalent to one g force was 0.23V. Once I had this I plugged the values into the equation I had written in the code.
Accelerometer logic on the Arduino 




Once the code was uploaded on the Arduino I found that the accelerometer was functioning correctly! The values that the Arduino prints are in g’s, I decided to use g’s as units because I can easily multiply a g by whichever unit of acceleration I want like 9.8m/s^2.

 

Integration into Payload

This component will be soldered directly onto a printed circuit board that our team is designing. The printed circuit board connects all the instruments including the accelerometer and the Arduino. We will mount the printed circuit board to the bottom of the payload package, this will work well because the accelerometer will be reading the accelerations that the payload experiences.