Materi mapel mikrokonroller ke 4

 

Materi Ajar: Fungsi-fungsi dan Operator pada Pemrograman Arduino Uno

Tujuan Pembelajaran

Setelah mengikuti pembelajaran ini, peserta didik diharapkan mampu:

  1. Menjelaskan konsep fungsi dalam pemrograman Arduino Uno, termasuk fungsi bawaan dan fungsi buatan sendiri.
  2. Mengidentifikasi dan menjelaskan fungsi utama setup() dan loop() beserta perannya dalam program Arduino.
  3. Menjelaskan penggunaan fungsi input/output seperti pinMode(), digitalWrite(), digitalRead(), analogRead(), dan analogWrite().
  4. Menguraikan fungsi waktu (delay(), millis(), micros()) serta perbedaan karakteristiknya.
  5. Menjelaskan fungsi komunikasi serial (Serial.begin(), Serial.print(), Serial.println(), Serial.read()).
  6. Menerapkan fungsi matematika bawaan Arduino seperti min(), max(), abs(), pow(), dan sqrt() dalam program sederhana.
  7. Membuat dan mengimplementasikan fungsi buatan sendiri (user-defined functions) untuk mempermudah penulisan dan pengelolaan program.
  8. Menyusun program Arduino Uno yang memanfaatkan kombinasi beberapa fungsi untuk mengendalikan perangkat elektronik sesuai kebutuhan.

1. Pendahuluan

Arduino Uno adalah papan mikrokontroler berbasis ATmega328P yang menggunakan bahasa pemrograman mirip C/C++. Dalam pemrogramannya, terdapat fungsi yang digunakan untuk menjalankan instruksi tertentu. Fungsi ini bisa dibagi menjadi fungsi bawaan (built-in functions) dan fungsi buatan sendiri (user-defined functions).

Fungsi di Arduino memudahkan penulisan kode agar lebih terstruktur, mudah dibaca, dan bisa digunakan berulang kali.


2. Struktur Dasar Program Arduino

Secara umum, setiap program Arduino memiliki dua fungsi utama:

  1. setup()
    • Dijalankan sekali saat Arduino pertama kali dihidupkan atau di-reset.
    • Digunakan untuk inisialisasi, seperti mengatur mode pin, memulai komunikasi serial, dll.
    • Contoh:

void setup() {

  pinMode(13, OUTPUT); // Mengatur pin 13 sebagai output

}

  1. loop()
    • Dijalankan berulang kali selama Arduino hidup.
    • Digunakan untuk menjalankan logika program utama.
    • Contoh:

void loop() {

  digitalWrite(13, HIGH); // Menyalakan LED

  delay(1000);            // Tunggu 1 detik

  digitalWrite(13, LOW);  // Mematikan LED

  delay(1000);            // Tunggu 1 detik

}


3. Fungsi Bawaan Arduino (Built-in Functions)

A. Fungsi Input/Output

  1. pinMode(pin, mode)
    • Mengatur apakah sebuah pin menjadi INPUT, OUTPUT, atau INPUT_PULLUP.
    • Contoh:

pinMode(2, INPUT);        // Pin 2 sebagai input

pinMode(13, OUTPUT);      // Pin 13 sebagai output

pinMode(7, INPUT_PULLUP); // Pin 7 input dengan resistor pull-up

  1. digitalWrite(pin, value)
    • Memberikan logika HIGH (5V) atau LOW (0V) pada pin output digital.
    • Contoh:

digitalWrite(13, HIGH); // LED nyala

digitalWrite(13, LOW);  // LED mati

  1. digitalRead(pin)
    • Membaca logika digital (HIGH/LOW) dari pin input.
    • Contoh:

int tombol = digitalRead(2);

  1. analogRead(pin)
    • Membaca nilai analog (0–1023) dari pin analog (A0–A5).
    • Contoh:

int sensor = analogRead(A0);

  1. analogWrite(pin, value)
    • Mengeluarkan sinyal PWM (0–255) pada pin tertentu.
    • Contoh:

analogWrite(9, 128); // PWM 50%


B. Fungsi Waktu

  1. delay(ms)
    • Menunda eksekusi program dalam milidetik.
    • Contoh:

delay(1000); // Tunggu 1 detik

  1. millis()
    • Mengembalikan jumlah milidetik sejak Arduino mulai berjalan.
    • Contoh:

unsigned long waktu = millis();

  1. micros()
    • Mengembalikan jumlah mikrodetik sejak Arduino berjalan.

C. Fungsi Serial Communication

  1. Serial.begin(baudrate)
    • Memulai komunikasi serial dengan kecepatan tertentu.
    • Contoh:

Serial.begin(9600);

  1. Serial.print(data) / Serial.println(data)
    • Mengirim data ke monitor serial.
    • Contoh:

Serial.println("Hello Arduino");

  1. Serial.read()
    • Membaca data dari komunikasi serial.

D. Fungsi Matematika

  • min(x, y), max(x, y), abs(x), pow(base, exponent), sqrt(x).
  • Contoh:

int nilai = max(10, 20); // Hasil: 20


4. Fungsi Buatan Sendiri (User-Defined Functions)

Kita dapat membuat fungsi sendiri agar kode lebih rapi.

Contoh:

void nyalakanLED(int pin) {

  digitalWrite(pin, HIGH);

}

 

