Anda di halaman 1dari 21

LAPORAN PRAKTIKUM MIKROKONTROLLER DAN IOT

(IDENTIFIKASI BOARD ARDUINO UNO)

NAMA : PUTRI AMALIA RAMADHANI


NIM : 422 21 059
KELAS : 3C TRJT

PRODI D4 TEKNIK REKAYASA JARINGAN TELEKOMUNIKASI


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI UJUNG PANDANG
2023
1. Tujuan Praktikum
• Mengidentifikasi board Arduino Uno
• Mengidentifikasi port digital dan analog
• Mengidentifikasi port serial

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

SPESIFIKASI Arduino Uno:


Microcontroller : ATmega328P
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)
SRAM : 2 KB (ATmega328P)
EEPROM : 1 KB (ATmega328P)
Clock Speed : 16 MHz
LED_BUILTIN : 13
Length : 68.6 mm
Width : 53.4 mm
Weight : 25 g
Gambar 1. Pin Mapping Atemega328P

c. Langkah-langkah pemrograman Arduino:


• Program yang ditulis dalam bahasa Arduino dikenal sebagai sketches atau sketsa.
Sketsa dasar terdiri dari 3 bagian yaitu:
i. Deklarasi Variabel
ii. Inisialisasi: ditulis dalam fungsi setup ().
iii. Kode kontrol: ditulis dalam fungsi loop ().
• Sketsa disimpan dengan ekstensi .ino. Operasi apa pun seperti verifikasi, membuka
sketsa, menyimpan sketsa dapat dilakukan dengan tombol pada toolbar atau
menggunakan tool menu.
• Sketsa sebaiknya disimpan di sketchbook directory.
• Pilih board arduino yang tepat pada tool menu dan nomor port serial.
• Klik tombol upload atau pilih upload dari tool menu. Sehingga coding diupload oleh
bootloader ke mikrokontroler.

Beberapa fungsi dasar program Adruino adalah:


• digitalRead (pin): Membaca nilai digital pada pin yang diberikan.
• digitalWrite (pin, value): Menulis nilai digital ke pin yang diberikan.
• pinMode (pin, mode): Mengatur pin ke mode input atau output.
• analogRead (pin): Membaca dan mengembalikan nilai pada pin yang diberikan.
• analogWrite (pin, value): Menulis nilai ke pin itu.
• serial.begin (baud rate): Mengatur kecepatan bit komunikasi serial.
(https://www.elprocus.com/arduino-basics-and-design/)

3. Alat dan Bahan


• Arduino Uno
• Datasheet ATmega328P

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.

Komponen/Pin Deskripsi Fungsi


Pin/Komponen
A Pin input/output digital Membaca nilai logika 0 dan 1 atau
mengendalikan komponen output lain seperti
LED, relay, atau sejenisnya.

B Analog Pins Digunakan untuk membaca sinyal atau sensor


jarak, suhu, dsb, dan mengubahnya menjadi nilai
digital.

C PMW Mendukung sinyal PMW, yang berfungsi untuk


mengatur kecepetan motor, atau kecerahan lampu
dan lain-lain.

D Pin Serial Memungkinkan terjadinya serial pada Arduino.


Pin RX0 berfungsi untuk menerima TTL data
serial sedangkan TX1 berfungsi untuk mengirim
TTL data serial.

E IC Mikrokontroller IC atau Integrated Circuit yang diprogram oleh


papan Arduino untuk mengatur pin digital dan pin
analog.

F Pin Vin Digunakan untuk memasok listrik dari luar ke


papan arduino

G Pin GND (Ground) Ground/oin negative dalam sirkuit elektronik,


akhir dari setiap jalur arus listrik

H Pin 5V Sumber tegangan output 5V

I Pin 3,3 Sumber tegangan output 3,3 Volt

J Lampu indikator Ketika menyambungkan Arduino ke sumber


daya, lampu L ini akan menyala. Ini
menunjukkan bahwa papan Arduino telah
menerima daya dari sumber eksternal, seperti
USB atau adaptor.

K AREF Analog Reference digunakan untuk mendapatkan


sumber tegangan yang dapat diatur oleh IC.

L Crystal Oscillator Digunakan sebagai layaknya deetak jantung pada


Arduino. Digunakan sebagai timer atau
penghitung.

M Power Jack Supply atau sumber listrik untuk Arduino dengan


tipe jack. Input DC 5-12 V.

N Power USB Digunakan untuk menghubungkan papan Arduino


dengan computer lewat koneksi USB.

O Reset Digunakan untuk mengulang program Arduino


dari awal/reset.
N

M
O

L
K
J

I
H
G A c
f

B
D

Gambar 2. Board Arduino


c. Sebutkan fungsi dasar program Adruino yang berhubungan dengan pin Arduino Uno
pada gambar 2 dan tabel 2.
Tabel 2.

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)

