Anda di halaman 1dari 11

TUGAS 1 ARDUINO

Disusun untuk memenuhi salah satu tugas mata kuliah


Instrumentasi dan Pengukuran
Dosen Pengampu : Mulki Reza B. P., MT.
Tanggal Pengumpulan : 17 November 2021

Disusun oleh :

Farissa Rahmasari (201711012)


2A – TEN

PROGRAM STUDI D-III TEKNIK KONVERSI ENERGI


JURUSAN TEKNIK KONVERSI ENERGI
POLITEKNIK NEGERI BANDUNG
TAHUN AJARAN 2021/2022
Farissa Rahmasari (201711012)
2A TEN

\ 2A TEN
Digital I/O
Board Arduino mempunyai jumlah pin yang berlabel digital D0 – D13 sebanyak 14 dengan
pengalamatnya 0 – 13. Apabila pin digital yang di butuhkan masih kurang, maka masih bisa
menambahnya dengan menggunakan pin yang berlabel analog A0 – A5 yang difungsikan
sebagai pin digital input/output dengan pengalamatnya 14 – 19. Ada saat tertentu pin digital 0
dan 1 tidak dapat digunakan dikarenakan di pakai untuk komunikasi serial sehingga perlu hati-
hati dalam pengalokasian I/O.
❖ digitalRead()
Digunakan untuk membaca nilai dari pin yang dikehendaki dengan hasil HIGH atau
LOW.

❖ digitalWrite()
Digunakan untuk mengeset pin yang di kehendaki dalam kondisi level tegangan HIGH
atau LOW (nyala atau mati). Pin digital arduino mempunyai 14 ( 0 – 13 ).

❖ pinMode()
Biasa digunakan dalam void setup() untuk mengkonfigurasi pin apakah sebagai INPUT
atau OUTPUT. Arduino digital pins secara default di konfigurasi sebagai input
sehingga untuk merubahnya harus menggunakan operator pinMode(pin, mode).

Analog I/O
Arduino dilengkapi juga oleh pin analog yang berfungsi untuk membaca input tegangan
variabel antara 0-5 Volt dengan resolusi ADC (Analog to Digital) 10-bit. Pada Arduino
terdapat 6 pin yang berlabel analog input dengan pengalamatan A0 – A5. Tidak seperti pin
digital yang berfungsi selain sebagai digital input, dapat juga berfungsi sebagai digital output.
Namun, pada pin analog hanya dapat berfungsi sebagai analog input saja. Apabila ingin
membuat Arduino mengeluarkan output tegangan analog, maka masih bisa dilakukan dengan
menggunakan pin digital yang berlabel PWM (3,5,6,9,10,11). Sejatinya, tegangan analog yang
dikeluarkan Arduino adalah dengan memanipulasi output digital secara pulsa.
❖ analogRead()
Berfungsi untuk membaca nilai pin analog yang memiliki resolusi 10-bit. Fungsi ini
hanya dapat bekerja pada analog pin (0 – 5). Hasil dari pembacaan berupa nilai integer
dengan range 0 sampai 1023.
Farissa Rahmasari (201711012)
2A TEN

\ 2A TEN
❖ analogReference()
Berfungsi untuk mengkonfigurasi tegangan yang digunakan untuk masukan analog
seperti nilai yang digunakan sebagai rentang masukan tertinggi. Opsi-opsi yang ada
pada fungsi ini meliputi :

1. DEFAULT – Referensi analog bawaan 5 volt (pada papan Arduino 5V) atau 3,3
volt (pada papan Arduino 3.3V).
2. INTERNAL − Referensi bawaan, sama dengan 1,1 volt pada ATmega168 atau
ATmega328 dan 2,56 volt pada ATmega8 (tidak tersedia di Arduino Mega).
3. INTERNAL1V1 − Referensi bawaan 1.1V (hanya Arduino Mega).
4. INTERNAL2V56 − Referensi bawaan 2.56V (hanya Arduino Mega).
5. EXTERNAL − Tegangan yang diterapkan pada pin AREF (hanya 0 hingga 5V)
digunakan sebagai referen.

