0% found this document useful (0 votes)
3 views

Introduction to Arduino

The document provides an overview of Arduino basics, including its history, components, and programming concepts. It covers essential electrical concepts, circuit prototyping with breadboards, and introduces programming through practical projects like blinking LEDs and fading RGB colors. The content is aimed at artists, hobbyists, and students interested in physical computing and electronics.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Introduction to Arduino

The document provides an overview of Arduino basics, including its history, components, and programming concepts. It covers essential electrical concepts, circuit prototyping with breadboards, and introduces programming through practical projects like blinking LEDs and fading RGB colors. The content is aimed at artists, hobbyists, and students interested in physical computing and electronics.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 82

ARDUINO BASICS

Arduino Board
“Strong Friend” Created in Ivrea, Italy
in 2005 by Massimo Banzi & David Cuartielles
Open Source Hardware
Processor
Coding is accessible & transferrable  (C++, Processing,
java)

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Arduino…

is the go-to gear for artists,


hobbyists, students, and anyone with
a gadgetry dream.

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
PWR IN USB
(to Computer)

RESET

SCL\SDA
(I2C Bus)

POWER
5V / 3.3V / GND
Digital I\O
PWM(3, 5, 6, 9, 10, 11)

Analog
INPUTS

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
PWR IN USB
(to Computer)

RESET

SCL\SDA
(I2C Bus)

POWER
5V / 3.3V / GND
Digital I\O
PWM(3, 5, 6, 9, 10, 11)

Analog
INPUTS

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Go ahead and plug your board in!

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Arduino Shields

PCB Built Shield Inserted Shield

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Arduino Shields

Micro SD MP3 Trigger LCD

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Components
Name Image Type Function Notes
Push Button Digital Input Switch - Closes Polarized, needs
or opens circuit resistor
Trim Analog Input Variable resistor Also called a
Trimpot.
potentiometer
Photoresistor Analog Input Light Dependent Resistance varies
Resistor (LDR) with light.
Relay Digital Output Switch driven by Used to control
a small signal larger voltages
Temp Sensor Analog Input Temp Dependent
Resistor
Flex Sensor Analog Input Variable resistor

Soft Trimpot Analog Input Variable resistor Careful of shorts

RGB LED Dig & Analog 16,777,216 Ooh... So pretty.


Output different colors

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Components

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Components

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
SIK Components

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Electricity \ Electronics Basic
Concept Review
• Ohms Law
• Voltage
• Current
• Resistance
• Using a Multi-meter

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Ohm’s Law

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Electrical Properties

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Current Flow Analogy

High Current Low Current

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Voltage Analogy

Water
Tower
Water
Tower

V
V

More Energy == Higher Voltage Less Energy == Lower Voltage

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Resistance Analogy

Water Water
Tower Tower

Big Pipe == Lower Resistance Small Pipe == Higher Resistance

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Continuity – Is it a Circuit?

The word “circuit” is derived from the circle.


An Electrical Circuit must have a continuous
LOOP from Power (Vcc) to Ground (GND).

Continuity is important to make portions of


circuits are connect. Continuity is the simplest
and possibly the most important setting on
your multi-meter. Sometimes we call this
“ringing out” a circuit.

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Measuring Electricity – Voltage

Voltage is a measure of potential


electrical energy. A voltage is also
called a potential difference – it is
measured between two points in a
circuit – across a device.

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Measuring Electricity -- Current

Current is the measure of the rate of charge


flow. For Electrical Engineers – we consider
this to be the movement of electrons.
In order to measure this – you must break the
circuit or insert the meter in-line (series).

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Measuring Electricity -- Resistance

Resistance is the measure of how much


opposition to current flow is in a circuit.
Components should be removed entirely from
the circuit to measure resistance. Note the
settings on the multi-meter. Make sure that
you are set for the appropriate range.
Resistance
settings

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Prototyping Circuits
Solderless Breadboard
One of the most useful tools in an
engineer’s or Maker’s toolkit. The most
important things:
• A breadboard is easier than soldering
• A lot of those little holes are connected, which ones?

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
What’s a Breadboard?

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Solderless Breadboard

Each row (horiz.) of 5


holes are connected.

Vertical columns –
called power bus are
connected vertically

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Using the Breadboard to built a
simple circuit

Use the breadboard


to wire up a single
LED with a 330
Ohm Resistor
(Orange-Orange-
Brown).
Note: the longer leg on the
LED is the positive leg and
the shorter leg is the
negative

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Fritzing View of Breadboard Circuit

