You are on page 1of 70

Intro Arduino

Presented by:
M. Khoirul Effendi ST. MSc. (Eng.)
Spec Arduino-uno

 Operating Voltage: 5V
 Input Voltage (recommended): 7-12V
 Input Voltage (limit): 6-20V
 Digital I/O Pins: 14 (of which 6 provide PWM output)
 PWM Digital I/O Pins: 6
 Analog Input Pins: 6
 DC Current per I/O Pin: 20 mA
 DC current for 3.3V Pin: 50 mA
 Flash Memory: 32 KB (ATmega328P) of which 0.5 KB used by bootloader
 SRAM: 2 KB (ATmega328P)
 EEPROM: 1 KB (ATmega328P)
 Clock Speed: 16 MHz
 LED_BUILTIN: 13
 ADC = 10 bits (210 = 1024)
Persiapan (1/2)

1. Download software dari situs resmi Arduino


https://www.arduino.cc/en/Main/Software kemudian Install.

2. Masukkan kabel data Arduino (USB) ke laptop

3. Klik kanan tombol windows search device manager

4. Contoh yang sudah terinstall driver arduinonya


Persiapan (2/2)

Pastikan board sama portnya sesuai dengan spec device manager


arduino
Program ke- 1 : LED

Program ini berfungsi untuk mengatur kedipan lampu LED di arduino.


Pada program kali ini lampu LED diatur kedipanya selama masing-
masing 500 ms (0.5 detik)
Langkah Pegerjaan

Buka Software arduino : File  New.


Coding: LED_1
Isi coding

int ledPin = 13; // pin yang digunakan sudah ada di Arduiono


void setup() {
// put your setup code here, to run once:
pinMode(ledPin, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ledPin, HIGH);
delay(500); // 500 ms = 0.5 detik
digitalWrite(ledPin, LOW);
delay(500); // 500 ms = 0.5 detik
}
Language Reference
https://www.arduino.cc/reference/en/
pinMOde()
Pengenalan Bread Board
dan LED
Program ke-2 : LED

Program ini berfungsi untuk mengatur kedipan lampu LED di Breadboard. Jalur
positif masuk di LedPin 8 sedang jalur positif masuk ke ground. Pada program kali
ini lampu LED diatur kedipanya selama masing-masing 500 ms (0.5 detik).
Alat yang dibutuhkan
1. Arduino
2. Kabel jumper + to +
3. Resistor (adanya resistor mengakibatkan intensitas cahaya LED menjadi lebih
redup)
4. Lampu LED
Rangkaian Alat (tanpa
resistor)

+
-
Rangkaian Alat (dengan
resistor)
Coding: LED_2
Isi coding

int ledPin = 8; // pin yang digunakan sudah ada di Arduiono


void setup() {
// put your setup code here, to run once:
pinMode(ledPin, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ledPin, HIGH);
delay(500); // 500 ms = 0.5 detik
digitalWrite(ledPin, LOW);
delay(500); // 500 ms = 0.5 detik
}
Latihan Mandiri

Buatlah simulasi lampu LED dengan spesifikasi


sbb
1. Dua buah lampu LED On-off (2 detik ON dan
0.5 detik OFF)
2. Kedua buah lampu LED tsb disusun secara
paralel
Coding: LED_3
Program ke-3 : LED

 Program ini berfungsi untuk mengatur kedipan lampu


LED di Breadboard. Jalur positif masuk di LedPin 8
sedang jalur positif masuk ke ground.

 Pada program kali ini lampu LED diatur kedipanya


selama masing-masing 1000 ms dan kemudian waktu
nya secara bertahap dikurangi 100 ms.

 Kemudian proses berulang lagi jika delay time-nya < 0


ms dengan delay = 1000 ms
Coding Program

int pinLED = 8; digitalWrite(pinLED, HIGH);


