SlideShare una empresa de Scribd logo
1 de 86
Intro to Arduino
      Class
     Intro to Arduino

  Held at CRASHspace
    Taught by Quin
        8/11/12
Thank you to SparkFun for
   sharing the original
      presentation!
Schedule

•   Getting started with Arduino and electronics
•   Project 1 & 2
•   Break
•   Project 3, 4, & 5
•   Explaining More Code
•   Q&A + Project Time
Arduino Board
    “Strong Friend” Created in Ivrea, Italy
in 2005 by Massimo Banzi & David Cuartielles
           Open Source Hardware
             Atmel Processor
   Coding is accessible (C++, Processing)
Why do I want an Arduino?

Arduino is a 8-bit prototyping system
that is easy for the modern developer,
designer, hacker, kid, or someone that
has no experience in this type of genre
to use.

But why is important to all of us?
Arduino Shields

 PCB
 
   
   
   Built Shield
 
   
   Inserted
Shield
Arduino Shields


   Micro SD

   
   MP3 Trigger
                                
   
   Joystick
Components
Name          Image
   Type
           Function         Notes


                       Digital Input   Closes or       Polarized,
Button                                 opens circuit   needs resistor
                       Analog Input Variable
Trimpot                             resistor
LDR                    Analog Input Variable           Also known as
                                    resistor           photoresistor

Temp                   Analog Input Variable
                                    resistor
Sensor
Flex Sensor            Analog Input Variable
                                    resistor
                        Dig. &
                                   16,777,216          Ooh... So
RGB LED                 Analog
                        Output
                                   different           pretty.
                                   colors
Polarity

Polarity is when there are two or more
different sides (or leads) of a
component that have different
qualities that can not be reversed.

Examples: batteries, LEDs, buttons
Power (+5V) and Ground
          (GND)
Power is the current that goes through
the circuit, and ground is the current
return path (collector)

Always make sure that Power and
Ground never touch directly, or the
circuit will short.

Make sure to not use over 10V, just
5V, and 3.3V, so no shock will occur.
What’s a Breadboard?
One of the most useful tools in an engineer or
  Maker’s toolkit. The four most important things
  to remember:
• Breadboard is very easy to prototype with
• A breadboard is easier than soldering
• A lot of those little holes are connected, which
  ones?
• Breadboards can break
What’s a Breadboard?
Analog and Digital
• All Arduino signals are either Analog or
  Digital
• All computers including Arduino, only
  understand Digital
• It is important to understand the
  difference between Analog and Digital
  signals since Analog signals require an
  Analog to Digital conversion
Analog to Digital Conversion

An ADC is a device that samples a
continuous quantity of digital signals,
compares it to discrete time, then
outputs an analog signal.

The ADC (analog) compatible pins on
the Arduino are A0, A1, A2, A3, A4,
and A5
I/O, or Input/Output

Input is any signal entering an
 electrical system.

Output is any signal exiting an
electrical system.
Output
 Output is any signal exiting an electrical system

• Almost all systems that use physical computing
will have some form of output
• Outputs include LEDs, a motor, a piezo buzzer,
and an RGB LED
Output
       Output is always Digital
To Output a Digital signal (On or Off) use this
code: 
digitalWrite (pinNumber, value);
Where value is HIGH (on) or LOW (off), both in
caps

To output a signal that pretends to be Analog, use
this code:
analogWrite (pinNumber, value);
Where value is a number 0 - 255
Output

To output a signal that pretends to be
analog (anywhere in between on and
off), you will have to use a PWM pin.
All PWM pins on the Arduino are
market with a “~” on the digital side.
Output
       Output is always Digital
Using a Digital signal that pretends to be an
Analog signal is called Pulse Width Modulation

Use Pulse Width Modulation, or P.W.M., for
anything that requires a signal between HIGH and
LOW (1-254, with 0 being off and 255 being on)

