You are on page 1of 42

Introduction to

Microcontrollers: Arduino
Skylar Roebuck and Lucas
Libraro

What we will learn you


Presentation learnin
The Arduino
Microcontroller basics
Introduction to programming
Variables
Binary
Introduction do the digital 1 and 0

Data types
Anatomy of a program
Sketches- setup and loop
Logic AND, OR, NOT

Circuit Construction

Whats in the kit?


Ohms Law
Resistor Color Coding
Pull Up and Pull Down

Then we get building

The Arduino

What is an Arduino

The Arduino is first


and foremost a
microcontroller.

So what is a
microcontroller?
Essentially, a microcontroller is a
small computer on a single
integrated circuit.
The microcontroller has a simple CPU
comprised of clock timers,
input/output ports, and memory.

Uses:
automatically controlled products and
devices
automobile engine control systems
implantable medical devices
remote controls
office machines
appliances
power tools
And more and more and more

Personal Project Uses:


Microcontrollers are great at handling
inputs and outputs for example:
Using a temperature sensor and
outputting the temperature on a screen.
Using an infrared sensor and using it to
guide a robot by controlling motors.
Using servos to move a robotic arm
Possibilities are endless.

So why the Arduino?

Vs.

Arduino
Expandability
Easy to attach Ethernet shields, sensors, etc.

Easy Setup
All you need is a standard USB cable for programming and power

Breakout board
Circuit creation is made easy by not having to do any soldering

Inexpensive
Powerful
Fueled by the Atmega328 microcontroller

The learnin

Pencils and Paper Time!

Variables
A variable is how you store a value within a
program
Examples:
Hackrva = awesome;
Assigns the string (a data type) Awesome to hackrva

Hackrva = 2;
Assigns the integer 2 to the variable hackrva.
Further: hackrva = hackrva + 2;
NOW: hackrva = 4

Data types
Data types are an important foundation to
programming. For example, if you want a
program to count to 10 then you want:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10

You do NOT want


1.00000, 1.00001, 1.00002, etc.

This is solved by using data types properly

Data types mark 2


In the example before, counting to 10, we would
want that to be an integer so that it ignores all
other values.
This is done in conjunction with the variable and
this process is known as defining or initializing
variables:
Int counter;
-this just tells the compiler that counter is an integer and
it doesnt need to be concerned with any other data.

Data types mark 3


Further there are many data types and the variable
needs to be assigned according to what it will be used
for.
Common data types are:
String = hack.rva rocks;
Char = A;
Int = 1;
Float = 1.5675;
Binary types
Boolean = 0; (only 0 or 1)
Byte = 00001111;

The nitty gritty


The foundation of programming is
the 0 and the 1
Boolean
0 No
1 Yes

Binary
000 - 0
001 - 1
010 - 2
011 - 3
100 - 4
101 - 5
110 - 6
111 - 7

Seems very polar but there are


shades of gray we will discuss later

This is what the microcontroller


understands

LOGIC Gates
Logic comes into play when working and
thinking on a binary level. They are
essentially operations like +, -, *, / except on
a binary numbers.
In fact using logic is how you CREATE +,-,*,/
wellyou also need about 5000 transistors.
The foundation basic gates are:
AND, OR, NOT

AND
OUTP
UT

INPUT
A

A AND
B

Example: We want LED3 to come on when LED1


and LED2 are both on:
If LED2 = 1 AND LED1 = 1 then LED3 = 1

OR
Example: We want LED3 to come on when
either LED1 and LED2 are both on:
If LED2 = 1 OR LED1 = 1 then LED3 = 1
OUTP
UT

INPUT
A

A OR B

NOT (invert)
INPUT

OUTPUT

NOT A

Example: We want LED3 to be the opposite of its


current state (if off then on and if on then off):
LED3 = NOT LED3;

Anatomy of a Program

How do we make it do what we


want: Program it!
High level languages
C++, C, Java closest to natural human understanding
Arduinos Programming Language

Low level languages


Assembly Code a little more difficult to interpret for a person
but still possible

Lowest (if you write this you have too much free time)
Machine Code all patterns of 0s and 1s
The microcontroller might see:
0001001010010100101001001010001010101010
And from this it will know a specific command.

A program.
Basic life of a program:
User writes a program in C (a high level language)
A compiler will then take that code and converts it
into Assembly language
Then an assembler will take that code and turn it into
machine code.
We are using an Arduino IDE, or integrated
development environment, so we will write code using
Arduinos language and it will take care of the rest!
Easy Peazy

Programming Languages
Obviously, not every programming language is the same. Each
language differs in a way that makes it particularly good for
something.
Arduino is no different. Arduino has been simplified specifically to
make it easy to program the Arduino microcontroller.
Anatomy of an Arduino Program:
Arduino calls every program a Sketch (maybe they feel like that makes
them edgy to be different)
Sketches are comprised of a SETUP and a LOOP section
Setup: Only Runs once and is used to set necessary registers and pins
Loop: This is the rest of the sketch and by default when a sketch finishes
in this language it repeats the entire sketch. Essentially looping-a
concept we will cover later.

CIRCUIT CONSTRUCTION

Whats in the kits?

Whats in the kits?


Half-sized breadboard- 400 connection points,
plenty of room
for beginner projects, with 2 power rails on the side.

Whats in the kits?


1K & 10K potentiometer- these pots have 0.1"
spacing and fit very nicely into a breadboard without
modification

Whats in the kits?


2 small pushbuttons -Snap into the breadboard for
button inputs

Whats in the kits?


5 bright red diffused LEDs(250mcd)-indicators,
blinkies, bright enough to see in the day, but diffused
so that they are visible from all angles.

Whats in the kits?


Red,greenandblueultra-bright LED -Can be
used on their own, or color-mixed to make nearly any
color in the rainbow!

Whats
in
the
kits?
5 100 ohm resistors -They can be used to protect
pin outputs when starting out
5 1K resistors- Good for use as LED limiting resistors
5 10K resistors -Great for pullups & pulldowns

A few more concepts before


building:
Ohms Law!
Georg Simon Ohmwas kind of the
Originial Gangster of circuit construction
He developed the simple relationship
Or current = voltage / resistance

Why is this important?


Today we will be using LEDs or Light Emitting
Diodes .
LEDs are essentially switches that emit light.
When hooked up correctly to a power source, the
current will flow through the switch in the right
direction and turn it on.
BUT, LEDs are often delicate! With too much
current the LED will blow and become unusable.
SOLUTION: We use a resistor to buffer the current
through the LED.

Which resistor?
Using Ohms we can determine
exactly which resistor is best but it is
always best to be safe than sorry.
The higher the resistance the dimmer
the LED will

We will be using the 1K resistors.


and which one is that?

Resistor Color Coding

Resistor Color Coding

100ohm
100k ohms

Pull up/pull down resistors


Pull up/pull down is a way of setting up buttons so that they are
reliable.
When we use buttons today we will add a pull down resistor. This
resistor ensures that the button registers as a 0 or off whenever it is
not being pushed.
This is the function of a pull down resistorit makes sure inputs are
what we expect them to be.

Time to build!

Picture of build schematic

Program 1

This program introduces


everybody to the
general setup of a
typical sketch

Program 2

You might also like