latihan pemrograman arduino
TRANSCRIPT
-
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