❖ analogWrite()
Berfungsi mengirimkan nilai analog dengan metoda Pulse Width Modulation (PWM)
ke pin yang berlabel PWM (3,5,6,9,10,11). Nilai yang dapat digunakan adalah dari
0-255.

Zero, Due & MKR Family


❖ analogReadResolution()
Merupakan fungsi tambahan yang hanya dimiliki pada Arduino Zero, Due, MKR
Family, Nano 33 (BLE dan IoT) dan Potenta yang digunakan untuk mengatur jumlah
bit resolusi yang dibaca oleh perintah analogRead(). Pada kondisi standard resolusi
adalah 10 bit dan dapat diubah menjadi 12 bit untuk Arduino Zero, Due, MKR Family,
Nano 33 (BLE dan IoT) dan 16 bit untuk Potenta.

❖ analogWriteResolution()
Digunakan untuk mengatur resolusi dari fungsi analogWrite() di mana pada kondisi
standard adalah 8 bit (nilai dari 0 – 255). Namun, untuk beberapa Arduino Board ini
terdapat beberapa perbedaan.

1. Arduino Due
- Terdapat 12 pin dengan 8 bit PWM pada kondisi standarnya. Resolusi ini dapat
diubah menjadi 12 bit.
- Terdapat 2 pin DAC (Digital to Analog Converter)
Dengan mengubah resolusi menjadi 12 maka pada saat digunakan fungsi
analogWrite() akan terdapat nilai mulai dari 0 – 4095 pada DAC atau terdapat signal
PWM yang lebih halus.

2. Arduino Zero
- Terdapat 10 pin dengan 8 bit PWM pada kondisi standardnya. Resolusi ini dapat
diubah menjadi 12 bit.
- Terdapat 1 pin DAC (Digital to Analog Converter).
Farissa Rahmasari (201711012)
2A TEN

\ 2A TEN Dengan mengubah resolusi menjadi 10 maka pada saat digunakan fungsi
analogWrite() akan terdapat nilai mulai dari 0 – 4095 pada DAC.
3. MKR Family
- Terdapat 4 pin dengan 8 bit PWM pada kondisi standardnya. Resolusi ini dapat
diubah menjadi 12 bit.
- Terdapat 1 pin DAC (Digital to Analog Converter).
Dengan mengubah resolusi menjadi 12 maka pada saat digunakan fungsi
analogWrite() akan terdapat nilai mulai dari 0 – 4095 pada PWM. Pengaturan 10
bit pada DAC akan mengakibatkan DAC memiliki range 0 – 1023.

Advanced I/O
❖ noTone()
Untuk menghentikan fungsi tone (). Fungsi ini tidak akan membawa efek apapun
apabila tidak ada tone yang dibangkitkan sebelumnya.

❖ pulseIn()
Untuk membaca pulsa HIGH atau LOW pada pin. Contoh untuk nilai HIGH akan
menunggu pulsa dari LOW ke HIGH, start timing dan menunggu untuk kembali ke
LOW untuk stop timing. Nilai yang diperoleh di sini adalah lebar pulsa dalam
microsecond atau nilai nol apabila tidak diperoleh pulsa hingga time out. Fungsi ini
akan menampilkan error untuk pulsa yang lebih lebar. Hanya akan bekerja dalam nilai
10uS hingga 3 menit.

❖ pulseInLong()
Merupakan fungsi alternatif dari pulseIn() yang lebih baik untuk menghandle pulsa
yang lebih panjang dan skenario yang terpengaruh oleh interupsi.
Contoh untuk nilai HIGH akan menunggu pulsa dari LOW ke HIGH, start timing dan
menunggu untuk kembali ke LOW untuk stop timing. Nilai yang diperoleh di sini
adalah lebar pulsa dalam microsecond atau nilai nol apabila tidak diperoleh pulsa
hingga time out. Fungsi ini akan menampilkan error untuk pulsa yang lebih lebar.
Hanya akan bekerja dalam nilai 10uS hingga 3 menit.

❖ shiftIn()
Bergeser dalam satu byte data satu per satu. Mulai dari bit yang paling signifikan (yaitu
paling kiri) atau paling sedikit (paling kanan). Untuk setiap bit, pin jam ditarik tinggi,
bit berikutnya dibaca dari baris data, dan kemudian pin jam diambil rendah. Jika
berinteraksi dengan perangkat yang clocknya naik, maka harus dipastikan bahwa pin
jam rendah sebelum panggilan pertama shiftIn(), misalnya dengan panggilan ke
digitalWrite(clockPin, LOW).