void setup() {
delay(timeDelay);
// put your setup code here, to run
once: digitalWrite(pinLED, LOW);
pinMode(pinLED, OUTPUT); delay(timeDelay);
}
}
int timeDelay = 1000; // initial value
void loop() {
// put your main code here, to run
repeatedly:
timeDelay = timeDelay - 100;
if(timeDelay <= 0){
timeDelay = 1000;
}
Program ke-4 : LED

 Program ini berfungsi untuk mengatur kedipan lampu


LED di Breadboard. Jalur positif masuk di LedPin 8
sedang jalur positif masuk ke ground.

 Pada program kali ini lampu LED diatur kedipanya


selama masing-masing 500 ms.

 Setelah 5x kedip (on-off) maka led akan mati selama 3


detik.

 Proses kembali lagi ke awal


Coding: LED_4
Coding

int pinLED = 8;// nyala-mati 0.5 void loop() {


detik 5x kemudian mati 3 detik // put your main code here, to run
repeatedly:
void setup() { for(int i=1;i<=5;i++){
// put your setup code here, to digitalWrite(pinLED, HIGH);
run once: delay(500);
digitalWrite(pinLED, LOW);
pinMode(pinLED, OUTPUT);
delay(500);
} }

int timeDelay = 3000; // initial delay(timeDelay);


value }
Latihan Mandiri

Buatlah simulasi lampu LED dengan spesifikasi


sbb
1. Sebuah lampu LED on-off awalnya 1 detik
kemudian berkurang dengan selisih 0.2 detik.
2. Ketika sudah mencapai 0 detik maka lampu
akan mati selama 3 detik
3. Proses dimulai lagi dari awal
Coding: LED_5
Coding

int pinLED = 8;// nyala-mati secara void loop() {


bertahap berkurang dari 1 detik trus // put your main code here, to run
dikurangi 0.1 detik kemudian delay 3 repeatedly:
detik timeDelay = timeDelay - 100;
if(timeDelay <= 0){
delay(3000);
void setup() { timeDelay = 1000;
// put your setup code here, to run }
once: digitalWrite(pinLED, HIGH);
delay(timeDelay);
pinMode(pinLED, OUTPUT); digitalWrite(pinLED, LOW);
} delay(timeDelay);

}
int timeDelay = 1000; // initial value
Latihan Mandiri

Buatlah simulasi lampu LED dengan spesifikasi