What happens
when you break
the circuit?
What if you
wanted to add
more than one
LED?

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Adding control – let’s use the
Arduino
and start programming!!!

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Concepts: INPUT vs. OUTPUT

Referenced from the perspective of the microcontroller (electrical


board).
Inputs is a signal / Output is any signal
information going into the exiting the board.
board.

Almost all systems that use physical computing will have


some form of output

What are some examples of Outputs?


This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Concepts: INPUT vs. OUTPUT

Referenced from the perspective of the microcontroller (electrical


board).
Inputs is a signal / Output is any signal
information going into the exiting the board.
board.

Examples: Buttons Switches, Examples: LEDs, DC motor,


Light Sensors, Flex Sensors, servo motor, a piezo buzzer,
Humidity Sensors, relay, an RGB LED
Temperature Sensors…

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Concepts: Analog vs. Digital
Microcontrollers are digital devices – ON or
OFF. Also called – discrete.

Analog signals are anything that can be a


full range of values. What are some
examples? More on this later…

5V 5V

0V 0V

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Open up Arduino

Hints:
For PC Users  For Mac Users 
1.Let the installer copy 1. Move the Arduino
and move the files to executable to the
the appropriate dock for ease of
locations, or access.
2.Create a folder under 2. Resist the
C:\Program Files (x86) temptation to run
called Arduino. Move these from your
the entire Arduino desktop.
program folder here.

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Arduino
Integrated Development Environment (IDE)

Two required functions /


methods / routines:

void setup()
{
// runs once
}

void loop()
{
// repeats
error & status messages }
Settings: Tools  Serial Port

Your computer
communicates to the
Arduino microcontroller
via a serial port 
through a USB-Serial
adapter.

Check to make sure that


the drivers are properly
installed.

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Settings: Tools  Board

Next, double-check that the proper board is selected


under the ToolsBoard menu.

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Arduino & Arduino Compatible Boards

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
BIG 6 CONCEPTS

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Let’s get to coding…

Project #1 – Blink
“Hello World” of Physical Computing

Psuedo-code – how should this work?

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Comments, Comments, Comments
Comments are for you – the programmer and your
friends…or anyone else human that might read your
code.

// this is for single line comments


// it’s good to put a description at the top and
before anything ‘tricky’
/* this is for multi-line comments
Like this…
And this….
*/

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
comments

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Three commands to know…

pinMode(pin, INPUT/OUTPUT);
ex: pinMode(13, OUTPUT);

digitalWrite(pin, HIGH/LOW);
ex: digitalWrite(13, HIGH);

delay(time_ms);
ex: delay(2500); // delay of 2.5 sec.

// NOTE: -> commands are CASE-sensitive

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Project #1: Wiring Diagram

Move the green


