2. Dasar Teori
Arduino adalah terobosan baru dalam dunia microcontroller. Arduino merupakan
Mikrokontroller single-board yang bersifat open-source, diturunkan dari Wiring platform,
mempunyai fleksibilitas yang tinggi baik dari segi software maupun hardware untuk
memudahkan rancang bangun elektronik dalam berbagai bidang. Arduino menggunakan IC
ATMega sebagai IC program dan softwarenya memiliki bahasa pemrograman sendiri yang
sering disebut bahasa processing. Bahasa ini sangat mirip dengan bahasa C, namun
penulisannya mendekati bahasa manusia. Arduino menjadi Platform mikrokontroller paling
populer di dunia saat ini. Kemudahan mempelajari dan mengaplikasikan arduino
menjadikannya pilihan untuk robotika dan elektronika.
a. Sejarah Arduino
Dilihat dari sejarahnya, Arduino semula hanyalah karya Thesis seorang mahasiswa
kebangsaan Kolombia bernama Hernando Barragan di universitas Ivrea di Italia.
Judul thesis tersebut adalah “Arduino-La rivoluzione dell’open hardware” (“Arduino–
Revolusi Open Hardware”). Pada tahun 2005, Thesis Tersebut dikembangkan Oleh Massimo
Banzi dan David Cuartielles dan diberi nama Arduino yang dalam bahasa italia berarti
“teman yang berani”.
Pada awalnya, tujuan dikembangkannya arduino adalah membuat sebuah perangkat
mikrokontroller yang murah, fleksibel, dan mudah dipelajari siapa saja bahkan orang yang
awam sekalipun. Saat ini tim pengembang Arduino adalah Massimo Banzi, David
Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan Nicholas Zambetti. Mereka
mengupayakan 4 hal dalam Arduino ini, yaitu:
1. Harga yang terjangkau
2. Dapat dijalankan di berbagai sistem operasi, Windows, Linux, Mac, dan sebagainya.
3. Software dan Hardware sederhana sehingga mudah dipelajari
4. Hardware maupun software open source.
Arduino memiliki berbagai kelebihan dibandingkan dengan mikrokontroller lain. Sesuai
dengan empat hal yang diupayakan pengembang arduino maka Arduino memiliki kelebihan
yaitu:
a. Soket USB adalah soket kabel USB yang disambungkan kekomputer atau laptop. Yang
berfungsi untuk mengirimkan program ke arduino dan juga sebagai port komunikasi
serial. Jadi tidak diperlukan lagi Downloader Eksternal untuk mendownload Program ke
IC Arduino.
b. Input/output digital dan input analog dalam Arduino Fungsinya adalah membaca atau
mengirim data berupa data Analog maupun Digital dari Rangkaian Terintegrasi dengan
Arduino. Biasanya Pin Input/ Output Analog dan Digital berada pada barisan terpisah.
c. Catu Daya pada Arduino bisa menggunakan Socket USB dan terdapat pula Socket DC
12V untuk tipe tertentu. Di dalam Board Arduino sudah tersedia IC regulator Untuk
menstabilkan dan menyuplay tegangan ke modul Arduino.
d. Ukuran Fisik untuk Satu Board arduino reltif kecil karena dibangun menggunakan
komponen SMD (surface mounted Device) yaitu komponen yang sangat kecil , biasanya
terdapat pada board hp dan motherboard sehingga sangat ringkas dan Tahan terhadap
berbagai situasi.
Arduino Uno adalah jenis yang paling banyak digunakan referensi yang yang sangat
beragam. Arduino Uno. Versi yang terakhir adalah Arduino Uno R3 (Revisi 3), menggunakan
mikrokontroler ATmega328, memiliki 14 pin I/O digital dan 6 pin input analog. Untuk
pemograman dapat menggunakan koneksi USB type A to To type B.
b.Spesifikasi Uno
4. Langkah percobaan
a. Identifikasi komponen/pin board Arduino Uno pada gambar 2 dengan mengisi tabel 1 di
bawah ini.
b. Sebutkan dan jelaskan fungsi setiap komponen/pin tersebut pada tabel. 1
Tabel 1.
M
O
L
K
J
I
H
G A c
f
B
D
Deskripsi
Komponen/Pin Fungsi dasar program Adruino
Pin/Komponen
pinMode(13, OUTPUT); // Mengatur pin 13
Pin input/output sebagai output
A pinMode(2, INPUT); // Mengatur pin 2
digital
sebagai input
analogWrite(9, 128); // Mengirimkan sinyal
B Analog Pins
PWM dengan duty cycle 50% ke pin 9
analogWriteResolution(10); // Mengatur
C PMW
resolusi PWM menjadi 10 bit (0-1023)
void setup() {
// Inisialisasi komunikasi SPI
SPI.begin();
// Konfigurasi pengaturan SPI (opsional)
SPI.setClockDivider(SPI_CLOCK_DIV4); //
Mengatur kecepatan SPI menjadi 4MHz
}
E IC Mikrokontroller
void loop() {
// Kirim data SPI
digitalWrite(SS, LOW); // Aktifkan slave
select
SPI.transfer(0x55); // Kirim data 0x55
digitalWrite(SS, HIGH); // Nonaktifkan
slave select
delay(1000); // Jeda
}
void loop() {
// Membaca tegangan di pin Vin
int vinValue = analogRead(A0); // Membaca
tegangan dari pin A0
void setup() {
// Inisialisasi komunikasi serial dengan
kecepatan 9600 bps
Serial.begin(9600);
}
void loop() {
// Membaca data suhu dari sensor
int sensorValue = analogRead(sensorPin);
H Pin 5V
// Mengonversi nilai analog menjadi suhu
dalam derajat Celsius
temperature = (sensorValue * 5.0 / 1024.0
- 0.5) * 100.0;
void setup() {
// Inisialisasi komunikasi serial dengan
kecepatan 9600 bps
Serial.begin(9600);
}
void loop() {
// Membaca data tegangan dari sensor
int sensorValue = analogRead(sensorPin);
void setup() {
// Inisialisasi komunikasi serial dengan
kecepatan 9600 bps
Serial.begin(9600);
void loop() {
// Membaca data tegangan dari sensor
int sensorValue = analogRead(sensorPin);
void setup() {
// Inisialisasi komunikasi serial dengan
kecepatan 9600 bps
Serial.begin(9600);
}
void loop() {
// Membaca data tegangan dari Power Jack
int sensorValue = analogRead(voltagePin);
void setup() {
Serial.begin(9600);
Serial.println("USB Power Status
Example");
}
void loop() {
usb.Task();
Pin/Komponen Fungsi
GPIO (General Purpose Beberapa pin dapat dikonfigurasi sebagai pin GPIO
Input/Output) untuk input atau output digital biasa.
Wifi dan Bluetooth ESP32 juga memiliki pin yang terhubung dengan modul
Wi-Fi dan Bluetooth yang terintegrasi, memungkinkan
komunikasi nirkabel dengan jaringan Wi-Fi dan
perangkat Bluetooth.
Pin/Komponen Fungsi
5. Pertanyaan
a. Jelaskan perbedaan program pin input/output digital dan analog!
b. Jelaskan prinsip kerja komunikasi serial!
c. Jelaskan apa yang dimaksud dengan baud rate!
d. Jika diperlukan program arduino dengan 16 pin output digital, bagaimana program ini
didesain menggunakan board Arduino Uno?
JAWABAN
Input analog
Untuk membaca input analog pada Arduino Uno atau board Arduino lainnya, kita dapat
menggunakan fungsi analogRead(). Contoh:
// Deklarasikan variabel untuk menyimpan hasil pembacaan analog
int nilaiPembacaan = 0;
void setup() {
// Mulai komunikasi serial untuk mengirim hasil pembacaan ke monitor
serial
Serial.begin(9600);
}
void loop() {
// Baca input analog dari pin A0
nilaiPembacaan = analogRead(pinAnalog);
Kami mendefinisikan pin yang akan dibaca sebagai pinAnalog (dalam contoh ini, kita
menggunakan pin A0).
Dalam fungsi setup(), kami memulai komunikasi serial dengan Serial.begin(9600) untuk
mengirim hasil pembacaan ke monitor serial.
Kami menambahkan delay(1000) untuk memberikan jeda satu detik antara pembacaan
analog untuk menghindari pembacaan yang terlalu cepat.
Input Digital
Untuk membaca input digital pada Arduino Uno atau board Arduino lainnya, Anda dapat
menggunakan fungsi digitalRead(). Contoh:
// Tentukan pin yang akan Anda baca sebagai input digital
const int pinDigital = 2; // Ganti angka ini dengan nomor pin yang
ingin Anda gunakan
void setup() {
// Mulai komunikasi serial untuk mengirim hasil pembacaan ke monitor
serial
Serial.begin(9600);
void loop() {
// Baca status input digital dari pin
int statusInput = digitalRead(pinDigital);
Kami mencetak status input digital ke monitor serial menggunakan Serial.print() dan
Serial.println().
Kami menambahkan delay(1000) untuk memberikan jeda satu detik antara pembacaan
input digital untuk menghindari pembacaan yang terlalu cepat.
Output analog
void setup() {
// Konfigurasi pin sebagai output PWM
pinMode(pinPWM, OUTPUT);
}
void loop() {
// Menghasilkan sinyal PWM dengan tingkat kecerahan yang dapat
diubah-ubah
for (int i = 0; i <= 255; i++) {
analogWrite(pinPWM, i); // Mengatur kecerahan PWM dari 0 hingga
255
delay(10); // Tunda sebentar sebelum meningkatkan kecerahan
}
}
Kami mendefinisikan pin yang akan digunakan sebagai pinPWM (dalam contoh ini, kita
menggunakan pin 9). Pastikan Anda memilih pin yang mendukung output PWM
(biasanya ditandai dengan simbol "~" di sekitar nomor pin).
Dalam fungsi setup(), kami mengkonfigurasi pin sebagai output PWM dengan
menggunakan pinMode(pinPWM, OUTPUT).
Kami menambahkan delay(10) setiap kali kita mengubah tingkat kecerahan PWM untuk
memberikan waktu untuk melihat perubahan tersebut. Anda dapat mengubah nilai delay
sesuai dengan kebutuhan Anda.
Output Digital
void setup() {
// Konfigurasi pin sebagai output digital
pinMode(pinDigital, OUTPUT);
}
void loop() {
// Mengatur pin sebagai HIGH (logika 1) untuk 1 detik
digitalWrite(pinDigital, HIGH);
delay(1000);
// Mengatur pin sebagai LOW (logika 0) untuk 1 detik
digitalWrite(pinDigital, LOW);
delay(1000);
}
Kami mendefinisikan pin yang akan digunakan sebagai pinDigital (dalam contoh ini, kita
menggunakan pin 8). Anda dapat memilih pin digital mana pun sesuai dengan kebutuhan
Anda.
Dalam fungsi setup(), kami mengkonfigurasi pin sebagai output digital dengan
menggunakan pinMode(pinDigital, OUTPUT).
c. Baud rate, Pada Arduino dan mikrokontroler dalam konteks umum, baud rate adalah
tingkat komunikasi yang digunakan untuk mengukur seberapa cepat data dapat
ditransmisikan melalui komunikasi serial UART (Universal Asynchronous
Receiver/Transmitter). Baud rate dalam hal ini mengacu pada jumlah simbol (baud)
yang dapat ditransmisikan per detik. Ini adalah parameter penting dalam konfigurasi
komunikasi serial di Arduino.
Pengaturan baud rate menentukan berapa banyak bit data yang dikirimkan atau
diterima per detik. Baud rate digunakan untuk mengukur tingkat transmisi data dan
menjadi faktor penting dalam menyelaraskan komunikasi antara Arduino dan
perangkat lain yang terhubung melalui komunikasi serial.