❖ shiftOut()
Mengalihkan satu byte data satu per satu. Mulai dari bit yang paling signifikan (yaitu
paling kiri) atau paling sedikit (paling kanan). Setiap bit pada gilirannya dituliskan ke
pin data, setelah itu pin jam berdenyut (diambil tinggi, lalu rendah) untuk menunjukkan
bahwa bit tersedia.
Farissa Rahmasari (201711012)
2A TEN

\ 2A TEN
Apabila berinteraksi dengan perangkat yang clocknya naik, maka harus dipastikan
bahwa pin jam rendah sebelum panggilan shiftOut(), misalnya dengan panggilan ke
digitalWrite(clockPin, LOW).

❖ tone()
Berfungsi untuk membangkitkan gelombang kotak dengan frekuensi tertentu (duty
cycle 50%) di pin Arduino Board. Durasi untuk gelombang kotak ini juga dapat
ditentukan atau juga dibuat kontinyu sampai adanya fungsi noTone(). Pin ini dapat
dihubungkan ke buzzer atau speaker untuk menghasilkan suara dengan frekuensi
tersebut.
Hanya ada satu signal tone yang dapat dibangkitkan dalam satu waktu. Apabila ada
fungsi tone() lagi di pin yang berbeda, maka fungsi itu akan diabaikan, namun apabila
ada fungsi tone() lagi di pin yang sama, maka fungsi ini akan mengupdate frekuensi
yang dibangkitkan pada pin tersebut.

Penggunaan fungsi tone() akan mempengaruhi PWM output pada pin 3 dan 11. Dan tone yang dihasilkan tidak
dapat dibawah 31 Hz.

Time
❖ delay()
Delay ini digunakan untuk waktu tunda sebelum mengeksekusi kode progam yang
selanjutnya atau kode progam yang dibawahnya. Satuan yang digunakan adalah
milisekon, jadi untuk menunda 1 detik maka di setting delay(1000) karena 1 detik =
1000 mili. Cara kerja fungsi Delay () cukup sederhana. Fungsi ini menerima argumen
bilangan bulat (bilangan). Bilangan ini merepresentasikan waktu (diukur dalam
milidetik). Program harus menunggu sampai pindah ke baris kode berikutnya ketika
bertemu fungsi ini. Namun, masalahnya adalah, fungsi delay() bukanlah cara yang baik
untuk membuat program menunggu, karena dikenal sebagai fungsi "blocking".
Farissa Rahmasari (201711012)
2A TEN

\ 2A❖ delayMicroseconds()
TEN
Fungsi delayMicroseconds() adalah menerima argumen integer tunggal (bilangan).
Bilangan ini menunjukkan waktu dan diukur dalam mikrodetik. Ada seribu mikrodetik
dalam milidetik, dan sejuta mikrodetik dalam satu detik. Saat ini, nilai terbesar yang
dapat menghasilkan penundaan akurat adalah 16383. Ini mungkin berubah dalam rilis
Arduino masa depan. Untuk penundaan lebih lama dari beberapa ribu mikrodetik, maka
harus menggunakan fungsi delay() sebagai gantinya.

❖ micros()
Fungsi micros() menghasilkan jumlah mikrodetik dari waktu papan Arduino mulai
menjalankan program saat ini. Jumlah ini kembali ke nol setelah sekitar 70 menit. Pada
papan Arduino 16 MHz (misalnya Duemilanove dan Nano), fungsi ini memiliki
resolusi empat mikrodetik (misalnya nilai yang dikembalikan selalu kelipatan empat).
Pada Arduino 8 MHz (misalnya LilyPad), fungsi ini memiliki resolusi delapan
mikrodetik.

