Basic Arduino Workshop

download Basic Arduino Workshop

of 34

Transcript of Basic Arduino Workshop

  • 8/17/2019 Basic Arduino Workshop

    1/34

    BASIC ARDUINO

    WORKSHOP

    By :

    Yogi Hamdani S.T., B.Eng.

    [email protected]

  • 8/17/2019 Basic Arduino Workshop

    2/34

    Workshop Content

    • Introduction to Arduino

    • Arduino Programming (hands-on)

    System Development

    3/10/2016 2BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    3/34

    INTRODUCTION TO

    ARDUINO

  • 8/17/2019 Basic Arduino Workshop

    4/34

    What is Arduino?

    • Microcontroller board contains on board

    power supply, USB port to communicate with

    PC, and microcontroller chip.

    • Open source hardware

    3/10/2016 4BASIC ARDUINO WORKSHOP - YOGI HAMDANI

    INPUT FROMSENSORS

    PROCESSING INMICROCONTROLLER

    OUTPUT TOACTUATORS

  • 8/17/2019 Basic Arduino Workshop

    5/34

    Arduino Boards

    3/10/2016 5BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    6/34

    Arduino Mega

    • 54 digital input/output pins

    (of which 14 can be used as PWM outputs)

    • 16 analog inputs

    • USB connection

    3/10/2016 6BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    7/34

    Analog / Digital

    • All physical quantities are analog.

    • Analog quantity takes any value between its

    minimum and maximum value.

    (in Arduino 0-255 / 8 bits)

    • Digital quantity takes specific levels of value

    with specific offset / on-off condition.

    (in Arduino 0-1)

    3/10/2016 7BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    8/34

    ARDUINO

    PROGRAMMING

    Program Download

    http://arduino.cc/en/Main/Software

  • 8/17/2019 Basic Arduino Workshop

    9/34

    Programming Platform

    • Integrated

    Development

    Environment (IDE)

    • C language

    programming

    3/10/2016 9BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    10/34

    Sample Program (Built-In LED)

    1. Open Arduino IDE

    2. Click File ->

    Examples ->

    01.Basics ->

    Blink

    3/10/2016 10BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    11/34

       P   r   o   g   r   a   m    S   t

       r   u   c   t   u   r   e

    3/10/2016 11BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    12/34

       P   r   o   g   r   a   m    S   t

       r   u   c   t   u   r   e

    3/10/2016 12BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    13/34

       P   r   o   g   r   a   m    S   t

       r   u   c   t   u   r   e

    3/10/2016 13BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    14/34

    Upload Program

    1. Check Connection

    Click Tool ->

    Select Board,

    Select PortCheck on bottom

    2. Click Upload

    3/10/2016 14BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    15/34

    Basic Syntax – Digital I/O

    1. pinMode(x,OUTPUT); for pin x as output

    pinMode(y,INPUT); for pin y as input

    2. digitalWrite(x,HIGH); set pin x to ON (1)

    digitalWrite(x,LOW); set pin x to OFF (0)

    3. digitalRead(y); read pin y status

    4. delay(z); set delay for z ms

    3/10/2016 15BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    16/34

    Data Types and Statement

    • Integer: declare variable as integer.

    example: int x = 10;

    • Floating Point: declare variable as numbers .

    example: float x = 10.50;

    • Character: declare variable as single character.

    example: char z = ‘y’;

    • String: declare variable as multiple characters.example: String z = “xyz”;

    3/10/2016 16BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    17/34

    Operators

    • Math Operators: (+,-,*,/,%,^)

    example:

    int x = 5;

    int y = 7;int z = x + y;

    • Logic Operators: (==, !=, &&, ||)

    • Comparison Operators: (,=)

    3/10/2016 17BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    18/34

    IF Statement

    Example 1:if(condition 1){

    do something;}

    3/10/2016 18BASIC ARDUINO WORKSHOP - YOGI HAMDANI

    Example 2:

    if(condition 1)

    {

    do something;}

    else

    {

    do something;}

    Example 3:if(condition 1)

    {

    do something;

    }else if(condition 2)

    {

    do something;

    }

    else

    {

    do something;

    }

  • 8/17/2019 Basic Arduino Workshop

    19/34

    Loop Statement

    Do… while

    example:

    do

    {do something;

    }

    while(condition)

    3/10/2016 19BASIC ARDUINO WORKSHOP - YOGI HAMDANI

    Whileexample:while(condition)

    { do something;}

    Forexample:for(int i=0; i

  • 8/17/2019 Basic Arduino Workshop

    20/34

    Serial Monitor

    3/10/2016 20BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    21/34

    Exercise

    • Turn LED ON when switch is pressed.

    • Print status to serial monitor.

    3/10/2016 21BASIC ARDUINO WORKSHOP - YOGI HAMDANI

    Ground Pin

    Digital Pin

  • 8/17/2019 Basic Arduino Workshop

    22/34

    Wiring

    3/10/2016 22BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    23/34

       P

       r   o   g   r   a   m

       m   i   n   g

    3/10/2016 23BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    24/34

    Program Code

    int LED = 12;int Switch = 8;

    void setup()

    {

    Serial.begin(9600);

    pinMode(LED,OUTPUT);

    pinMode(Switch,INPUT);

    }

    3/10/2016 24BASIC ARDUINO WORKSHOP - YOGI HAMDANI

    void loop(){

    digitalWrite(LED,LOW);

    if(digitalRead(Switch) == HIGH)

    {

    Serial.println("ON");

    digitalWrite(LED,HIGH);

    }

    Serial.println("OFF");

    delay(500);

    }

  • 8/17/2019 Basic Arduino Workshop

    25/34

    Questions ???

  • 8/17/2019 Basic Arduino Workshop

    26/34

    SYSTEM DEVELOPMENT(Reverse Parking Sensor System)

  • 8/17/2019 Basic Arduino Workshop

    27/34

    How it works?

    1. Sensors are activated and sense the distance.

    2. Controller process the data.

    3. Notify driver with buzzer / LED.

    3/10/2016 27BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    28/34

    Equipments

    INPUT:

    - Switch

    - Ping Sensor

    3/10/2016 28BASIC ARDUINO WORKSHOP - YOGI HAMDANI

    OUTPUT:

    - Buzzer

    - LED

  • 8/17/2019 Basic Arduino Workshop

    29/34

    Input Analysis

    1. System is activated by switch.2. Ping sensor send ultrasonic wave via trigger pin.

    3. If hit an object, the reflected wave may be received

    through echo pin.

    3/10/2016 29BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    30/34

    Ping Sensor

    3/10/2016 30BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    31/34

    Input Analysis

    4. Ping sensor gives time duration (in µs) betweentransmission and receiving reflected wave.

    5. Analyze time duration into distance measurement.

    3/10/2016 31BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    32/34

    pulseIn Function

    int echo = 8

    int time_duration;

    void setup()

    {

    pinMode(echo, INPUT);}

    void loop()

    {

    time_duration = pulseIn(echo, HIGH);}

    3/10/2016 32BASIC ARDUINO WORKSHOP - YOGI HAMDANI

  • 8/17/2019 Basic Arduino Workshop

    33/34

    Output Requirement

    1. Buzzer rings more intense as distance is closer.

    2. LED blinks / turns on longer as distance is closer.

    3. Give information about distance via serial monitor.

    3/10/2016 33BASIC ARDUINO WORKSHOP - YOGI HAMDANI

    Distance Left Buzzer LED Blue LED Red

    >= 20 cm Not Ring ON OFF

    >= 15 cm && < 20 cm Ring A ON Blink

    >= 10 cm && < 15 cm Ring B ON Blink>= 5 cm && < 10 cm Ring C ON ON

    < 5 cm Ring D ON ON

  • 8/17/2019 Basic Arduino Workshop

    34/34

    PROGRAMMING

    PLAY TIME