Arduino Uno boards have Atmel microcontrollers on them.
Microcontrollers can be programmed to measure analog signals.
They can communicate with other digital devices such as analog to digital converter integrated circuits and computers.
They can use inputs from sensors to send outputs to control things.
We will use a microcontroller with balloons to sample the atmospheric pressure, temperature, RH, and CO2.

Software:
Download the Arduino software.
Cool term software for reading data from the Arduino.
Arduino can be used with Labview software as demonstrated below with the IR sensor.
Real time graphs of data from the Arduino can be recorded with Excel.

Manual that works with the parts kit we use in class:
Direct link
Local backup.
Software for the manual and parts kit we use in class:
Direct link
Local backup

Examples of things to do:
1. Introduction and LED lighting and blinking
2. PWM, servo motor, and motor
3. Light sensing with a cadmium sulfide detector.
4. Temperature and wet bulb temperature measurement to get relative humidity and lifting condensation level.
4. I2C communication with digital sensors, especially the IR sensor. Here's the data sheet.
5. Interfacing Arduino with Labview.

Start by ...
Download this zip file. Unzip it. Place the contents in the USB drive.
Run the Arduino IDE. Under preferences, choose the "UseForArduino" folder on the USB drive. Restart the Arduino IDE.
We'll do some introductory examples from the text book first.
Then we'll use the Labview program to visualize the Arduino output, and save the temperature measurements (XP executable).

Useful Related Information


TED Video describing the Arduino.


Figure 1. Arduino board with Atmel microcontroller. Adapted from http://krokus8840.dk/boje/arduino/uno-tilslutninger.

 

Useful Presentations Collected from Others:
What is Arduino, view 1?
What is Arduino, view 2?
Spark fun intro to Arduino.
Spark fun data collection with high altitude balloons.
Maker and Arduino philosophy.

Microcontroller fundamentals.

Thermal IR Sensor

Thermal IR sensor: Infrared radiation arriving at the sensor is converted into an equivalent temperature.
Adafruit's adaption of the sensor will be used
. Here are the pin assignments and the wiring set up for Arduino from the Adafruit site.
Here is a local backup of the pin assignments and wiring set up.

Follow these steps to get the Arduino code set up properly for this sensor, so the data can be read with Arduino and Labview.
The Arduino sketch and Labview code to view the output from the IR sensor are below.

NOTE: THE FIRST 4 STEPS MAY ALREADY HAVE BEEN DONE IN THE PAST AND DON'T NEED TO BE REPEATED. CHECK STEP 5 TO SEE IF THE SKETCH EXAMPLE IS AVAILABLE.
1. Go to the Adafruit site describing the sensor use. (Local backup).

2. Scroll down and find the button for downloading the library.
3. Start the Arduino IDE. Add the Adafruit library following these steps, using Tools:Manage Libraries.
4. Then open the MLX90614 example sketch. The loop should look like this:

Modify the loop to look like this:

5. Wire up the sensor and run the Sketch. Look at the output with the Serial Monitor. Then download the Labview program to view the data in graphical form, and to save it.

WINDOWS VERSION

Here is an executable software package to use the sensor with Ardunio and Labview to visualize the temperature sensor output. This is the windows version of the executable to be used for those that checked out an Arduino kit for the weekend to do measurements of the atmosphere over this time.

MACINTOSH VERSION (Includes detailed instructions)

Here is an executable software package to use the sensor with Ardunio and Labview to visualize the temperature sensor output. This is the Macintosh version of the executable to be used for those that checked out an Arduino kit for the weekend to do measurements of the atmosphere over this time.

Here's the Arduino IDE code for the sensor, and the source code for the Labview program to visualize the temperature time series.
And here is slightly updated Labview code for Labview version 17. It implements time in seconds when saving data. Unzip and run the program whose name starts with"Read".

SCL pin

Implementation of the sensor with the Teensy 3.1 microcontroller.

 

Useful and Related Information:

I2C communications summary. (Inter Integrated Circuit digital data bus communications protocol).

Pull up resistors: how and why they are used.

Example of using I2C to have an Arduino talk with 3 temperature sensors.


Here's the schematic of a IR sensor, from here.
The silicon filter passes IR radiation.
The blackbody absorbs IR radiation and heats up.
A thermopile (thermocouples connected in series) is below the blackbody; it provides a small voltage, perhaps microvolts.
The thermistor measures the overall chip temperature, and that is the thermopile reference junction temperature.

Pressure sensor

Analog Pressure Sensor

Digital Pressure Sensor

Digital Pressure Sensor


Click image for link to Adafruit, the board manufacturer.


Adafruit the the board manufacturer and image source.
Click here for more details on how to use it.

Analog pressure sensor data sheet.

Example Arduino code for the analog pressure sensor.
After you look at the output, edit the sketch to output pressure only.
Write the time and date to the file (here's how) in CoolTerm using the function built in to it.

Labview code for graphing and saving pressure data. (Arduino code needs minor modification to output data in a format for Labview. Set the baud rate to 9600 baud, and have the output match the example in the 'Raw Data' box on the labview VI).

Schematic diagram for the pressure sensor measurement and Arduino for use with Expresspcb. Right click and save file to your computer and open it with ExpressPCB schematic. Schematic as a picture.

Digital pressure sensor data sheet. Note that this sensor is light sensitive, will erroneously respond to intense light illumination.

Example Arduino code for the digital pressure sensor.
Requires installation of the sensor library from Adafruit.

Labview code for graphing and saving pressure data. (Arduino code needs minor modification to output data in a format for Labview. have the output match the example in the 'Raw Data' box on the labview VI).

Wiring set up from the Adafruit website.

Schematic diagram for both the analog and digital pressure sensor using ExpressPCB. Schematic as a picture.

Note: Sparkfun also has a BMP180 pressure sensor site.

Note: Sensirion has a differential pressure sensor suitable for wind measurement in a compact package. Here's Arduino software for it.

Data sheet for the BME 280 sensor.

Example Arduino code for the BME280 sensor. Install the Adafruit library as described at the top of the file and here.

Thermistor Sensor

Gikfun 100K ohm NTC B4267 ATC Semitic 104GT-2 Thermistor for 3D Printer Reprap EK9018

Data for resistance versus temperature for our thermistor; Spreadsheet for calculation.

Discussion of negative temperature coefficient thermistor.

Example Arduino code for the thermistor sensor.

Schematic diagram for the thermistor for use with Expresspcb.

 

 

TEENSY

TEENSY 3.6 DEVELOPMENT BOARDS USE an NXP 32 bit 180 MHz ARM Cortex-M4 processor with floating point unit

TEENSY 3.6 LAYOUT