❖ millis()
Fungsi ini digunakan untuk menghasilkan jumlah milidetik yang berlalu sejak Arduino
mulai menjalankan program saat ini. Jumlah ini akan melimpah (kembali ke nol),
setelah sekitar 50 hari. Millis Arduino adalah suatu fungsi pada sintak Arduino yang
berguna untuk menjalankan waktu internal setiap milli seconds pada Arduino secara
independent. Ketika millis di baca maka millis akan terus menghitung waktu walau pun
Arduino nya sedang menjalankan program yang lain. Karena fungsi ini, Millis juga
dapat digunakan sebagai multi tasking nya Arduino.

Math
❖ abs()
Merupakan salah satu fungsi dari perpustakaan math di Arduino IDE.
Fungsi abs() berfungsi untuk memperoleh nilai absolut/riil dari sebuah angka.

❖ constrain()
Sebuah fungsi yang berfungsi untuk memberikan batasan (batas atas dan batas bawah)
dari sebuah nilai. Sehingga jika kita menggunakan fungsi constrain() pada sebuah
variabel misalnya, nilai dari variabel tersebut akan selalu berada di dalam range yang
telah kita tentukan. Contoh penggunaan fungsi constrain() misalnya untuk
membatasi pembacaan nilai sensor ultrasonik, membatasi sudut servo pada robot dan
lainnya.

❖ map()
Merupakan fungsi pada Arduino yang berfungsi untuk memetakan ulang suatu nilai
(angka) dari rentang satu ke dalam rentang lainnya. Artinya, nilai fromLow akan
dipetakan ke toLow, nilai fromHigh ke toHigh, nilai di antara ke nilai di antaranya, dan
lain-lain.
Farissa Rahmasari (201711012)
2A TEN

\ 2A❖ max()
TEN
Merupakan sebuah fungsi pada Arduino yang berfungsi untuk membandingkan dan
memilih angka terbesar di antara dua angka. Fungsi max() adalah lawan dari pada
fungsi min(). Fungsi max() akan selalu mengembalikan angka terbesar di antara dua
angka.

❖ min()
Merupakan salah satu fungsi pada Arduino yang berfungsi untuk membandingkan dua
buah nilai dan memberikan keluaran nilai terkecil di antara keduanya.
Fungsi min() adalah lawan dari fungsi max().

❖ pow()
Merupakan sebuah fungsi yang berada pada perpustakaan math.h yang berfungsi untuk
memangkatkan suatu bilangan di Arduino. Salah satu kegunaan fungsi ini adalah untuk
membentuk sebuah kurva eksponensial.

❖ sq()
Merupakan fungsi pada Arduino yang berfungsi untuk menguadratkan bilangan.
Contohnya jika ingin menguadratkan angka 3 maka kode programnya adalah sq(3).

❖ sqrt()
Merupakan fungsi pada Arduino yang berfungsi untuk mencari akar kuadrat dari suatu
bilangan. Contoh penggunaannya adalah ketika kita ingin mencari √36, kita tinggal
mengetikkan kode program sqrt(36), maka akan keluar hasil angka 6. Karena 62 adalah
36. Jika fungsi sqrt() untuk mencari akar kuadrat maka fungsi sq() berfungsi untuk
menguadratkan suatu bilangan.

Trygonometry
❖ cos()
Menghitung kosinus sudut (dalam radian). Hasilnya akan antara -1 dan 1.
❖ sin()
Menghitung sinus sudut (dalam radian). Hasilnya akan antara -1 dan 1.
❖ tan()
Menghitung garis singgung sudut (dalam radian). Hasilnya adalah antara infinity
negatif dan infinity.

Characters
❖ isAlpha()
Merupakan fungsi yang akan melakukan analisis apabila karakter adalah berupa
alphabetic. Fungsi Isalpha() akan mengembalikan nilai selain nol bila ch merupakan
huruf alphabetic. Apabila tidak, maka nol akan dikembalikan. Simbol yang
menunjukkan huruf alphabet dapat beraneka ragam dari satu bahasa ke bahasa
lainnya.Untuk bahasa Inggris, symbol ini merupakan huruf besar dan huruf kecil dari
A sampai Z. Fungsi-fungsi yang berhubungan dengan Isalpha adalah isalnum(),
iscntrl(), isdidgit(), isgraph(), isprint(), ispunct, dan issapce().
Farissa Rahmasari (201711012)
2A TEN

