## Slide #1.

Prototyping with Microcontrollers and Sensors
More slides like this

## Slide #2.

Overview •Objective •Background Information •Problem Statement •Materials •Procedure •Assignment •Closing
More slides like this

## Slide #3.

Objective Demonstrate basic principles of electricity, breadboarding, and Arduino programming
More slides like this

## Slide #4.

Background Information Electricity  Movement of electrons Electrical voltage: difference in charge  Measured in Volts (V) Electrical current: movement of electrons in a conductive wire when there is a difference in charge between two points in the wire.  Measured in Amperes (A)  Flows opposite of the electrons Electrical resistance: certain materials resist a flow of electrons  Measured in Ohms (Ω)
More slides like this

## Slide #5.

Ohm’s Law V=I*R  Mathematical relationship between current, voltage and resistance  Only when you have a resistor!
More slides like this

## Slide #6.

Electronic Components DC (Direct Current) Voltage Sources  Power circuits because they have a voltage difference across their terminals  Usually batteries (AA, AAA, etc.)  Polarized
More slides like this

## Slide #7.

Electronic Components Resistors: components that reduce the amount of current flowing through a circuit  Convert the excess current to thermal energy  Can be used to control voltages and currents  Color-coded with their resistance  Not polarized
More slides like this

## Slide #8.

Electronic Components Capacitors: store energy in an electrical field and then dissipate it at a later time  Capacitance: measure of how much charge a capacitor can store  Measured in Farads (F)  Resist voltage changes by supplying or drawing current  Sometimes polarized!
More slides like this

## Slide #9.

Electronic Components Inductors: store energy in a magnetic field and then dissipate it at a later time  Inductance: measure of how much energy an inductor can store  Measured in Henries (H)  Resist current changes by dropping or increasing the voltage across itself  Not polarized
More slides like this

## Slide #10.

Electronic Components Push Buttons and Switches: mechanical devices that interrupt or divert current running through them  Basic push buttons are polarized  Basic switches are not polarized
More slides like this

## Slide #11.

Electronic Components Diodes and Transistors (BJT/MOSFETS)  Diodes are components that allow current to only pass in one direction  MOSFETs are electrical components that act as electrically controlled switches
More slides like this

## Slide #12.

Electronic Components Light Emitting Diodes (LEDs): small electric lights which can be lit very brightly with fairly low voltages and currents  Diode! Orientation matters!  Usually require a resistor (typically 220 Ω or 470 Ω)  Polarized!
More slides like this

## Slide #13.

Electronic Components IC (Integrated Circuit) Chips: contain small electrical circuits inside them to usually carry out one specific purpose  Come in all shapes, sizes, and specifications  Comparators (they compare two different voltages)  Op-Amps (they amplify low voltage signals)  Timers (they switch between high and low voltages quickly to time other devices)  IC chips ARE polarized
More slides like this

## Slide #14.

Electronic Components Analog vs. Digital Signals  An electrical signal is any quantifiable quantity that can carry information using electricity Digital Signals  Have two discrete states: LOW and HIGH  When signal is LOW, most devices output a voltage level of 0V.  When signal is HIGH, most devices output a voltage level of 5V (or 3.3V) Analog Signals  Infinite amount of voltage values  The range 0V-5V is mapped to the range 0-1023  Example: Value 255 = ~1.246V  Many electronic components are inherently analog
More slides like this

## Slide #15.

Microcontrollers Microcontrollers: cheap, programmable computers without any of the peripherals (such as a mouse, keyboard, or a screen)  Have direct access to the input and output pins  Reads from sensors and perform actions accordingly.  Are present in many electrical appliances (such as microwaves)
More slides like this

## Slide #16.

We will be using an Arduino UNO board created by Sparkfun for this lab
More slides like this

## Slide #17.

Arduino Hardware Overview of the RedBoard  Reset Button: restarts the Board  USB Connector: will provide power and connect it to the computer  Pin 13 LED: an LED you can use without making an LED circuit  Serial LEDS: shows if the Arduino is transmitting or receiving data from pins 0, 1 or the USB connection
More slides like this

## Slide #18.

Power Pins Power Pins  3.3V: Usually used to power lowvoltage sensors  5V: Most common power pin used to power your circuits  GND: Ground pin which is 0V  VIN: Voltage-In can be used to power the  board using a battery
More slides like this

## Slide #19.

I/O Pins I/O Pins  A0-A5: identical analog pins that can be used to read sensors or control analog devices  Pins A0-A3 are more stable than A4-A5  Pins 0-1: transmit and receive pins, don’t use these pins for this lab  Pins 2-12: digital pins that can be switched between HIGH states and LOW states  Pin 13: connected to the on-board LED
More slides like this

## Slide #20.

Building Circuits on a Breadboard Breadboards: are small boards that are commonly used for circuit prototyping
More slides like this

## Slide #21.

Arduino Programming The Arduino programming language is based on C/C+ +, but it is designed to be simpler and easier to learn. The most intuitive way to think about programming is like building with LEGO blocks: you are given certain rules you have to follow and different building blocks to use.
More slides like this

## Slide #22.

