Arduino
Arduino
TRAINING ARDUINO II
Latihan Pemrograman Arduino
Agus Supanto
085716068353
E-mail : [email protected]
Latihan
Pemrograman
Arduino
APK-TECH | techno-apk.blogspot.com
AREF LED
13
R1
PB5/SCK
12
PB4/MISO 470
RESET 11 LED-RED
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9 R2
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121
10k
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
Dasar Pemrograman I/O
pinMode()
pinMode digunakan untuk mengkonfigurasi PIN secara spesifik sebagai
INPUT/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
Program Nyala Led
ARDUINO UNO
APK-TECH | techno-apk.blogspot.com
AREF LED
13
R1
PB5/SCK
12
PB4/MISO 470
RESET 11 LED-RED
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9 R2
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121
10k
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
Program Button
delay()
delay atau jeda digunakan untuk menghentikan program dalam jumlah
waktu tertentu / sesuai dengan nilai yang tertulis dalam
parameternya, dengan satuan waktu dalam milidetik.
Syntax : delay( [value] )
[value] = nilai parameter
Contoh :
delay(1000)//program akan berhenti selama 1000 milidetik
delayMicroseconds()
delayMicroseconds sama dengan delay hanya saja satuan waktunya
dalam mikrodetik.
Syntax : delay( [value] )
[value] = nilai parameter
Contoh :
delayMicroseconds(1000)//program akan berhenti selama 1000
mikrodetik
Program Blink
APK-TECH | techno-apk.blogspot.com
AREF
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
13
PB5/SCK
12
PB4/MISO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RESET 11
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
Dasar Pemrograman LCD
#include <LiquidCrystal.h>// menginputkan library LiquidCrystal.h
LiquidCrystal lcd(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 baris
dari 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(“TES LCD”) //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‟)
Program LCD
APK-TECH | techno-apk.blogspot.com
AREF
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
13
PB5/SCK
12
PB4/MISO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RESET 11
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
Keypad
ARDUINO UNO LCD 16X2
LM016L
VDD
VSS
VEE
RW
13
RS
D0
D1
D2
D3
D4
D5
D6
D7
PB5/SCK
E
12
PB4/MISO R4
RESET 11
~PB3/MOSI/OC2A R3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
10
~ PB2/SS/OC1B R2
9
~ PB1/OC1A R1
8
PB0/ICP1/CLKO C3
ATMEGA328P-PU
1121
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1 C2
6
A0 ~ PD6/AIN0 C1
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
C1
C2
C3
ARDUINO UNO R3
3
R1 A 1 2 3
R2 B 4 5 6
R3 C 7 8 9
R3 D 0 #
Pemrogramman Keypad
APK-TECH | techno-apk.blogspot.com
AREF
VDD
VSS
VEE
RW
13
RS
D0
D1
D2
D3
D4
D5
D6
D7
PB5/SCK
E
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
RVARIABLE PB0/ICP1/CLKO
ATMEGA328P-PU
1121
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
53%
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
1k PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
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
Program ADC
APK-TECH | techno-apk.blogspot.com
AREF
VDD
VSS
VEE
RW
13
RS
D0
D1
D2
D3
D4
D5
D6
D7
PB5/SCK
E
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
RVARIABLE PB0/ICP1/CLKO
ATMEGA328P-PU
1121
DIGITAL (~PWM) 7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
52%
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
1k PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
PWM
ARDUINO UNO
APK-TECH | techno-apk.blogspot.com
AREF
PB5/SCK
13 R1
12 470
PB4/MISO
RESET 11
~PB3/MOSI/OC2A
10 D?
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
RVARIABLE PB0/ICP1/CLKO
ATMEGA328P-PU
1121
LED-RED
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
40%
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
1k PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
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
Program PWM
ARDUINO UNO
APK-TECH | techno-apk.blogspot.com
AREF
PB5/SCK
13 R1
12 470
PB4/MISO
RESET 11
Nyala Led
~PB3/MOSI/OC2A
10 D?
~ PB2/SS/OC1B
9
~ PB1/OC1A
Berdasarkan
8
RVARIABLE PB0/ICP1/CLKO
ATMEGA328P-PU
1121
LED-RED
DIGITAL (~PWM)
ANALOG IN 7
PD7/AIN1
Nilai dari
6
A0 ~ PD6/AIN0
PC0/ADC0 5
35%
A1 ~ PD5/T1
PC1/ADC1 4
Variable Resistor
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
1k PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
Serial
ARDUINO UNO
APK-TECH | techno-apk.blogspot.com
AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK RXD
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0 TXD
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD RTS
CTS
ARDUINO UNO R3
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 Arduino
ke PC atau perangkat lain dengan menggunakan jalur TX (PIN 1).
Syntax : Serial.print(“[data]”)
Contoh :
Serial.print(“Latihan Serial”)
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”)
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 Arduino
melalui jalur Rx (PIN 0).
Syntax : [tipe data][variable] = Serial.read()
Contoh :
char Data = Serial.read();
Program Serial
7 SEGMENT
ARDUINO UNO
OUTA2 OUTA1
APK-TECH | techno-apk.blogspot.com
OUTB2 OUTB1
OUTC2 OUTC1
OUTD2 OUTD1
AREF OUTE2 OUTE1
OUTF2 OUTF1
13
PB5/SCK OUTG2 OUTG1
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A U2
10
~ PB2/SS/OC1B
9 7 13
~ PB1/OC1A INA2 A QA OUTA2
8 1 12
PB0/ICP1/CLKO INB2 B QB OUTB2
2 11
ATMEGA328P-PU
1121
DIGITAL (~PWM)
INC2 C QC OUTC2
7 6 10
ANALOG IN
ARDUINO UNO
OUTA2 OUTA1
APK-TECH | techno-apk.blogspot.com
OUTB2 OUTB1
OUTC2 OUTC1
OUTD2 OUTD1
AREF OUTE2 OUTE1
OUTF2 OUTF1
13
PB5/SCK OUTG2 OUTG1
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A U2
10
~ PB2/SS/OC1B
9 7 13
~ PB1/OC1A INA2 A QA OUTA2
8 1 12
PB0/ICP1/CLKO INB2 B QB OUTB2
2 11
ATMEGA328P-PU
1121
DIGITAL (~PWM)
INC2 C QC OUTC2
7 6 10
ANALOG IN