\ 2A❖ isAlphaNumeric()
TEN
Merupakan fungsi untuk memeriksa apakah karakter yang diproses adalah huruf atau
nomor. Nilai yang dikembalikan pada fungsi ini adalah true untuk huruf atau nomor
dan false untuk yang bukan huruf.

❖ isAscii()
Fungsi isAscii() berfungsi mengembalikan nilai berupa string dari perwakilan
objek yang dicetak. Apabila nilainya merupakan karakter non-ASCII maka nilai
tersebut akan dikembalikan dalam bentuk karakter escape seperti \x, \u, dan \U.

❖ isControl()
Analisis apakah char adalah karakter kontrol. Mengembalikan nilai true jika thisChar
adalah karakter kontrol.

❖ isDigit()
Analisis apakah char adalah angka (itu angka). Mengembalikan nilai true jika thisChar
adalah angka.

❖ isGraph()
Menganalisis jika char dapat dicetak dengan beberapa konten (ruang dapat dicetak
tetapi tidak memiliki konten). Mengembalikan nilai true jikaChar ini dapat dicetak.

❖ isHexadecimalDigit()
Analisis jika char adalah digit heksadesimal (AF, 0-9). Mengembalikan nilai true jika
thisChar berisi digit heksadesimal.

❖ isLowerCase()
Analisis apakah char adalah huruf kecil (yaitu huruf dalam huruf kecil).
Mengembalikan nilai true jika thisChar berisi huruf dalam huruf kecil.

❖ isPrintable()
Menganalisis apakah char dapat dicetak (itu adalah karakter apa pun yang
menghasilkan output, bahkan ruang kosong). Mengembalikan nilai true jikaChar ini
dapat dicetak.

❖ isPunct()
Analisis apakah char adalah tanda baca (itu adalah koma, titik koma, tanda seru, dan
sebagainya). Mengembalikan nilai true jika thisChar adalah tanda baca.

❖ isSpace()
Analisis apakah char adalah karakter white-space. Mengembalikan nilai true jika
argumennya adalah spasi, form feed ( '\f'), newline ( '\n'), carriage return ( '\r'), tab
horizontal ( '\t'), atau tab vertikal ( '\v').
Farissa Rahmasari (201711012)
2A TEN

\ 2A❖ isUpperCase()
TEN
Analisis apakah char adalah huruf besar (yaitu, huruf dalam huruf besar).
Mengembalikan nilai true jika thisChar adalah huruf besar.

❖ isWhitespace()
Menganalisis apakah char adalah karakter ruang. Mengembalikan nilai true jika
argumennya adalah spasi atau tab horizontal ( '\t').

Random Numbers
❖ random()
Fungsi acak menghasilkan angka pseudo-acak.

❖ randomSeed()
randomSeed() menginisialisasi pseudo-random number generator. Urutan ini,
meskipun sangat panjang, dan acak, selalu sama. Jika urutan urutan nilai yang
dihasilkan random() berbeda, pada eksekusi sketsa berikutnya, gunakan randomSeed ()
untuk menginisialisasi generator angka acak dengan input yang cukup acak, seperti
analogRead() pada pin yang tidak terhubung. Sebaliknya, kadang-kadang berguna
untuk menggunakan urutan pseudo-acak yang berulang secara tepat. Ini dapat
dilakukan dengan menelepon randomSeed() dengan nomor tetap, sebelum memulai
urutan acak.

Bits and Bytes


❖ bit()
Berfungsi untuk menghitung nilai bit yang ditentukan (bit 0 adalah 1, bit 1 adalah 2, bit
2 adalah 4, dan lain-lain)
❖ bitClear()
Berfungsi menghapus (menulis 0 hingga) sedikit variabel numerik.
❖ bitRead()
Berfungsi membaca sedikit angka.
❖ bitSet()
Berfungsi untuk menetapkan (menulis 1 hingga) sedikit variabel numerik.
❖ bitWrite()
Berfungsi untuk menulis sedikit variabel numerik.
❖ highByte()
Berfungsi untuk mengekstrak byte kata tingkat tinggi (paling kiri) (atau byte terendah
kedua dari tipe data yang lebih besar).
❖ lowByte()
Ekstrak byte urutan rendah (paling kanan) dari suatu variabel (misalnya kata).

