Latihan Pemrograman Arduino

download Latihan Pemrograman Arduino

of 26

Transcript of Latihan Pemrograman Arduino

  • 8/10/2019 Latihan Pemrograman Arduino

    1/26

    ARDUINO

    TRAINING ARDUINO IILatihan Pemrograman Arduino

    Agus Supanto085716068353

    E-mail : [email protected]

  • 8/10/2019 Latihan Pemrograman Arduino

    2/26

    Latihan

    Pemrograman

    Arduino

    1. Led dan Button

    2. LCD

    3. Keypad

    4. ADC

    5. PWM

    6. Serial

    7. Seven Segment

  • 8/10/2019 Latihan Pemrograman Arduino

    3/26

    Led dan Button

    DIGITAL(~PWM)

    ANALOGIN

    ATMEGA328P-PU

    1121

    ~~

    ~

    ~~

    ~

    APK-TECH|techno-apk.blogspot.com

    TX

    RXPD0/RXD 0

    PD1/TXD 1

    PD2/INT0 2

    PD3/INT1 3

    PD4/T0/XCK 4

    PD5/T1 5

    PD6/AIN0 6

    PD7/AIN1 7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9

    PB2/SS/OC1B 10PB3/MOSI/OC2A 11

    PB4/MISO 12

    PB5/SCK 13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4

    PC3/ADC3A3 PC2/ADC2

    A2 PC1/ADC1

    A1 PC0/ADC0

    A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    LED

    LED-RED

    R1

    470

    R2

    10k

  • 8/10/2019 Latihan Pemrograman Arduino

    4/26

    Dasar Pemrograman I/O

    pinMode()

    pinMode digunakan untuk mengkonfigurasi PIN secara spesifik sebagaiINPUT/OUTPUT.

    Syntax : pinMode( [pin],[mode] )

    [pin] = nomor PIN

    [mode] = INPUT atau OUTPUT

    Contoh :

    pinMode(13,OUTPUT)//PIN 13 berfungsi sebagai OUTPUT

    pinMode(10,INPUT) //PIN 10 berfungsi sebagai INPUT

    *) Ditulis di dalam void setup().

    digitalWrite()digitalWrite digunakan untuk memberikan nilai (logika) pada PIN.

    Syntax : digitalWrite( [pin],[logika] )

    [pin] = nomor PIN

    [logika] = HIGH atau LOW

    Contoh :

    digitalWrite(13, HIGH)//Memberi logika HIGH pada PIN 13

    digitalRead()

    digitalRead digunakan untuk membaca nilai ( HIGH atau LOW ) dari PIN.

    Syntax : digitalRead( [pin] )

    [pin] = nomor PIN

  • 8/10/2019 Latihan Pemrograman Arduino

    5/26

    Program Nyala Led

    DIGITAL(~PWM)

    ANALOGIN

    ATMEGA328P-PU

    1121

    ~

    ~

    ~

    ~

    ~

    ~

    APK-TECH|techno-ap

    k.blogspot.com

    TX

    RXPD0/RXD 0

    PD1/TXD 1

    PD2/INT0 2

    PD3/INT1 3

    PD4/T0/XCK 4

    PD5/T1 5

    PD6/AIN0 6

    PD7/AIN1 7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9

    PB2/SS/OC1B 10

    PB3/MOSI/OC2A 11

    PB4/MISO 12

    PB5/SCK 13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4

    PC3/ADC3A3

    PC2/ADC2A2

    PC1/ADC1A1

    PC0/ADC0A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    LED

    LED-RED

    R1

    470

    R2

    10k

  • 8/10/2019 Latihan Pemrograman Arduino

    6/26

    Program Button

    Jika Tombol ditekan maka Led akan Nyala

  • 8/10/2019 Latihan Pemrograman Arduino

    7/26

    Pemrograman Delay

    delay()

    delay atau jeda digunakan untuk menghentikan program dalam jumlah

    waktu tertentu / sesuai dengan nilai yang tertulis dalam

    parameternya, dengan satuan waktu dalammilidetik.

    Syntax : delay( [value] )

    [value] = nilai parameter

    Contoh :

    delay(1000)//program akan berhenti selama 1000 milidetik

    delayMicroseconds()

    delayMicroseconds sama dengan delay hanya saja satuan waktunya

    dalammikrodetik.

    Syntax : delay( [value] )

    [value] = nilai parameter

    Contoh :

    delayMicroseconds(1000)//program akan berhenti selama 1000

    mikrodetik

  • 8/10/2019 Latihan Pemrograman Arduino

    8/26

    Program Blink

    Led akan Nyala Mati setiap 1 detik

  • 8/10/2019 Latihan Pemrograman Arduino

    9/26

    LCD 16x2

    DIGITAL(~P

    WM)

    ANALOGIN

    ATMEGA328P-PU

    1121

    ~

    ~

    ~

    ~

    ~

    ~

    APK-TECH|techno

    -apk.blogspot.com

    TX

    RXPD0/RXD 0

    PD1/TXD 1PD2/INT0

    2PD3/INT1

    3PD4/T0/XCK

    4PD5/T1

    5PD6/AIN0

    6PD7/AIN1

    7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9

    PB2/SS/OC1B 10

    PB3/MOSI/OC2A 11

    PB4/MISO 12

    PB5/SCK 13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4

    PC3/ADC3A3

    PC2/ADC2A2

    PC1/ADC1A1

    PC0/ADC0A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    D7

    1

    4

    D6

    1

    3

    D5

    1

    2

    D4

    1

    1

    D3

    1

    0

    D2

    9

    D1

    8

    D0

    7

    E

    6

    RW

    5

    RS

    4

    VSS

    1

    VDD

    2

    VEE

    3

    LCD 16X2LM016L

  • 8/10/2019 Latihan Pemrograman Arduino

    10/26

    Dasar Pemrograman LCD

    #include // menginputkan library LiquidCrystal.h

    LiquidCrystallcd(5,4,3,2,1,0)//Rs,En,D4,D5,D6,D7(mendeklarasikan pin lcd)

    lcd.begin()

    lcd.begin digunakan untuk menginisialisasi jumlah kolom dan jumlah barisdari lcd.

    Syntax : lcd.begin( [kolom],[baris] )

    Contoh : lcd.begin(16,2) //LCD dengan 16 Kolom dan 2 Baris

    *) Ditulis di dalam void setup().

    lcd.setCursor()

    lcd.setCursor digunakan untuk menentukan posisi awal penulisan di lcd.

    Syntax : lcd.setCursor( [x],[y] )[x] = nomor Kolom [y] = nomor Baris

    Contoh : lcd.setCursor(2,1) //Penulisan dimulai dari Kolom 2 dan Baris 1

    lcd.Print()

    lcd.print digunakan untuk menampilkan karakter (string) pada lcd.

    Syntax : lcd.print([karakter/string])

    Contoh : lcd.print(TESLCD)//lcd akan menampilkan TES LCD

    lcd.clear()

    lcd.clear digunakan untuk membersihkan tampilan pada lcd.

    Syntax : lcd.clear()

    lcd.write()

    lcd.write digunakan untuk menampilkan satu karakter.

    Syntax : lcd.write([char]) contoh : lcd.write(A)

  • 8/10/2019 Latihan Pemrograman Arduino

    11/26

    Program LCD

    DIGITAL(~PWM)

    ANALOGIN

    ATMEGA328P-PU

    1121

    ~~

    ~

    ~

    ~

    ~

    APK-TECH|techno-a

    pk.blogspot.com

    TX

    RX PD0/RXD 0

    PD1/TXD 1

    PD2/INT0 2

    PD3/INT1 3

    PD4/T0/XCK 4

    PD5/T1 5

    PD6/AIN0 6

    PD7/AIN1 7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9

    PB2/SS/OC1B 10PB3/MOSI/OC2A

    11PB4/MISO

    12PB5/SCK

    13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4

    PC3/ADC3A3

    PC2/ADC2A2

    PC1/ADC1A1

    PC0/ADC0A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    D7

    14

    D6

    13

    D5

    12

    D4

    11

    D3

    10

    D2

    9

    D1

    8

    D0

    7

    E

    6

    RW

    5

    RS

    4

    VSS

    1

    VDD

    2

    VEE

    3

    LCD 16X2LM016L

  • 8/10/2019 Latihan Pemrograman Arduino

    12/26

    Keypad

    DIGITA

    L(~PWM)

    ANAL

    OGIN

    A

    TMEGA328P-PU

    1121

    ~

    ~

    ~

    ~

    ~

    ~

    APK-TECH|techno-apk.blogspot.com

    TX

    RX PD0/RXD 0

    PD1/TXD 1

    PD2/INT0 2

    PD3/INT1 3

    PD4/T0/XCK 4

    PD5/T1 5

    PD6/AIN0 6

    PD7/AIN1 7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9

    PB2/SS/OC1B 10

    PB3/MOSI/OC2A 11

    PB4/MISO 12

    PB5/SCK 13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4

    PC3/ADC3A3

    PC2/ADC2A2 PC1/ADC1

    A1 PC0/ADC0

    A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    D7

    14

    D6

    13

    D5

    12

    D4

    11

    D3

    10

    D2

    9

    D1

    8

    D0

    7

    E

    6

    RW

    5

    RS

    4

    VSS

    1

    VDD

    2

    VEE

    3

    LCD 16X2LM016L

    1 2 3

    4 5 6

    7 8 9

    0 #

    1 2 3

    A

    B

    C

    D

    C3

    R1

    C2

    C1

    R2

    R3

    R4

    C1

    C2

    C3

    R1

    R2

    R3

    R3

  • 8/10/2019 Latihan Pemrograman Arduino

    13/26

    Pemrogramman Keypad

    Pengetahuan Dasar yang Dibutuhkan

    Pembuatan Variable

    Pemrograman Input / Output

    Pemrograman Delay

    Pemrograman LCD

    Alias (#define)

    Function

    Langkah-langkah Pembuatan Program Keypad

    1. Membuat alias (#dafine) dari Pin-pin yang akan

    digunakan2. Membuat Function Penekanan Keypad

    3. Menginisialisasi LCD dan Pin-pin yang digunakan

    4. Membuat Program Utama

  • 8/10/2019 Latihan Pemrograman Arduino

    14/26

    ADC

    DIGITAL(~PWM)

    ANALOGIN

    ATMEGA328P-PU

    1121

    ~

    ~

    ~

    ~

    ~

    ~

    APK-TECH|techn

    o-apk.blogspot.com

    TX

    RXPD0/RXD

    0PD1/TXD

    1PD2/INT0

    2PD3/INT1

    3PD4/T0/XCK

    4PD5/T1

    5PD6/AIN0

    6PD7/AIN1

    7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9

    PB2/SS/OC1B 10

    PB3/MOSI/OC2A 11PB4/MISO

    12PB5/SCK

    13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4

    PC3/ADC3A3

    PC2/ADC2A2

    PC1/ADC1A1

    PC0/ADC0A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    D7

    14

    D6

    13

    D5

    12

    D4

    11

    D3

    10

    D2

    9

    D1

    8

    D0

    7

    E

    6

    RW

    5

    RS

    4

    VSS

    1

    VDD

    2

    VEE

    3

    LCD 16X2LM016L

    53%

    RVARIABLE

    1k

  • 8/10/2019 Latihan Pemrograman Arduino

    15/26

    Dasar Pemrograman ADC

    analogRead()

    analogRead digunakan untuk membaca nilai dari PIN analog.

    Syntax : analogRead( [pin] )[pin] = nomor PIN Analog

    Contoh :

    analogRead(A1) //Membaca nilai Analog pada PIN A1

  • 8/10/2019 Latihan Pemrograman Arduino

    16/26

    Program ADC

    DIGITAL(~PWM)

    ANALOGIN

    ATMEGA328P-PU

    1121

    ~

    ~

    ~

    ~

    ~

    ~

    APK-TEC

    H|techno-apk.blogspot.com

    TX

    RXPD0/RXD 0

    PD1/TXD 1

    PD2/INT0 2

    PD3/INT1 3

    PD4/T0/XCK 4

    PD5/T1 5

    PD6/AIN0 6

    PD7/AIN1 7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9

    PB2/SS/OC1B 10

    PB3/MOSI/OC2A 11

    PB4/MISO 12

    PB5/SCK 13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4

    PC3/ADC3A3

    PC2/ADC2A2

    PC1/ADC1A1

    PC0/ADC0A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    D7

    14

    D6

    13

    D5

    12

    D4

    11

    D3

    10

    D2

    9

    D1

    8

    D0

    7

    E

    6

    RW

    5

    RS

    4

    VSS

    1

    VDD

    2

    VEE

    3

    LCD 16X2LM016L

    52%

    RVARIABLE

    1k

    PWM

  • 8/10/2019 Latihan Pemrograman Arduino

    17/26

    PWM

    DIGITAL

    (~PWM)

    ANALO

    GIN

    ATMEGA328P-PU

    1121

    ~~

    ~

    ~~

    ~

    APK-TECH|techno-apk.blogspot.com

    TX

    RXPD0/RXD 0

    PD1/TXD 1

    PD2/INT0 2

    PD3/INT1 3PD4/T0/XCK

    4PD5/T1

    5PD6/AIN0

    6PD7/AIN1

    7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9

    PB2/SS/OC1B 10

    PB3/MOSI/OC2A 11PB4/MISO

    12PB5/SCK

    13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4

    PC3/ADC3A3

    PC2/ADC2A2

    PC1/ADC1A1

    PC0/ADC0A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    40%

    RVARIABLE

    1k

    D?

    LED-RED

    R1

    470

  • 8/10/2019 Latihan Pemrograman Arduino

    18/26

    Dasar Pemrograman PWM

    analogWrite()

    analogWrite digunakan untuk mengeluarkan sinyal analog PWM (Pada

    Arduino UNO nilai sinyal PWM dari 0-255).

    Syntax : analogWrite( [pin],[nilai PWM] )

    [pin] = nomor PIN

    [nilai PWM] = besarnya PWM

    Contoh :

    analogWrite(3,255)//menghasilkan PWM 255 di PIN D3

  • 8/10/2019 Latihan Pemrograman Arduino

    19/26

    Program PWM

    DIGITAL(~PWM)

    ANALOGIN

    ATMEGA328P-PU

    1121

    ~

    ~

    ~

    ~

    ~

    ~

    APK-TECH|techno-apk.blogspot.com

    TX

    RXPD0/RXD 0

    PD1/TXD 1

    PD2/INT0 2

    PD3/INT1 3

    PD4/T0/XCK 4

    PD5/T1 5

    PD6/AIN0 6

    PD7/AIN1 7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9PB2/SS/OC1B

    10PB3/MOSI/OC2A

    11PB4/MISO

    12PB5/SCK

    13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4

    PC3/ADC3A3

    PC2/ADC2A2

    PC1/ADC1A1

    PC0/ADC0A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    35%

    RVARIABLE

    1k

    D?

    LED-RED

    R1470

    Nyala LedBerdasarkan

    Nilai dariVariable Resistor

    S i l

  • 8/10/2019 Latihan Pemrograman Arduino

    20/26

    Serial

    DIGITAL(~P

    WM)

    ANALOGIN

    ATMEGA328P-PU

    1121

    ~~

    ~

    ~~

    ~

    APK-TECH|tec

    hno-apk.blogspot.com

    TX

    RXPD0/RXD 0

    PD1/TXD 1PD2/INT0 2

    PD3/INT1 3

    PD4/T0/XCK 4

    PD5/T1 5

    PD6/AIN0 6

    PD7/AIN1 7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9

    PB2/SS/OC1B 10

    PB3/MOSI/OC2A 11

    PB4/MISO 12

    PB5/SCK 13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4

    PC3/ADC3A3

    PC2/ADC2A2

    PC1/ADC1A1

    PC0/ADC0A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    RXD

    RTS

    TXD

    CTS

    Perangkat Lain (PC, ARduino, Shield, dll)

  • 8/10/2019 Latihan Pemrograman Arduino

    21/26

    Dasar Pemrogramman Serial

    Serial.begin()

    Serial.begin digunakan untuk menentukan nilai BaudRate.

    Syntax : Serial.begin( [nilai baudrate] )

    Contoh :

    Serial.begin(9600) //Komunikasi Serial dengan baudrate

    9600

    *) Ditulis di dalam void setup().

    Serial.print()

    Serial.print digunakan untuk mengirimkan data string dari Arduinoke PC atau perangkat lain dengan menggunakan jalur TX (PIN 1).

    Syntax : Serial.print([data])

    Contoh :

    Serial.print(LatihanSerial)

    Serial.println()

    Serial.println hampir sama dengan Serial.print, tetapi dalam

    pengiriman datanya Serial.println menambahkan karakter Enter pada

    setiap akhir data.

    Syntax : Serial.println([data])

    Contoh :

    Serial.println(Latihan Serial)

  • 8/10/2019 Latihan Pemrograman Arduino

    22/26

    Dasar Pemrogramman Serial

    Serial.write()

    Serial.write digunakan untuk mengirimkan data dalam bentuk biner,

    satu byte data dalam setiap pengiriman.

    Serial.available

    Serial.available digunakan untuk mendapatkan jumlah karakter atau

    byte yang telah diterima oleh serial port.

    Serial.read()

    Serial.read digunakan untuk membaca data yang masuk ke Arduinomelalui jalur Rx (PIN 0).

    Syntax : [tipe data][variable] = Serial.read()

    Contoh :

    charData = Serial.read();

  • 8/10/2019 Latihan Pemrograman Arduino

    23/26

    Program Serial

    7 SEGMENT

  • 8/10/2019 Latihan Pemrograman Arduino

    24/26

    7 SEGMENT

    DIGITAL(~P

    WM)

    ANALOGIN

    ATMEGA328P-PU

    1121

    ~

    ~

    ~

    ~

    ~

    ~

    APK-TECH|techn

    o-apk.blogspot.com

    TX

    RXPD0/RXD 0

    PD1/TXD 1PD2/INT0 2

    PD3/INT1 3

    PD4/T0/XCK 4

    PD5/T1 5

    PD6/AIN0 6

    PD7/AIN1 7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9

    PB2/SS/OC1B 10

    PB3/MOSI/OC2A 11PB4/MISO

    12PB5/SCK

    13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4 PC3/ADC3

    A3 PC2/ADC2

    A2 PC1/ADC1

    A1 PC0/ADC0

    A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    A7

    QA 13

    B1

    QB 12

    C2

    QC 11

    D6

    QD 10

    BI/RBO4

    QE 9

    RBI5

    QF 15

    LT3

    QG 14

    U2

    74LS47A

    7QA

    13

    B1

    QB 12

    C2

    QC 11

    D6

    QD 10

    BI/RBO4

    QE 9

    RBI5

    QF 15

    LT3

    QG 14

    U1

    74LS47

    IND2

    INC2

    INB2

    INA2

    IND1

    INC1INB1

    INA1

    OUTG1

    OUTF1

    OUTE1

    OUTD1

    OUTC1

    OUTB1OUTA1

    OUTG2

    OUTF2

    OUTE2

    OUTD2

    OUTC2

    OUTB2

    OUTA2INA2

    INB2

    INC2

    IND2

    INA1INB1

    INC1

    IND1

    OUTA1

    OUTB1

    OUTC1

    OUTD1

    OUTE1

    OUTF1

    OUTG1

    OUTA2

    OUTB2

    OUTC2

    OUTD2

    OUTE2

    OUTF2

    OUTG2

  • 8/10/2019 Latihan Pemrograman Arduino

    25/26

    Program 7Segment I

    DIGITAL(~PWM)

    ANALOGIN

    ATMEGA328P-PU

    1121

    ~

    ~

    ~

    ~

    ~

    ~

    APK-TECH|te

    chno-apk.blogspot.com

    TX

    RX PD0/RXD 0

    PD1/TXD 1

    PD2/INT0 2

    PD3/INT1 3

    PD4/T0/XCK 4

    PD5/T1 5

    PD6/AIN0 6

    PD7/AIN1 7

    PB0/ICP1/CLKO 8

    PB1/OC1A 9

    PB2/SS/OC1B 10

    PB3/MOSI/OC2A 11

    PB4/MISO 12PB5/SCK 13

    AREF

    PC5/ADC5/SCLA5

    PC4/ADC4/SDAA4

    PC3/ADC3A3

    PC2/ADC2A2

    PC1/ADC1A1

    PC0/ADC0A0

    RESET

    ARDUINO UNO

    ARDUINO UNO R3

    A7

    QA 13

    B1

    QB 12

    C2

    QC 11

    D6

    QD 10

    BI/RBO4

    QE 9

    RBI5

    QF 15

    LT3

    QG 14

    U2

    74LS47A

    7QA

    13

    B1

    QB 12

    C2

    QC 11

    D6

    QD 10

    BI/RBO4

    QE 9

    RBI5

    QF 15

    LT3

    QG 14

    U1

    74LS47

    IND2

    INC2

    INB2

    INA2

    IND1

    INC1

    INB1

    INA1

    OUTG1

    OUTF1

    OUTE1

    OUTD1

    OUTC1

    OUTB1

    OUTA1

    OUTG2

    OUTF2

    OUTE2

    OUTD2

    OUTC2

    OUTB2

    OUTA2INA2

    INB2

    INC2

    IND2

    INA1

    INB1

    INC1

    IND1

    OUTA1

    OUTB1

    OUTC1

    OUTD1

    OUTE1

    OUTF1

    OUTG1

    OUTA2

    OUTB2

    OUTC2

    OUTD2

    OUTE2

    OUTF2

    OUTG2

  • 8/10/2019 Latihan Pemrograman Arduino

    26/26

    Program 7Segment II