void matikanLED(int pin) {

  digitalWrite(pin, LOW);

}

 

void setup() {

  pinMode(13, OUTPUT);

}

 

void loop() {

  nyalakanLED(13);

  delay(1000);

  matikanLED(13);

  delay(1000);

}


Dalam pemrograman Arduino (yang berbasis bahasa C/C++), operator adalah simbol khusus yang digunakan untuk melakukan operasi tertentu pada satu atau lebih operand (nilai atau variabel).
Operator membantu kita melakukan perhitungan, perbandingan, logika, manipulasi data, dan lain-lain.

Berikut penjelasan lengkapnya:


1. Operator Aritmatika

Digunakan untuk operasi matematika dasar.

OperatorFungsiContoh (kode)
+Penjumlahanz = x + y;
-Penguranganz = x - y;
*Perkalianz = x * y;
/Pembagianz = x / y;
%Modulus (sisa pembagian)z = x % y;

2. Operator Penugasan

Digunakan untuk memberikan nilai ke variabel.

OperatorFungsiContohSama dengan
=Penugasan langsungx = 5;
+=Tambah lalu simpanx += 3;x = x + 3;
-=Kurangi lalu simpanx -= 2;x = x - 2;
*=Kali lalu simpanx *= 4;x = x * 4;
/=Bagi lalu simpanx /= 5;x = x / 5;
%=Modulus lalu simpanx %= 3;x = x % 3;

3. Operator Perbandingan

Digunakan untuk membandingkan dua nilai. Hasilnya adalah true (benar) atau false (salah).

OperatorFungsiContohHasil
==Sama denganx == ytrue/false
!=Tidak sama denganx != ytrue/false
>Lebih besarx > ytrue/false
<Lebih kecilx < ytrue/false
>=Lebih besar atau samax >= ytrue/false
<=Lebih kecil atau samax <= ytrue/false

4. Operator Logika

Biasa digunakan dalam pengkondisian (if, while, dll.).

OperatorFungsiContohKeterangan
&&AND (logika DAN)(x > 0 && y < 10)Benar jika keduanya benar
||OR (logika ATAU)`(x > 0
!NOT (logika TIDAK)!(x > 0)Membalikkan nilai logika

5. Operator Increment & Decrement

Untuk menambah atau mengurangi nilai variabel sebanyak 1.

OperatorFungsiContohHasil
++Tambah 1x++;x = x + 1
--Kurang 1x--;x = x - 1

Prefix vs Postfix

  • ++x → tambah dulu, baru dipakai

  • x++ → pakai dulu, baru ditambah


6. Operator Bitwise

Memanipulasi data dalam bentuk biner (bit-level).

OperatorFungsiContoh
&AND bitwisea & b
|OR bitwisea | b
^XOR bitwisea ^ b
~NOT bitwise~a
<<Shift kiria << 2
>>Shift kanana >> 2

7. Operator Khusus di Arduino/C++

  • sizeof → Menghasilkan ukuran (dalam byte) dari variabel/tipe data.
    Contoh: sizeof(int)

  • ?: → Operator ternary (if singkat).
    Contoh: hasil = (x > y) ? x : y; → jika x > y benar, hasil x, jika salah, hasil y.

Jenis Komentar di Arduino

1. Komentar Satu Baris

Menggunakan // di awal baris.
Semua teks setelah // di baris tersebut akan diabaikan.

// Ini adalah komentar satu baris int x = 10; // komentar setelah perintah

2. Komentar Multi-baris

Menggunakan /* ... */.
Semua teks di dalamnya akan diabaikan, meskipun terdiri dari banyak baris.

/* Ini komentar lebih dari satu baris dan tidak akan dibaca oleh Arduino */ int y = 20;

3. Menonaktifkan Kode Sementara

Bisa menggunakan komentar untuk “mematikan” kode yang tidak ingin dijalankan.

// digitalWrite(LED_BUILTIN, HIGH); // kode ini tidak akan dijalankan


Kesimpulan

  • Fungsi adalah blok kode yang digunakan untuk menjalankan tugas tertentu.
  • Arduino memiliki fungsi utama (setup() dan loop()) dan fungsi bawaan untuk I/O, waktu, komunikasi serial, serta matematika.
  • Penggunaan fungsi buatan sendiri membuat program lebih modular dan mudah dibaca.
  • Operator adalah simbol khusus yang digunakan untuk melakukan operasi pada data atau variabel, baik itu perhitungan matematika, logika, perbandingan, manipulasi bit, maupun penugasan nilai.

  • Jenis operator pada Arduino (C/C++) meliputi:

    • Aritmatika → untuk perhitungan (+, -, *, /, %).

    • Penugasan → untuk memberi atau mengubah nilai (=, +=, -=, dll.).

    • Perbandingan → membandingkan nilai dan menghasilkan true atau false (==, !=, >, <, >=, <=).

    • Logika → menggabungkan atau membalik kondisi logis (&&, ||, !).

    • Increment/Decrement → menambah atau mengurangi nilai 1 (++ dan --).

    • Bitwise → memanipulasi data pada level bit (&, |, ^, ~, <<, >>).

    • Lainnya → seperti sizeof dan operator ternary ?

 

Komentar

Postingan populer dari blog ini

Materi Mapel IPAS ke-2

Materi IPAS ke-1