P.W.M. is available on Arduino Leonardo digital
pins 3, 5, 6, 9, 10, 11, and 13
Installing Drivers for Mac
The first time you plug a Leonardo into a Mac, the
"Keyboard Setup Assistant" will launch. There's
nothing to configure with the Leonardo, so you can
close this dialogue by clicking the red button in the
top left of the window.
Installing Drivers for Windows
This method has been tested on Windows XP and 7:

• Plug in your board and wait for Windows to begin
  its driver installation process. If the installer does
  not launch automatically, Navigate to the
  Windows Device Manager (Start>Control
  Panel>Hardware) and find the Arduino Leonardo
  listing. Right click and choose Update driver.

• If prompted to search for drivers online, choose
  "No, not this time". And click Next
Installing Drivers for Windows
Installing Drivers for Windows
• When asked to install automatically or from a
  specific location, select "Install from a list or
  specific location" and press Next
Installing Drivers for Windows
• Choose "Search for the best driver in these
  locations", and check the box "incude this
  location in the search". Click the Browse button
  and navigate to your Arduino 1.0.1 or later
  installation. Select the drivers folder an click OK
Installing Drivers for Windows
Installing Drivers for Windows
Click Next. You will receive a notification that the
  Leonardo has not passed Windows Logo testing.
  Click on the button Continue Anyway
Installing Drivers for Windows
• After a few moments, a window will tell you the
  wizard has finished installing software for
  Arduino Leonardo. Press the Finish button

(from arduino.cc)
Board Type
Serial Port / COM Port
Circuit 1: Basic Blink




                         33
34
Parts of the Sketch
void setup() {}




                  36
void loop ( ) { }
Why do I make a comment?

• Comments are great ways to
  remind you what you did,
  teach other people what that
  code means, or to make a
  long description for your
  whole piece of code for
  licenses, date, and author
Comments

• Comments are ignored by
  the compiler
• Comments can be anywhere
• Comments can start with
  a // for a one-line comment
• Another type of comment is
  multiple lines and starts with
  a /* and ends with a */
Example of Comment:
Output
      Output is always Digital, even when it’s P.W.M.

 For P.W.M. the Arduino pin turns on, then off very fast



P.W.M. Signal @ 25%
   
   
   P.W.M. Signal @ 75%
                                                  
   P.W.M. Signal
rising
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, buttons, light sensors, or just plain
voltage from a circuit
Analog Input
• To connect an analog Input to your Arduino, use
  Analog Pins # 0 - 5

• To get an analog reading:

 analogRead (pinNumber);

• Analog Input varies from 0 to 1023 on an
  Arduino
Downloading Code

https://github.com/Qtechknow/
  Arduino-Code/zipball/master/
Circuit 2: Analog Reading
Digital Sensors/Digital Input
• Digital Input could be a switch or a button

• To connect digital input to your Arduino use
  Digital Pins # 0 – 13 (Although pins # 0 & 1 are
  also used for serial)

• Digital Input needs a pinMode command (in
  setup):

 pinMode ( pinNumber, INPUT );

 Make sure to use caps for INPUT

• To get a digital reading: digitalRead
  ( pinNumber );
Digital Sensors/Digital Input
• Digital sensors are more straight forward than
  Analog

• No matter what the sensor, there are only two
  settings: On and Off (for buttons, pressed, or
  not)
• Signal is always either HIGH (On) or LOW (Off)

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

• Voltage signal for LOW will be 0V on most
  systems
Parts for Circuit 3:

Arduino Leonardo
Breadboard
Pushbutton (2)
LED (2)
Resistor - 10K Ohm (2)
Resistor - 330 Ohm (2)
Jumper Wire
Circuit 3: Buttons
Semicolons

Semicolons are needed after every line
of code, except for void setup(), void
loop(), and a few others
Operators

      The equals sign

 = is used to assign a value

== is used to compare values
Operators


&& is “and”

 || is “or”
Variables

Basic variable types:

Boolean (on or off)
Integer (a number)
Character (a letter)
Declaring Variables

  Boolean: boolean
   variableName;
Declaring Variables

    Boolean: boolean
     variableName;

Integer: int variableName;
Declaring Variables

      Boolean: boolean
       variableName;

  Integer: int variableName;