External Interrupts
❖ attachInterrupt()
Parameter pertama attachInterrupt() adalah angka interupsi. Biasanya Anda harus
menggunakan digitalPinToInterrupt(pin) untuk menerjemahkan pin digital aktual ke
Farissa Rahmasari (201711012)
2A TEN

nomor interupsi tertentu. Misalnya, jika Anda terhubung ke pin 3, gunakan


\ 2A TEN
digitalPinToInterrupt(3) sebagai parameter pertama attachInterrupt().

Interupsi berguna untuk membuat sesuatu terjadi secara otomatis dalam program
mikrokontroler dan dapat membantu memecahkan masalah waktu. Tugas yang baik
untuk menggunakan interupsi mungkin termasuk membaca encoder putar, atau
memonitor input pengguna.

❖ detachInterrupt()
Berfungsi untuk mematikan interupsi yang diberikan.

Interrupts
❖ interrupts()
Berfungsi untuk mengaktifkan kembali interupsi (setelah dinonaktifkan oleh
nointerupsi (). Interupsi memungkinkan tugas-tugas penting tertentu terjadi di latar
belakang dan diaktifkan secara default. Beberapa fungsi tidak akan berfungsi saat
interupsi dinonaktifkan, dan komunikasi yang masuk mungkin diabaikan. Interupsi
dapat sedikit mengganggu waktu kode, dan dapat dinonaktifkan untuk bagian kode
yang sangat penting.

❖ noInterrupts()
Berfungsi untuk menonaktifkan interupsi (dapat diaktifkan kembali
dengan interrupts()). Interupsi memungkinkan tugas-tugas penting tertentu terjadi di
latar belakang dan diaktifkan secara default. Beberapa fungsi tidak akan berfungsi saat
interupsi dinonaktifkan, dan komunikasi yang masuk mungkin diabaikan. Namun,
interupsi dapat sedikit mengganggu waktu kode, dan dapat dinonaktifkan untuk bagian
kode yang sangat penting.
Farissa Rahmasari (201711012)
2A TEN

\Communication
2A TEN

❖ Serial
Digunakan untuk komunikasi antara papan Arduino dan komputer atau perangkat lain.
Semua papan Arduino memiliki setidaknya satu port serial (juga dikenal sebagai UART
atau USART).
❖ Stream
Stream merupakan kelas dasar untuk stream berbasis karakter dan biner. Stream
mendefinisikan fungsi membaca di Arduino. Saat menggunakan fungsionalitas inti apa
pun yang menggunakan metode read() atau yang serupa, Anda dapat dengan aman
menganggapnya memanggil pada kelas Stream. Untuk fungsi seperti print(), Stream
mewarisi dari kelas Print.

USB
❖ Keyboard
Fungsi keyboard memungkinkan papan berbasis mikro 32u4 atau SAMD untuk
mengirim penekanan tombol ke komputer yang terpasang melalui port USB asli mikro
mereka.
❖ Mouse
Fungsi mouse memungkinkan papan berbasis mikro 32u4 atau SAMD untuk
mengontrol pergerakan kursor pada komputer yang terhubung melalui port USB asli
mikro mereka. Saat memperbarui posisi kursor, selalu relatif terhadap lokasi kursor
sebelumnya.

DAFTAR PUSTAKA
1. https://www.teachmesoft.com/2020/01/fungsi.html (Diakses pada Minggu, 14,
November 2021 pukul 18.00 WIB)
2. https://www.webagus.id/2019/07/fungsi-untuk-memanipulasi-waktu-dalam.html
(Diakses pada Minggu, 14 November 2021 pukul 18.00 WIB)
3. https://www.tutorialspoint.com/arduino/arduino_advanced_io_function.htm (Diakes
pada Minggu, 14 November 2021 pukul 18.00 WIB)
4. https://www.arduino.cc/reference/en/ (Diakses pada Minggu,14 November pukul 18.00
WIB)
5. https://indobot.co.id/blog/tutorial-function-digital-i-o-analog-i-o-dan-time-pada-
arduino/ (Diakses pada Senin, 15 November 2021 pukul 18.40 WIB)

Anda mungkin juga menyukai