sbb
1. 2 buah lampu LED (LED A dan LED B)
digunakan untuk simulasi.
2. Kondisi satu  LED A menyala LED B mati
3. Kondisi dua  LED A mati LED B menyala
4. Kondisi tiga  LED A dan LED B menyala
5. Setiap perubahan kondisi ada delay 1 detik
Rangkaian Alat (tanpa
resistor)
Coding: LED_6
Coding
} else if (i == 2) {
int pinLED1 = 8;
// lampu 1 mati, lampu 2 hidup
int pinLED2 = 9; digitalWrite(pinLED1, LOW);
void setup() { digitalWrite(pinLED2, HIGH);
// put your setup code here, to run once: delay(1000); //delay 1 detik
pinMode(pinLED1, OUTPUT); } else if (i == 3) {
// lampu 1 hidup, lampu 2 hidup
pinMode(pinLED2, OUTPUT);
digitalWrite(pinLED1, HIGH);
} digitalWrite(pinLED2, HIGH);
void loop() { delay(1000);
for (int i = 0; i < 4; i++) { } else {
if (i == 1) { // jika tidak, matikan semua led
digitalWrite(pinLED1, LOW);
// lampu 1 hidup, lampu 2 mati
digitalWrite(pinLED2, LOW);
digitalWrite(pinLED1, HIGH); delay(1000);
digitalWrite(pinLED2, LOW); }
delay(1000); }
}
Coding: LED_7
Latihan Mandiri (NEED
CHECK)
Buatlah simulasi lampu LED dengan spesifikasi sbb
1. 2 buah lampu LED (LED A dan LED B) digunakan untuk
simulasi.
2. LED A menyala, 1 detik kemudian LED B menyala
(kedua lampu menyala)
3. Setelah 1 detik (kedua lampu mati)
4. Delay 1 detik
5. LED B menyala, setengah detik kemudian LED A
menyala (kedua lampu menyala)
6. Setelah 1 detik (kedua lampu mati)
7. Proses berulang dari awal
Coding: LED_8
Latihan Mandiri

Buatlah simulasi lampu LED dengan spesifikasi


sbb
1. 2 buah lampu LED (LED A dan LED B)
digunakan untuk simulasi.
2. LED A nyala mati selama 3x (interval 0.5 detik)
3. Delay 3 detik
4. LED B nyala mati selama 3x (interval 0.5 detik)
5. Delay 3 detik
6. Proses berulang
Coding: LED_9
Latihan Mandiri

Buatlah simulasi lampu LED dengan spesifikasi sbb


1. 2 buah lampu LED (LED A dan LED B) digunakan untuk
simulasi.
2. LED A menyala LED B mati delay 1 detik
3. LED A mati LED B menyala delay 1 detik
4. LED A dan LED B menyala delay 1 detik
5. LED A nyala mati selama 3x (interval 0.5 detik)
6. Delay 3 detik
7. LED B nyala mati selama 3x (interval 0.5 detik)
8. Delay 3 detik
Rangkaian Alat (tanpa
resistor)
Coding : push_button

const int pinButton = 2;


const int pinLED = 8;
void setup() {
pinMode(pinButton, INPUT);
pinMode(pinLED, OUTPUT);
// aktifkan pull-up resistor
digitalWrite(pinButton, HIGH);
}
void loop() {
if(digitalRead(pinButton) == LOW){
digitalWrite(pinLED, HIGH);
}else{
digitalWrite(pinLED, LOW);
}
}
Latihan Mandiri

Buatlah simulasi menggunakan 2 push button untuk


mengontrol tingkat kecerahan sebuah lampu LED
Desain Rangkaian
Code : push_button_PWM
Coding
void loop() {
const int pinBt1 = 2;
if (digitalRead(pinBt1) == LOW) {
const int pinBt2 = 3; // jika pushbutton ditekan
// tambahkan nilai brightness
const int pinLED = 9; brightness++;
void setup() { } else if (digitalRead(pinBt2) == LOW) {
// jika pushbutton2 ditekan
pinMode(pinBt1, INPUT);
// kurangi nilai brightness
pinMode(pinBt2, INPUT); brightness--;
pinMode(pinLED, OUTPUT); }
digitalWrite(pinBt1, HIGH); // brightness dibatasi antara 0 - 255
digitalWrite(pinBt2, HIGH); // jika di bawah 0, maka ganti dengan 0
// jika di atas 255, maka ganti dengan 255
}
brightness = constrain(brightness, 0,
int brightness = 0; 255);
// pinLED diberi nilai antara 0 - 255
analogWrite(pinLED, brightness);
// delay agar perubahannya bertahap
delay(20);
Serial Monitor

Ketika kita menggunakan sebuah sensor untuk mengambil data, maka sensor
akan mengirimkan data untuk diproses oleh mikrokontroller. Untuk memastikan
data dari sensor tersebut merupakan data yang benar, maka diperlukan Serial
Monitor. Cara kerjanya begini:

 Mikrokontroller akan membaca data dari sensor

 Kemudian mikrokontroller akan membuat koneksi serial ke komputer

 Selanjutnya mikrokontroller akan mengirimkan data ke komputer melalui


komunikasi serial tersebut

 Lalu kita bisa melihat data yang diterima oleh komputer menggunakan serial
monitor.
Code : Serial_monitor
Results

Setiap LED TX berkedip,


artinya Arduino sedang
mengirim data
Output with different BAUD
Potentio

Hubungkan kaki tengah dengan A0 (analog 0), kaki kanan dengan 5V dan kaki kiri
dengan ground.

Hambatan min
Coding
Display Result

Min Value Max Value


Manual Potensio

• Potensio digunakan untuk mengontrol lecerahan


LED
• Arduino hanya dipakai sebagai supply daya

-
Latihan Mandiri

Buatlah rangkai potensiometer untuk mengatur tingkat kecerahan LED


dengan
1. Manual (tanpa Arduino), pada kasus ini voltase input (5V) dan
ground hanya dipakai sebagai supply tegangan ke potensio untuk
mengatur nyala LED
2. Dengan Arduino, pada kasus ini Arduino digunakan untuk
meneruskan sinyal potensio untuk mengontrol kecerahan LED. Nilai
potensio meter dirubah kedalam sinyal PWM yang digunakan untuk
mengontrol kecerahan LED
3. Hasil running ditampilkan juga di serial monitor
Using Arduino

-
Code : Potensio_LED
Coding

const int pinPot = A0; // pin A0 adalah pin Analog


const int pinLED = 9; // pin 9 adalah pin digital support PWM
void setup() {
pinMode(pinPot, INPUT);
pinMode(pinLED, OUTPUT);
}
int sensor = 0;
int brightness = 0;
void loop() {
sensor = analogRead(pinPot); // baca nilai kaki A0 (sensor, potensiometer)
brightness = map(sensor, 0, 1023, 0, 255); // konversi nilai 0-1023 (Analog)
menjadi 0-255 (PWM)
analogWrite(pinLED, brightness); // tentukan brightness LED dengan PWM
}
Latihan Mandiri

Buatlah rangkaian potensiometer untuk mengatur tingkat


kecerahan LED dengan Arduino, pada kasus ini Arduino
digunakan untuk meneruskan sinyal potensio untuk
mengontrol KEDIPAN LED.
Code : Potensio_LED_kedip
Coding

const int pinPot = A0;


const int pinLED = 9;
void setup() {
pinMode(pinPot, INPUT);
pinMode(pinLED, OUTPUT);
}
int sensor = 0;
void loop() {
// baca nilai kaki A0 (sensor, potensiometer)
sensor = analogRead(pinPot);
// durasi kedipan sesuai nilai pada sensor 0-1023
digitalWrite(pinLED, HIGH);
delay(sensor);
digitalWrite(pinLED, LOW);
delay(sensor);
}
Tracking Time Delay

Program ini memberikan informasi apa yang terjadi pada lampu LED
(ledPin 13) setiap detiknya
Code : Tracking_time_delay
Coding

const int LED = 13; Serial.println();


int timeDelay = 3000; Serial.print("timeDelay = ");
void setup() { Serial.println(timeDelay);
Serial.begin(9600); Serial.println("LED = OFF");
Serial.println("pin 13 as OUTPUT"); digitalWrite(LED, LOW);
pinMode(LED, OUTPUT); delay(timeDelay);
Serial.println("LED = ON, selama Serial.println("LED = ON");
timeDelay = 3 detik"); digitalWrite(LED, HIGH);
digitalWrite(LED, HIGH); delay(timeDelay);
delay(timeDelay); timeDelay = timeDelay - 100;
} }
void loop() {
if(timeDelay <= 100){
Serial.println("Reset timeDelay to 1000");
timeDelay = 1000;
}
LM 35  Temp Sensor
Important Note

 LM35 hanya sebatas 150o celcius atau 150 x 10 mV = 1500 mV (1.5


V)

 Jika kita menggunakan tegangan referensi 5 volt, maka Arduino bisa


mengukur setidaknya hingga 5000 mV.

 Suhu dalam Voltase (T) : 0 - 500

 Cacahan Voltase input (Vin) : 0 - 1024

 T/500 = Vin/1024

 T = (Vin * 500) / 1024


Code : LM_35_V1
LM_35

const int pSuhu = A0;


float suhu, data;
void setup() {
Serial.begin(9600);
pinMode(pSuhu, INPUT);
}
void loop() {
data = analogRead(pSuhu);
suhu = data * 500 / 1024;
Serial.print("data: ");
Serial.print(data);
Serial.print(", suhu: ");
Serial.print(suhu);
Serial.println();
delay(1000);
}
Code : LM_35_V2
LM_35  coding lebih presisi
menggunakan Vref 1,5 V
const int pSuhu = A0;
Serial.print(suhu);
float suhu, data; Serial.print(" C (");
void setup() { Serial.print(convertToF(suhu));
analogReference(INTERNAL); Serial.print(" F)");
Serial.begin(9600); Serial.println();
delay(1000);
pinMode(pSuhu, INPUT);
}
} float convertToF(float suhuC){
void loop() { return (suhuC * 9.0/5.0) + 32;
data = analogRead(pSuhu); }
suhu = data * 150 / 1024;
Serial.print("data: ");
Serial.print(data);
Serial.print(", suhu: ");
LDR
Rangkaian LDR
Code : LDR_1

// Free Ebook Arduino Serial.print(dataLDR);


// www.elangsakti.com Serial.print(" Kondisi : ");
if(dataLDR < 40){
// coder elangsakti
Serial.println("GELAP");
// pin A0 ke LDR }else if(dataLDR < 100){
const int pinLDR = A0; Serial.println("REDUP");
void setup() { }else if(dataLDR < 150){
Serial.begin(9600); Serial.println("TERANG");
}else{
pinMode(pinLDR, INPUT);
Serial.println("SILAU");
} }
int dataLDR = 0; delay(1000);
void loop() { }
dataLDR = analogRead(pinLDR);
Serial.print("dataLDR : ");
Hasil LDR

Gelap  sensor ditutup pakai jari


Redup  lampu ruangan
Silau  lampu senter HP
Latihan mandiri

Tambahkan sebuah LED pada rangkain LDR anda


kemudian rubah intensitas yang diterima LDR
dalam perubahan nyala lampu LED
Code : LDR_2
Rangkaian LDR

-
Latihan mandiri

Tambahkan 2 buah LED pada rangkain LDR anda


kemudian rubah intensitas yang diterima LDR
dalam perubahan nyala lampu LED. Kondisi
1. LDR 1 < 40 dan LDR 1 < 40 kondisi gelap
2. LDR 1 < 100 dan LDR 1 < 100 kondisi redup
3. LDR 1 < 150 dan LDR 1 < 150 kondisi terang
4. Else silau
Code : LDR_3
Rangkaian LDR

-
Sensor Ultrasonic
Gambar Rangkaian
IR sensor (TCRT 5000 IR)

Driver dari sensor ini memiliki 2 output


1. A0 (analog output)
2. D0 (digital output)
Rangkaian Sensor IR
Serial Motor Output

Benda terdeteksi

Benda tidak
terdeteksi
Code : IR_sensor

const int IN_A0 = A0; // analog input


const int IN_D0 = 8; // digital input
int IRvalueAnalog, IRvalueDigital;

void setup() {
Serial.begin(9600);
pinMode (IN_A0, INPUT);
pinMode (IN_D0, INPUT);
}
void loop() {
IRvalueAnalog = analogRead(IN_A0);
Serial.print("Analog Reading ");
Serial.print(IRvalueAnalog);
IRvalueDigital = digitalRead(IN_D0);
Serial.print("\t Digital Reading ");
Serial.println(IRvalueDigital);
delay(1000);
}
Code : IR_sensor_V2
Latihan

1. Berapakah nilai default jarak (nilai analog) dari


IR yang meng ON/OFF kan LED di modul IR
(Digital In berniai 1 atu 0?
2. Modifikasi nilai default jarak di modul tersebut
sehingga lampu LED di pin 9 akan hidup ketika
jarak < 300
Rangkaian Sensor IR dan
LED
Code :
Latihan

1. Dua buah IR sensor digunakan secara


bersamaan untuk mengontrol lampu LED.
2. Jika jarak masing-masing sensor IR < 300
maka LED akan menyala
Coding: 2_IR_sensor

Rangkaian 2 Sensor IR dan LED


IR and LCD
Referensi

1. Santoso, H., “Panduan Praktis Arduino Untuk


Pemula”, www.elangsakti.com
2. Halvorsen, H., “Introduction to Arduino-An
Open-Source Prototyping Platform”
3. Schwartz, M., Programming Arduino with
LabVIEW, Packt Publishing, Birmingham, 2015
4. Timmis H., “ Practical Arduino Engineering”

You might also like