D Pin Serial void setup() {


// Inisialisasi komunikasi serial dengan
kecepatan 9600 bps
Serial.begin(9600);
}
void loop() {
// Kirim data melalui pin TX1 (pin 1)
Serial1.println("Hello, World!"); //
Mengirim string "Hello, World!" diikuti
dengan newline

// Menerima data dari pin RX0 (pin 0)


if (Serial.available() > 0) {
char receivedChar = Serial.read(); //
Membaca karakter yang diterima
Serial.print("Received: ");
Serial.println(receivedChar);
}
}
#include <SPI.h>

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
}

F Pin Vin void setup() {


// Inisialisasi komunikasi serial dengan
kecepatan 9600 bps
Serial.begin(9600);
}

void loop() {
// Membaca tegangan di pin Vin
int vinValue = analogRead(A0); // Membaca
tegangan dari pin A0

// Mengonversi nilai analog menjadi


tegangan (dengan asumsi referensi 5V)
float voltage = vinValue * (5.0 /
1023.0); // 5.0 Volt adalah tegangan
referensi Arduino
// Menampilkan hasil ke serial monitor
Serial.print("Tegangan di pin Vin: ");
Serial.print(voltage);
Serial.println(" Volt");

delay(1000); // Jeda 1 detik


}
Tidak ada operasi khusus yang perlu dilakukan pada pin GND
dalam program Arduino, karena pin GND adalah koneksi tetap
G Pin GND (Ground)
yang digunakan untuk membuat ground atau referensi nol
dalam rangkaian.
const int sensorPin = A0; // Pin analog
untuk membaca data sensor
float temperature; // Variabel untuk
menyimpan data suhu

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;

// Menampilkan hasil suhu ke serial


monitor
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.println(" °C");

delay(1000); // Jeda 1 detik


}

I Pin 3,3 const int sensorPin = A0; // Pin analog


untuk membaca data sensor
float voltage; // Variabel untuk menyimpan
data tegangan

void setup() {
// Inisialisasi komunikasi serial dengan
kecepatan 9600 bps
Serial.begin(9600);
}

void loop() {
// Membaca data tegangan dari sensor
int sensorValue = analogRead(sensorPin);

// Mengonversi nilai analog menjadi


tegangan dalam Volt (dengan asumsi
referensi 3.3V)
voltage = (sensorValue * 3.3) / 1023.0;

// Menampilkan hasil tegangan ke serial


monitor
Serial.print("Tegangan: ");
Serial.print(voltage);
Serial.println(" Volt");

delay(1000); // Jeda 1 detik


}
Ketika menyambungkan Arduino ke sumber daya, lampu L ini
akan menyala. Ini menunjukkan bahwa papan Arduino telah
J Lampu indikator
menerima daya dari sumber eksternal, seperti USB atau
adaptor.

K AREF const int sensorPin = A0; // Pin analog


untuk membaca data sensor
float voltage; // Variabel untuk menyimpan
data tegangan