The Arduino IDE  Verify: checks your code for errors and points to where the errors occurred  Upload: verifies and sends your code to the Arduino board if there are no errors  Console: shows you any errors the software found in your hardware  Serial Monitor: a tool you can use to see how your program is running
More slides like this

## Slide #23.

The Arduino IDE Programs written in Arduino are called sketches with 3 different areas:  Global: Important variables, constants and imported libraries go here  Setup: activate the pins and sensors used (this code only runs once)  Loop: the code that runs continuously (reading sensors and turning pins HIGH or LOW)
More slides like this

## Slide #24.

The Rules and Building Blocks General  Every line must either end with a semicolon ‘;’ UNLESS it’s a conditional, loop, function or imported library  Comments start with a //  Comments are text that the program ignores  Used to label and explain code
More slides like this

## Slide #25.

Constants and Variables  Variables store different types of data (numbers, letters, sentences, etc.)  Variables change what data they hold through mathematical operations  Constants cannot change their value after it has been assigned
More slides like this

## Slide #26.

Datatypes
More slides like this

## Slide #27.

Operators
More slides like this

## Slide #28.

Common Functions
More slides like this

## Slide #29.

Materials and Equipment  Arduino UNO microcontroller and USB cable  Computer with Arduino IDE  Breadboard and jumper wire  Resistors  LED  Pushbutton  TMP36
More slides like this

## Slide #30.

Activity 1 We will be making a simple LED blinking circuit. 1. The first activity will be making a simple LED blinking circuit. The programming flowchart and circuit diagram are in the figure.
More slides like this

## Slide #31.

Activity 1 2. First, wire the LED to the breadboard like in the figure. Remember, since LEDs are polarized, their orientation matters. The shorter leg of the LED should be connected to the same row as GND. The resistor is NECESSARY, otherwise too much current would flow and the LED will burn out! REMEMBER: The orientation of the LED matters!
More slides like this

## Slide #32.

Flowcharts
More slides like this

## Slide #33.

Activity 1 3. Now type the following code into a new sketch. 4. The flowchart uses Digital Pin 7 on the Arduino as an output. Therefore, create a constant that holds the number 7 and in the setup area set Pin 7 as an output using pinMode. Then, turn the LED on by using digitalWrite, have a delay of one second, turn the LED off by using digitalWrite and then set another delay of one second. 5. The LED circuit will be used in the next two activities. Do not deconstruct it.
More slides like this

## Slide #34.

Activity 2 1. Activity 2 adds a button to the circuit from activity 1 and requires conditionals (think if-statement). The LED should be on when the button is pressed and off when the button isn’t pressed. 2. Before you breadboard the circuit look at the bottom side (pin side) of the button to examine which pins are connected. There is a line connecting the pins that are wired together internally on each side. See the schematic below, pins 1 and 2 are connected, and pins 3 and 4 are connected. 3. First, breadboard the circuit diagram in the figure and sketch a flowchart of the program needed. Have a TA verify the flowchart.
More slides like this

## Slide #35.

Activity 2 4. Write the Arduino program to implement the flowchart. 5. Remember to create a constant that holds the pin number to which the button is connected and that the button will be a digital input. After the button constant, create an integer that will hold the button state: 6. Within the loop function, you must check the state of the button (whether it is pressed or not pressed), using the following code:
More slides like this

## Slide #36.

Activity 3 1. Activity 3 introduces a loop into the program so the LED flashes three times. Make sure to sketch a flowchart and have a TA verify it. 2. Hint: Use a For-loop! The circuit does not need any modifications.
More slides like this

## Slide #37.

Product Evaluation
More slides like this

## Slide #38.

Activity 4 1. For Activity 4 the Arduino will read analog values from a temperature sensor and print out the temperature to the Serial Monitor. Carefully disconnect everything plugged into the breadboard and Arduino. Then, breadboard the circuit in Figure 6.
More slides like this

## Slide #39.

Activity 4 2. The TMP36 is an IC temperature sensor. The specifications of most IC chips can be found online. Below is a picture of the pinout and the specifications of the TMP36. The sensor requires a positive voltage (Vs), a ground connection (GND), and an analog input connection (Vout) to read the temperature data. Use the +5 V pin from the Arduino board as your positive voltage connection. 3. The output voltage can easily be converted to a temperature reading (in Celsius) by using a scale factor of 10 mV/°C. The Arduino should read the sensor every five seconds. Sketch a flowchart and have it verified by a TA before writing the program. Don’t forget to use an analog pin (Pin A0), convert the voltage reading and then print it out!
More slides like this

## Slide #40.

Activity 4 4. Take 5 measurements of the room using the temperature sensor with one minute intervals. Use this data for the accuracy and precision measurements of your temperature sensor. TAs will provide the actual room temperature. Use the following temperature sensor specifications.
More slides like this

## Slide #41.

Activity 4 Converting the temperature from “Arduino Units” to Celsius: 1. Convert “Arduino Units” to a voltage value 1. 0-1023 is mapped from 0V to 5V 2. How much voltage is each “Arduino Unit” 2. Offset the voltage value by 500mV 3. Convert offset voltage to Celsius (10mV/1°C)
More slides like this