Character: char variableName;
Declaring Variables

      Boolean: boolean
       variableName;

  Integer: int variableName;

Character: char variableName;
   String: stringName [ ];
Assigning Variables

Boolean: variableName = true;
  or variableName = false;
Assigning Variables

Boolean: variableName = true;
  or variableName = false;
   Integer: variableName =
            32767;
 or variableName = -32768;
Assigning Variables

Boolean: variableName = true;
  or variableName = false;
   Integer: variableName =
            32767;
 or variableName = -32768;
Character: variableName = ‘A’;
       or stringName =
        “Crashspace”;
Variable Scope
Where you declare your variables
           matters
Circuit 4: ArduSensor + LED
Circuit 4: ArduSensor+LED
Common Functions

pinMode(pin, kind); (declares pins)
analogRead(pin); (reads an analog pin)
digitalWrite(pin, state); (tells a pin to
   turn on (5V), or turn off (0V)
if() {} (tells something to do a function,
   when something else happens
for() {} (tells something to do a function
   over and over)
Setup
           void setup ( ) {




Inputs & Outputs are declared in
  setup, this is done by using the
         pinMode function
This particular example declares digital pin # 13
       as an output, remember to use CAPS
If Statements
if ( this is true ) { do this; }
If
if ( this is true ) { do this; }
Conditional
if ( this is true ) { do this; }
Action
if ( this is true ) { do this; }
Else
else { do this; }
Basic Repetition

for (int count = 0; count<10; count++)
{
//for action code goes here
//this could be anything
}
Basic Repetition

for (int count = 0; count<10; count++)
{
//for action code goes here
}
Basic Repetition

for (int count = 0; count<10; count++)
{
//for action code goes here
}
Basic Repetition

for (int count = 0; count<10; count++)
{
//for action code goes here
}
Basic Repetition

for (int count = 0; count<10; count++)
{
//for action code goes here
}
Basic Repetition

for (int count = 0; count<10; count++)
{
//for action code goes here
}
Basic Repetition

for (int count = 0; count<10; count++)
{
//for action code goes here
}
Circuit 5: Meter
Q&A and Project time

Más contenido relacionado

La actualidad más candente

Introduction to arduino
Introduction to arduinoIntroduction to arduino
Introduction to arduino
Ahmed Sakr
 
Arduino learning
Arduino   learningArduino   learning
Arduino learning
Anil Yadav
 

La actualidad más candente (20)

Arduino course
Arduino courseArduino course
Arduino course
 
Arduino Day 1 Presentation
Arduino Day 1 PresentationArduino Day 1 Presentation
Arduino Day 1 Presentation
 
Introduction to Arduino Programming
Introduction to Arduino ProgrammingIntroduction to Arduino Programming
Introduction to Arduino Programming
 
Introduction to Arduino Microcontroller
Introduction to Arduino MicrocontrollerIntroduction to Arduino Microcontroller
Introduction to Arduino Microcontroller
 
Arduino slides
Arduino slidesArduino slides
Arduino slides
 
Arduino Lecture 4 - Interactive Media CS4062 Semester 2 2009
Arduino Lecture 4 - Interactive Media CS4062 Semester 2 2009Arduino Lecture 4 - Interactive Media CS4062 Semester 2 2009
Arduino Lecture 4 - Interactive Media CS4062 Semester 2 2009
 
Introduction to arduino
Introduction to arduinoIntroduction to arduino
Introduction to arduino
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Introduction to arduino!
Introduction to arduino!Introduction to arduino!
Introduction to arduino!
 
Programming with arduino
Programming with arduinoProgramming with arduino
Programming with arduino
 
Arduino
ArduinoArduino
Arduino
 
Aurdino presentation
Aurdino presentationAurdino presentation
Aurdino presentation
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Basics of arduino uno
Basics of arduino unoBasics of arduino uno
Basics of arduino uno
 
Introducing the Arduino
Introducing the ArduinoIntroducing the Arduino
Introducing the Arduino
 
Cassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshopCassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshop
 
Arduino learning
Arduino   learningArduino   learning
Arduino learning
 
LinnStrument : the ultimate open-source hacker instrument
LinnStrument : the ultimate open-source hacker instrumentLinnStrument : the ultimate open-source hacker instrument
LinnStrument : the ultimate open-source hacker instrument
 
Introduction to Arduino and Circuits
Introduction to Arduino and CircuitsIntroduction to Arduino and Circuits
Introduction to Arduino and Circuits
 
Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Arduino Robotics workshop Day1
Arduino Robotics workshop Day1
 

Destacado

Arduino Based Home Automation (2003) (1003018)
Arduino Based Home Automation (2003) (1003018)Arduino Based Home Automation (2003) (1003018)
Arduino Based Home Automation (2003) (1003018)
Rappy Saha
 

Destacado (20)

Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to Arduino
 
Arduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the ArduinoArduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the Arduino
 
Introduction to Arduino @ Open Tech School - Berlin (6 Dec 2012)
Introduction to Arduino @ Open Tech School - Berlin (6 Dec 2012)Introduction to Arduino @ Open Tech School - Berlin (6 Dec 2012)
Introduction to Arduino @ Open Tech School - Berlin (6 Dec 2012)
 
Introducción a Arduino r2
Introducción a Arduino r2Introducción a Arduino r2
Introducción a Arduino r2
 
morning!, by Mia Diwasasri
morning!, by Mia Diwasasrimorning!, by Mia Diwasasri
morning!, by Mia Diwasasri
 
Arduino
ArduinoArduino
Arduino
 
Tema1
Tema1Tema1
Tema1
 
Arduino practicas
Arduino practicasArduino practicas
Arduino practicas
 
Interfacing bluetooth with arduino
Interfacing bluetooth with arduinoInterfacing bluetooth with arduino
Interfacing bluetooth with arduino
 
Student2student: Arduino Project-based Learning
Student2student: Arduino Project-based LearningStudent2student: Arduino Project-based Learning
Student2student: Arduino Project-based Learning
 
Arduino Introduction by coopermaa
Arduino Introduction by coopermaaArduino Introduction by coopermaa
Arduino Introduction by coopermaa
 
Controlling an Arduino with Android
Controlling an Arduino with AndroidControlling an Arduino with Android
Controlling an Arduino with Android
 
Android Control Hardware and Arduino IoT ( 22 Aug 15 )
Android Control Hardware and Arduino IoT ( 22 Aug 15 )Android Control Hardware and Arduino IoT ( 22 Aug 15 )
Android Control Hardware and Arduino IoT ( 22 Aug 15 )
 
Manual basico de practicas con Arduino uno
Manual basico de practicas con Arduino unoManual basico de practicas con Arduino uno
Manual basico de practicas con Arduino uno
 
Curso Arduino práctico 2014
Curso Arduino práctico  2014Curso Arduino práctico  2014
Curso Arduino práctico 2014
 
Heart beat detector using arduino
Heart beat detector using arduinoHeart beat detector using arduino
Heart beat detector using arduino
 
Arduino Development For Beginners
Arduino Development For BeginnersArduino Development For Beginners
Arduino Development For Beginners
 
Arduino Based Home Automation (2003) (1003018)
Arduino Based Home Automation (2003) (1003018)Arduino Based Home Automation (2003) (1003018)
Arduino Based Home Automation (2003) (1003018)
 
Arduino Presentation
Arduino PresentationArduino Presentation
Arduino Presentation
 
Laser Beam Machining
Laser Beam MachiningLaser Beam Machining
Laser Beam Machining
 

Similar a Intro to Arduino

ArduinoSectionI-slides.ppt
ArduinoSectionI-slides.pptArduinoSectionI-slides.ppt
ArduinoSectionI-slides.ppt
Lam Hung
 
teststststststLecture_3_2022_Arduino.pptx
teststststststLecture_3_2022_Arduino.pptxteststststststLecture_3_2022_Arduino.pptx
teststststststLecture_3_2022_Arduino.pptx
ethannguyen1618
 
arduinocourse-180308074529 (1).pdf
arduinocourse-180308074529 (1).pdfarduinocourse-180308074529 (1).pdf
arduinocourse-180308074529 (1).pdf
ssusere5db05
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
SAURABHKUMAR892774
 
Arduino Workshop (3).pptx
Arduino Workshop (3).pptxArduino Workshop (3).pptx
Arduino Workshop (3).pptx
HebaEng
 

Similar a Intro to Arduino (20)

ArduinoSectionI-slides.ppt
ArduinoSectionI-slides.pptArduinoSectionI-slides.ppt
ArduinoSectionI-slides.ppt
 
teststststststLecture_3_2022_Arduino.pptx
teststststststLecture_3_2022_Arduino.pptxteststststststLecture_3_2022_Arduino.pptx
teststststststLecture_3_2022_Arduino.pptx
 
Arduino Slides With Neopixels
Arduino Slides With NeopixelsArduino Slides With Neopixels
Arduino Slides With Neopixels
 
arduinocourse-180308074529 (1).pdf
arduinocourse-180308074529 (1).pdfarduinocourse-180308074529 (1).pdf
arduinocourse-180308074529 (1).pdf
 
Arduino Workshop Slides
Arduino Workshop SlidesArduino Workshop Slides
Arduino Workshop Slides
 
arduino.ppt
arduino.pptarduino.ppt
arduino.ppt
 
Arduino.pptx
Arduino.pptxArduino.pptx
Arduino.pptx
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
IOT ARDUINO UNO.pptx
IOT ARDUINO UNO.pptxIOT ARDUINO UNO.pptx
IOT ARDUINO UNO.pptx
 
Embedded systems presentation
Embedded systems presentationEmbedded systems presentation
Embedded systems presentation
 
Robotics and Automation Using Arduino
Robotics and Automation Using ArduinoRobotics and Automation Using Arduino
Robotics and Automation Using Arduino
 
Introduction to arduino
Introduction to arduinoIntroduction to arduino
Introduction to arduino
 
Arduino Workshop (3).pptx
Arduino Workshop (3).pptxArduino Workshop (3).pptx
Arduino Workshop (3).pptx
 
13223971.ppt
13223971.ppt13223971.ppt
13223971.ppt
 
Arduino Programming Basic
Arduino Programming BasicArduino Programming Basic
Arduino Programming Basic
 
Arduino spooky projects_class1
Arduino spooky projects_class1Arduino spooky projects_class1
Arduino spooky projects_class1
 
Arduino intro.pptx
Arduino intro.pptxArduino intro.pptx
Arduino intro.pptx
 
arduinoworkshop-160204051621.pdf
arduinoworkshop-160204051621.pdfarduinoworkshop-160204051621.pdf
arduinoworkshop-160204051621.pdf
 
Ardui no
Ardui no Ardui no
Ardui no
 
Fun with arduino
Fun with arduinoFun with arduino
Fun with arduino
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 

Intro to Arduino

  • 1. Intro to Arduino Class Intro to Arduino Held at CRASHspace Taught by Quin 8/11/12
  • 2. Thank you to SparkFun for sharing the original presentation!
  • 3. Schedule • Getting started with Arduino and electronics • Project 1 & 2 • Break • Project 3, 4, & 5 • Explaining More Code • Q&A + Project Time
  • 4. Arduino Board “Strong Friend” Created in Ivrea, Italy in 2005 by Massimo Banzi & David Cuartielles Open Source Hardware Atmel Processor Coding is accessible (C++, Processing)
  • 5. Why do I want an Arduino? Arduino is a 8-bit prototyping system that is easy for the modern developer, designer, hacker, kid, or someone that has no experience in this type of genre to use. But why is important to all of us?
  • 6.
  • 7. Arduino Shields PCB Built Shield Inserted Shield
  • 8. Arduino Shields Micro SD MP3 Trigger Joystick
  • 9. Components Name Image Type Function Notes Digital Input Closes or Polarized, Button opens circuit needs resistor Analog Input Variable Trimpot resistor LDR Analog Input Variable Also known as resistor photoresistor Temp Analog Input Variable resistor Sensor Flex Sensor Analog Input Variable resistor Dig. & 16,777,216 Ooh... So RGB LED Analog Output different pretty. colors
  • 10. Polarity Polarity is when there are two or more different sides (or leads) of a component that have different qualities that can not be reversed. Examples: batteries, LEDs, buttons
  • 11. Power (+5V) and Ground (GND) Power is the current that goes through the circuit, and ground is the current return path (collector) Always make sure that Power and Ground never touch directly, or the circuit will short. Make sure to not use over 10V, just 5V, and 3.3V, so no shock will occur.
  • 12. What’s a Breadboard? One of the most useful tools in an engineer or Maker’s toolkit. The four most important things to remember: • Breadboard is very easy to prototype with • A breadboard is easier than soldering • A lot of those little holes are connected, which ones? • Breadboards can break
  • 14. Analog and Digital • All Arduino signals are either Analog or Digital • All computers including Arduino, only understand Digital • It is important to understand the difference between Analog and Digital signals since Analog signals require an Analog to Digital conversion
  • 15. Analog to Digital Conversion An ADC is a device that samples a continuous quantity of digital signals, compares it to discrete time, then outputs an analog signal. The ADC (analog) compatible pins on the Arduino are A0, A1, A2, A3, A4, and A5
  • 16. I/O, or Input/Output Input is any signal entering an electrical system. Output is any signal exiting an electrical system.
  • 17. Output Output is any signal exiting an electrical system • Almost all systems that use physical computing will have some form of output • Outputs include LEDs, a motor, a piezo buzzer, and an RGB LED
  • 18. Output Output is always Digital To Output a Digital signal (On or Off) use this code: digitalWrite (pinNumber, value); Where value is HIGH (on) or LOW (off), both in caps To output a signal that pretends to be Analog, use this code: analogWrite (pinNumber, value); Where value is a number 0 - 255
  • 19. Output To output a signal that pretends to be analog (anywhere in between on and off), you will have to use a PWM pin. All PWM pins on the Arduino are market with a “~” on the digital side.
  • 20. Output Output is always Digital Using a Digital signal that pretends to be an Analog signal is called Pulse Width Modulation Use Pulse Width Modulation, or P.W.M., for anything that requires a signal between HIGH and LOW (1-254, with 0 being off and 255 being on) P.W.M. is available on Arduino Leonardo digital pins 3, 5, 6, 9, 10, 11, and 13
  • 21. Installing Drivers for Mac The first time you plug a Leonardo into a Mac, the "Keyboard Setup Assistant" will launch. There's nothing to configure with the Leonardo, so you can close this dialogue by clicking the red button in the top left of the window.
  • 22. Installing Drivers for Windows This method has been tested on Windows XP and 7: • Plug in your board and wait for Windows to begin its driver installation process. If the installer does not launch automatically, Navigate to the Windows Device Manager (Start>Control Panel>Hardware) and find the Arduino Leonardo listing. Right click and choose Update driver. • If prompted to search for drivers online, choose "No, not this time". And click Next
  • 24. Installing Drivers for Windows • When asked to install automatically or from a specific location, select "Install from a list or specific location" and press Next
  • 25. Installing Drivers for Windows • Choose "Search for the best driver in these locations", and check the box "incude this location in the search". Click the Browse button and navigate to your Arduino 1.0.1 or later installation. Select the drivers folder an click OK
  • 27. Installing Drivers for Windows Click Next. You will receive a notification that the Leonardo has not passed Windows Logo testing. Click on the button Continue Anyway
  • 28. Installing Drivers for Windows • After a few moments, a window will tell you the wizard has finished installing software for Arduino Leonardo. Press the Finish button (from arduino.cc)
  • 29.
  • 30.
  • 32. Serial Port / COM Port
  • 33. Circuit 1: Basic Blink 33
  • 34. 34
  • 35. Parts of the Sketch
  • 37. void loop ( ) { }
  • 38. Why do I make a comment? • Comments are great ways to remind you what you did, teach other people what that code means, or to make a long description for your whole piece of code for licenses, date, and author
  • 39. Comments • Comments are ignored by the compiler • Comments can be anywhere • Comments can start with a // for a one-line comment • Another type of comment is multiple lines and starts with a /* and ends with a */
  • 41. Output Output is always Digital, even when it’s P.W.M. For P.W.M. the Arduino pin turns on, then off very fast P.W.M. Signal @ 25% P.W.M. Signal @ 75% P.W.M. Signal rising
  • 42. 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, buttons, light sensors, or just plain voltage from a circuit
  • 43. Analog Input • To connect an analog Input to your Arduino, use Analog Pins # 0 - 5 • To get an analog reading: analogRead (pinNumber); • Analog Input varies from 0 to 1023 on an Arduino
  • 44. Downloading Code https://github.com/Qtechknow/ Arduino-Code/zipball/master/
  • 45. Circuit 2: Analog Reading
  • 46.
  • 47.
  • 48. Digital Sensors/Digital Input • Digital Input could be a switch or a button • To connect digital input to your Arduino use Digital Pins # 0 – 13 (Although pins # 0 & 1 are also used for serial) • Digital Input needs a pinMode command (in setup): pinMode ( pinNumber, INPUT ); Make sure to use caps for INPUT • To get a digital reading: digitalRead ( pinNumber );
  • 49. Digital Sensors/Digital Input • Digital sensors are more straight forward than Analog • No matter what the sensor, there are only two settings: On and Off (for buttons, pressed, or not) • Signal is always either HIGH (On) or LOW (Off) • Voltage signal for HIGH will be a little less than 5V on your Leonardo • Voltage signal for LOW will be 0V on most systems
  • 50. Parts for Circuit 3: Arduino Leonardo Breadboard Pushbutton (2) LED (2) Resistor - 10K Ohm (2) Resistor - 330 Ohm (2) Jumper Wire
  • 52.
  • 53.
  • 54. Semicolons Semicolons are needed after every line of code, except for void setup(), void loop(), and a few others
  • 55. Operators The equals sign = is used to assign a value == is used to compare values
  • 56. Operators && is “and” || is “or”
  • 57. Variables Basic variable types: Boolean (on or off) Integer (a number) Character (a letter)
  • 58. Declaring Variables Boolean: boolean variableName;
  • 59. Declaring Variables Boolean: boolean variableName; Integer: int variableName;
  • 60. Declaring Variables Boolean: boolean variableName; Integer: int variableName; Character: char variableName;
  • 61. Declaring Variables Boolean: boolean variableName; Integer: int variableName; Character: char variableName; String: stringName [ ];
  • 62. Assigning Variables Boolean: variableName = true; or variableName = false;
  • 63. Assigning Variables Boolean: variableName = true; or variableName = false; Integer: variableName = 32767; or variableName = -32768;
  • 64. Assigning Variables Boolean: variableName = true; or variableName = false; Integer: variableName = 32767; or variableName = -32768; Character: variableName = ‘A’; or stringName = “Crashspace”;
  • 65. Variable Scope Where you declare your variables matters
  • 68.
  • 69. Common Functions pinMode(pin, kind); (declares pins) analogRead(pin); (reads an analog pin) digitalWrite(pin, state); (tells a pin to turn on (5V), or turn off (0V) if() {} (tells something to do a function, when something else happens for() {} (tells something to do a function over and over)
  • 70. Setup void setup ( ) { Inputs & Outputs are declared in setup, this is done by using the pinMode function This particular example declares digital pin # 13 as an output, remember to use CAPS
  • 71. If Statements if ( this is true ) { do this; }
  • 72. If if ( this is true ) { do this; }
  • 73. Conditional if ( this is true ) { do this; }
  • 74. Action if ( this is true ) { do this; }
  • 75. Else else { do this; }
  • 76. Basic Repetition for (int count = 0; count<10; count++) { //for action code goes here //this could be anything }
  • 77. Basic Repetition for (int count = 0; count<10; count++) { //for action code goes here }
  • 78. Basic Repetition for (int count = 0; count<10; count++) { //for action code goes here }
  • 79. Basic Repetition for (int count = 0; count<10; count++) { //for action code goes here }
  • 80. Basic Repetition for (int count = 0; count<10; count++) { //for action code goes here }
  • 81. Basic Repetition for (int count = 0; count<10; count++) { //for action code goes here }
  • 82. Basic Repetition for (int count = 0; count<10; count++) { //for action code goes here }
  • 84.
  • 85.

Notas del editor

  1. Ask What their name is, and why they took this class, what they dream of making\n
  2. \n
  3. Hopefully, everyone has. If not, give them the download drive, download to desktop, and then retrieve from them.\n
  4. Original Arduino team is 5.\n
  5. Projects.\n
  6. Explain everything, and have everybody look at theirs. We&amp;#x2019;re going to use these later.\n
  7. These are soldered Joystick Shields. Shields are used to expand the possibilities of the Arduino.\n
  8. \n
  9. These are commonly used components.\n
  10. Take a look at the LEDs, talk about cathode and anode.\n
  11. \n
  12. \n
  13. Look on your Breadboards. On the back, there is some adhesive covering the back, but here&amp;#x2019;s what&amp;#x2019;s inside.\n
  14. Key concept.\n
  15. Look at your Arduino. The bottom right of the Arduino should be all analog pins.\n
  16. \n
  17. \n
  18. Code is a different language than english.\n
  19. Have them look at their Arduino and identify the PWM pins.\n
  20. \n
  21. They have handouts on this.\n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. Now open up Arduino 1.0.1. Sketches are programs filled with code.\n
  30. \n
  31. \n
  32. Click on Find Arduino...\nNow, plug the USB cable into the Arduino, then into your computer.\nThe correct Serial/COM port should appear. \nRemember this port name.\nPress OK, and you should be done.\n\nFor Macs, this should be something like /dev/tty.usbserialft/\nFor Windows, this should be something above COM 3. COM 1 and 2 are usually reserved for Windows hardware ports.\n
  33. This sketch will blink the built in LED.\n
  34. File examples basic blink\nOpen arduino\nEncourage delay change\nChange blink to analog write.\n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. If you look back at the Blink sketch that we just made, you will see some comments up at the top.\n
  41. \n
  42. \n
  43. \n
  44. \n
  45. To get the code, go into the folder that you just downloaded, open the ArduSensorPotRead folder, and double click on the file named ArduSensorPotRead.ino.\n
  46. Once opening the Serial Monitor (pressing the magnifying glass in the upper right hand corner), you will see that there will be a constant value between 1 and 1000. Now tell them about how to turn it. Once code has been explained, have them change the 1000 to 100 or 10 or 5 or something.\n
  47. \n
  48. \n
  49. \n
  50. \n
  51. To get this code, go into the previous folder that we downloaded, open up the DigitalinputEx folder, and double click on DigitalinputEx.ino. Write connections on whiteboard.\n
  52. When you press one of the buttons, it will light one of the LEDs. When you press the other button, it will light the other LED.\n
  53. \n
  54. Take a look at the last example. This uses semicolons\n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. True=On\nFalse=Off\n
  63. anywhere in between those numbers for integers\n
  64. A string is a bunch of characters put together, or as we know it, words.\n
  65. \n
  66. Just plug in your ArduSensor Pot like you did before. This is the same circuit as #2, but a different sketch has been written for a different project.\n
  67. This will make the built in LED blink at a certain rate depending on how much you turn the potentiometer.\n
  68. \n
  69. \n
  70. This sets pin 13 as an output. \n
  71. This basically says that if the button is pressed, turn the LED on.\n
  72. \n
  73. \n
  74. \n
  75. Else means that if the if doesn&amp;#x2019;t run (basically the if isn&amp;#x2019;t true), the next function will work. This means that at least one piece of the code will run all of the time.\n
  76. If this is zero, and this is ten, this piece of code will run 10 times before moving on to the rest of the code.\n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. This project makes the QBar Graph light up proportionally to the value of the potentiometer, making a simple meter.\n
  84. \n
  85. \n
  86. \n