void setup() {
// Inisialisasi komunikasi serial dengan
kecepatan 9600 bps
Serial.begin(9600);

// Mengatur tegangan referensi ke


eksternal (misalnya, 3.3V)
analogReference(EXTERNAL);
}

void loop() {
// Membaca data tegangan dari sensor
int sensorValue = analogRead(sensorPin);

// Mengonversi nilai analog menjadi


tegangan dalam Volt (dengan asumsi tegangan
referensi eksternal)
voltage = (sensorValue * 3.3) / 1023.0;
// Tegangan referensi eksternal adalah 3.3V
// Menampilkan hasil tegangan ke serial
monitor
Serial.print("Tegangan: ");
Serial.print(voltage);
Serial.println(" Volt");

delay(1000); // Jeda 1 detik


}
Arduino Uno menggunakan mikrokontroler ATMega328P
yang memiliki built-in crystal oscillator berkecepatan 16 MHz.
Biasanya, tidak perlu mengatur atau mengonfigurasi crystal
L Crystal Oscillator
oscillator secara eksplisit dalam program Arduino, karena ini
sudah dilakukan secara otomatis oleh papan Arduino saat Anda
mengunggah kode ke dalamnya.
const int voltagePin = A0; // Pin analog
untuk membaca tegangan pada Power Jack
float inputVoltage; // Variabel untuk
menyimpan data tegangan

void setup() {
// Inisialisasi komunikasi serial dengan
kecepatan 9600 bps
Serial.begin(9600);
}