wire from the
power bus to pin
13 (or any other
Digital I/O pin on
the Arduino
board.

Image created in Fritzing

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
A few simple challenges
Let’s make LED#13 blink!
Challenge 1a – blink with a 200 ms second
interval.

Challenge 1b – blink to mimic a heartbeat

Challenge 1c – find the fastest blink that


the human eye can still detect…
1 ms delay? 2 ms delay? 3 ms delay???

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Try adding other LEDs

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Programming Concepts: Variables

Variable Scope

Global
---
Function-
level

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Programming Concepts: Variable
Types

Variable Types:

8 bits 16 bits 32 bits

byte int long


char unsigned int unsigned long
float

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Fading in and Fading Out
(Analog or Digital?)

A few pins on the Arduino allow for us


to modify the output to mimic an
analog signal.

This is done by a technique called:


Pulse Width Modulation (PWM)

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Concepts: Analog vs. Digital

To create an analog signal, the microcontroller


uses a technique called PWM. By varying the duty
cycle, we can mimic an “average” analog voltage.

Pulse Width Modulation (PWM)

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Project #2 – Fading
Introducing a new command…

analogWrite(pin, val);

pin – refers to the OUTPUT


pin (limited to pins 3, 5, 6, 9,
10, 11.) – denoted by a ~
symbol

val – 8 bit value (0 – 255).


0 => 0V | 255 => 5V

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Move one of your LED pins over to
Pin 9
In Arduino, open up:
File  Examples  01.Basics  Fade

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Fade - Code Review

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Fade - Code Review

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Project# 2 -- Fading

Challenge 2a – Change the rate of the


fading in and out. There are at least
two different ways to do this – can
you figure them out?

Challenge 2b – Use 2 (or more) LEDs


– so that one fades in as the other
one fades out.

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
R G B
Color Mixing
Tri-color LED

This is a standard – Common


Cathode LED

This means the negative


side of the LED is all tied to
Ground.

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Project 3 – RGB LED

Note: The
longest leg of
the RGB LED is
the Common
Cathode. This
goes to GND.

Use pins 5, 6, &


9

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
How many unique colors can you
create?

Use Colorpicker.com or
experiment on your
own.
Pick out a few colors
that you want to try
re-creating for a lamp
or lighting display...
Play around with this
with the
analogWrite()
command.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
RGB LED Color Mixing

int redPin = 5;
int greenPin = 6;
int bluePin = 9;

void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
RGB LED Color Mixing

void loop()
{
analogWrite(redPin, 255);
analogWrite (greenPin, 255);
analogWrite (bluePin, 255);
}

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Project: Mood Lamp / Light Sculpture

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Driving Motors or other High Current
Loads

NPN Transistor (Common Emitter “Amplifier” Circuit)

to Digital
Pin 9

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Input

Input is any signal entering an electrical system


.
•Both digital and analog sensors are forms of
input
•Input can also take many other forms:
Keyboards, a mouse, infrared sensors, biometric
sensors, or just plain voltage from a circuit

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Project #4 – Digital Input

In Arduino, open up:


File  Examples  02.Digital 
Button

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Digital Sensors (a.k.a. Switches)
Pull-up Resistor (circuit)

to Digital Pin 2

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Digital Sensors (a.k.a. Switches)
Add an indicator LED to Pin 13
This is just like our
1st circuit!

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Digital Input

• Connect digital input to your Arduino using Pins # 0 –


13 (Although pins # 0 & 1 are also used for
programming)

• Digital Input needs a pinMode command:


pinMode (pinNumber, INPUT);
Make sure to use ALL CAPS for INPUT

• To get a digital reading:


int buttonState = digitalRead (pinNumber);

• Digital Input values are only HIGH (On) or LOW (Off)

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Digital Sensors

• Digital sensors are more straight forward than


Analog

• No matter what the sensor there are only two


settings: On and Off

• Signal is always either HIGH (On) or LOW (Off)

• Voltage signal for HIGH will be a little less than 5V


on your Uno

• Voltage signal for LOW will be 0V on most systems

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
http://opensourcehardwarejunkies.com/tutorial-03-digitalread-and-
serial-port-communication/
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Programming: Conditional
Statements
if()

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Programming: Conditional
Statements
if()
void loop()
{
int buttonState = digitalRead(5);
if(buttonState == LOW)
{ // do something DIG
INPUT
}
else
{ // do something else
}
}
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Boolean Operators

<Boolean> Description
( ) == ( ) is equal?
( ) != ( ) is not equal?
( ) > ( ) greater than
( ) >= ( ) greater than or equal
( ) < ( ) less than
( ) <= ( ) less than or equal

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Analog Sensors
3 Pin Potentiometer = var. resistor
(circuit)
a.k.a. Voltage Divider Circuit

wiper

fixed
ends 1.0 V 1.0 V

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
analogRead()

Arduino uses a 10-bit A/D Converter:


• this means that you get input values
from 0 to 1023
• 0V0
• 5 V  1023
Ex:
int sensorValue = analogRead(A0);

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Using Serial Communication

Method used to transfer data between two


devices.

Data passes between the computer and Arduino


through the USB cable. Data is transmitted as
zeros (‘0’) and ones (‘1’) sequentially.

Arduino dedicates Digital I/O pin # 0 to


receiving and Digital I/O pin #1 to
transmit.

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Serial Monitor & analogRead()

Initializes the Serial


Communication

9600 baud data rate


prints data to serial bus
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Serial Monitor & analogRead()

Opens up a
Serial Terminal
Window

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Analog Sensors
2 Pin Analog Sensors = var. resistor

Take two sensors --


Use the Serial Monitor
and find the range of
input values you get
for each sensor.

MaxAnalogRead = _________

MinAnalogRead = _________

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Analog Sensors

Examples:
Sensors Variables
Mic soundVolume
Photoresistor lightLevel
Potentiometer dialPosition
Temp Sensor temperature
Flex Sensor bend
Accelerometer tilt/acceleration

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Additional Serial Communication
Sending a Message

void loop ( )
{
Serial.print(“Hands on “) ;
Serial.print(“Learning ”) ;
Serial.println(“is Fun!!!”) ;

}
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Serial Communication:
Serial Debugging

void loop()
{
int xVar = 10;
Serial.print ( “Variable xVar is “ ) ;
Serial.println ( xVar ) ;
}

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States
Serial Communication:
Serial Troubleshooting

void loop ( )
{
Serial.print (“Digital pin 9: “);
Serial.println (digitalRead(9));
}

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States

You might also like