void loop() {
// Membaca data tegangan dari Power Jack
int sensorValue = analogRead(voltagePin);

M Power Jack // Mengonversi nilai analog menjadi


tegangan dalam Volt (dengan asumsi tegangan
referensi 5V)
inputVoltage = (sensorValue * 5.0 /
1023.0); // Tegangan referensi Arduino
adalah 5V

// Menampilkan hasil tegangan ke serial


monitor
Serial.print("Tegangan pada Power Jack:
");
Serial.print(inputVoltage);
Serial.println(" Volt");

delay(1000); // Jeda 1 detik


}

N Power USB #include <USBHost.h>


USBHost usb;
USBHub hub1(&usb);

void setup() {
Serial.begin(9600);
Serial.println("USB Power Status
Example");
}

void loop() {
usb.Task();

// Cek apakah ada pasokan USB


if (usb.getUsbTaskState() ==
USB_STATE_RUNNING) {
Serial.println("USB Power Detected");
} else {
Serial.println("USB Power Not
Detected");
}

delay(1000); // Jeda 1 detik


}
void resetArduino() {
resetFunc(); // Memanggil fungsi
O Reset
resetFunc() untuk mengatur ulang Arduino
}
Tabel 3. Fungsi Pin/Komponen pada ESP32

Pin/Komponen Fungsi

Digunakan sebagai input/output digital. Kita dapat


Pin Digital Input/Output menggunakannya untuk mengontrol perangkat eksternal
atau membaca sinal deari sensor eksternal.

ESP32 memiliki beberapa pin yang dapat digunakan


Pin Analog sebagai input analog untuk membaca tegangan analog
dari sensor seperti sensor suhu atau sensor cahaya.

Beberapa pin dapat digunakan untuk menghasilkan


sinyal PWM. Ini berguna untuk mengendalikan
PWM Output
kecepatan motor, tingkat kecerahan LED, dan aplikasi
lain yang memerlukan kendali analog.

Beberapa pin digunakan untuk komunikasi serial UART,


UART (Universal
yang sering digunakan untuk berkomunikasi dengan
Asynchronous
perangkat eksternal seperti modul GPS atau perangkat
Receiver/Transmitter)
lain yang mendukung komunikasi serial.

ESP32 memiliki beberapa pin yang mendukung


komunikasi SPI, yang umumnya digunakan untuk
SPI (Serial Peripheral Interface)
berkomunikasi dengan sensor dan perangkat yang
menggunakan protokol SPI.

Beberapa pin pada ESP32 mendukung komunikasi I2C,


I2C (Inter-Integrated Circuit) yang digunakan untuk menghubungkan perangkat ke
dalam bus I2C, seperti sensor suhu atau accelerometer.

GPIO (General Purpose Beberapa pin dapat dikonfigurasi sebagai pin GPIO
Input/Output) untuk input atau output digital biasa.

Beberapa pin pada ESP32 memiliki kemampuan sentuh


(touch-sensitive), yang dapat digunakan untuk
Touch Pins mendeteksi sentuhan atau tekanan. Ini berguna untuk
membuat tombol sentuh atau mengimplementasikan
fungsi sentuh lainnya.

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.

Beberapa board ESP32 memiliki antena terintegrasi


Antena
untuk komunikasi nirkabel.

Tabel 4. Fungsi Pin/Komponen pada ESP8266

Pin/Komponen Fungsi

Ini adalah pin daya. Anda biasanya menghubungkannya


VCC (Voltage Supply) ke sumber tegangan 3.3V DC untuk memberi daya pada
modul ESP8266.

Ini adalah pin ground yang harus dihubungkan ke ground


GND (Ground)
pada sumber tegangan Anda.

Ini adalah pin komunikasi serial UART yang digunakan


untuk berkomunikasi dengan modul ESP8266. TX
TX dan RX digunakan untuk mengirim data dari mikrokontroler ke
modul, sedangkan RX digunakan untuk menerima data
dari modul.

ESP8266 memiliki beberapa pin GPIO yang dapat


dikonfigurasi sebagai input atau output digital. Anda
GPIO
dapat menggunakannya untuk mengontrol perangkat
eksternal atau membaca data dari perangkat eksternal.

Beberapa pin pada ESP8266 dapat digunakan sebagai


ADC (Analog to Digital
input analog untuk membaca tegangan analog dari sensor
Converter)
seperti sensor suhu atau sensor cahaya.

Ini adalah pin reset yang dapat digunakan untuk


RST (Reset) mengatur ulang modul ESP8266. Menghubungkan pin ini
ke ground sementara akan mengatur ulang modul.

Ini adalah pin yang mengaktifkan atau menonaktifkan


CH_PD (Chip Enable) modul ESP8266. Biasanya, pin ini dihubungkan ke
sumber tegangan 3.3V untuk mengaktifkan modul.

Pin ini memiliki peran khusus saat memprogram


GPIO15 (MTDO) ESP8266. Biasanya, itu harus diatur ke LOW selama
pemrograman.

GPIO0 (IO0) Ini juga memiliki peran khusus saat pemrograman.


Biasanya, ini harus diatur ke LOW selama pemrograman
atau boot ke mode pemrograman.

Ini adalah pin umum yang dapat digunakan untuk input


GPIO2 (IO2)
atau output digital.

Ini adalah pin dengan kemampuan "Wakeup" yang dapat


GPIO16 (IO16) digunakan untuk membangunkan modul dari mode deep
sleep.

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

a. Perbedaan program pin input/output digital dan analog!

 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;

// Tentukan pin yang akan Anda baca sebagai input analog


const int pinAnalog = A0;

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);

// Kirim hasil pembacaan ke monitor serial


Serial.print("Nilai Pembacaan Analog: ");
Serial.println(nilaiPembacaan);

// Tunda sebentar sebelum membaca lagi


delay(1000);
}

 Kami mendeklarasikan variabel nilaiPembacaan untuk menyimpan hasil pembacaan


analog.

 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.

 Dalam fungsi loop(), kami menggunakan analogRead(pinAnalog) untuk membaca


tegangan analog dari pin pinAnalog. Nilai ini akan berada dalam rentang 0 hingga 1023.

 Kami kemudian mencetak nilai pembacaan ke monitor serial menggunakan Serial.print()


dan Serial.println().

 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);

// Konfigurasi pin sebagai input digital


pinMode(pinDigital, INPUT);
}

void loop() {
// Baca status input digital dari pin
int statusInput = digitalRead(pinDigital);

// Kirim status input digital ke monitor serial


Serial.print("Status Input Digital: ");
Serial.println(statusInput);

// Tunda sebentar sebelum membaca lagi


delay(1000);
}
 Kami mendefinisikan pin yang akan dibaca sebagai pinDigital (dalam contoh ini, kita
menggunakan pin digital 2). Anda dapat mengganti nomor pin sesuai kebutuhan
Anda.

 Dalam fungsi setup(), kami memulai komunikasi serial dengan Serial.begin(9600)


untuk mengirim hasil pembacaan ke monitor serial. Selain itu, kami mengkonfigurasi
pin sebagai input digital dengan pinMode(pinDigital, INPUT).

 Dalam fungsi loop(), kami menggunakan digitalRead(pinDigital) untuk membaca


status input digital dari pin yang telah dikonfigurasi sebagai input. Nilai yang
dikembalikan akan menjadi HIGH (logika 1) jika ada tegangan pada pin tersebut atau
LOW (logika 0) jika tidak ada tegangan.

 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

 // Tentukan pin yang akan Anda gunakan sebagai output PWM


 const int pinPWM = 9; // Ganti angka ini dengan nomor pin yang
mendukung PWM

 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
 }

 // Menurunkan tingkat kecerahan PWM


 for (int i = 255; i >= 0; i--) {
 analogWrite(pinPWM, i);
 delay(10);
 }

 }

 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).

 Dalam fungsi loop(), kami menggunakan analogWrite(pinPWM, nilai) untuk


menghasilkan sinyal PWM dengan tingkat kecerahan yang dapat diubah-ubah. Kami
menggunakan loop for untuk meningkatkan dan kemudian mengurangi tingkat kecerahan
PWM dari 0 hingga 255 dalam periode tertentu. Ini akan menghasilkan efek perubahan
kecerahan lampu atau perangkat yang terhubung ke pin PWM.

 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

 // Tentukan pin yang akan Anda gunakan sebagai output digital


 const int pinDigital = 8; // Ganti angka ini dengan nomor pin yang
ingin Anda gunakan

 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).

 Dalam fungsi loop(), kami menggunakan digitalWrite(pinDigital, nilai) untuk


mengendalikan tingkat logika pada pin digital. Kami mengatur pin sebagai HIGH (logika
1) selama 1 detik menggunakan digitalWrite(pinDigital, HIGH) dan kemudian
mengaturnya sebagai LOW (logika 0) selama 1 detik menggunakan
digitalWrite(pinDigital, LOW). Ini akan menghasilkan efek berkedip pada perangkat
yang terhubung ke pin digital yang Anda pilih.

 Kami menambahkan delay(1000) antara perubahan tingkat logika untuk memberikan


waktu untuk melihat perubahan tersebut. Anda dapat mengubah nilai delay sesuai dengan
kebutuhan Anda untuk mengatur kecepatan berkedipnya pin.

b. Prinsip kerja komunikasi serial: Prinsip kerja komunikasi serial melibatkan


pengiriman dan penerimaan data secara berurutan melalui satu jalur komunikasi.
Jalur komunikasi serial mengirimkan data satu bit pada satu waktu, dan ini berbeda
dengan komunikasi paralel di mana beberapa bit dapat dikirimkan secara bersamaan.

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.

d. Jika diperlukan program arduino dengan 16 pin output digital, bagaimana


program ini didesain menggunakan board Arduino Uno?
Jika Anda perlu membuat program Arduino Uno dengan 16 pin output digital, Anda
dapat melakukannya dengan menghubungkan perangkat atau komponen yang akan
dikendalikan ke 16 pin digital yang tersedia pada Arduino Uno dan kemudian
membuat program yang sesuai dengan kebutuhan Anda. Di bawah ini adalah contoh
program dasar yang mengatur 16 pin digital sebagai output dan secara bergantian
mengaktifkan dan menonaktifkan mereka:

Anda mungkin juga menyukai