Pernah bertanya kenapa ada kata void?
void setup() { } void loop() { }
Apa itu fungsi?
Bayangkan Anda bekerja di restoran.
Ada koki.
Ada kasir.
Ada pelayan.
Setiap orang mempunyai tugas.
Begitu juga program.
Daripada semua kode ditulis di loop(), kita bisa membuat tugas masing-masing.
Misalnya:
void nyalakanLampu() { }
atau
void bunyikanAlarm() { }
atau
void bacaSensor() { }
Nama fungsi bebas, asalkan mengikuti aturan penamaan.
Contoh
void salam() { Serial.println("Selamat Pagi"); }
Artinya:
Saya membuat fungsi bernama
salam()
Isi fungsi:
Serial.println("Selamat Pagi");
Lalu dipanggil di loop().
void loop() { salam(); }
Hasilnya:
Selamat Pagi Selamat Pagi Selamat Pagi Selamat Pagi
Kenapa menggunakan fungsi?
Bayangkan Anda punya kode seperti ini:
Serial.println("Selamat Datang"); Serial.println("Selamat Datang"); Serial.println("Selamat Datang"); Serial.println("Selamat Datang");
Daripada menulis berulang-ulang, lebih rapi jika:
void salam() { Serial.println("Selamat Datang"); }
Lalu cukup:
salam();
misal contoh buat seperti ini
void salam() { Serial.println("Halo Arifin"); } void setup() { Serial.begin(9600); } void loop() { salam(); delay(1000); }
contoh keren pemanas#include <OneWire.h>#include <DallasTemperature.h>#define ONE_WIRE_BUS 2#define LED_MERAH 13OneWire oneWire(ONE_WIRE_BUS);DallasTemperature sensors(&oneWire);void setup() {Serial.begin(9600);pinMode(LED_MERAH, OUTPUT);sensors.begin();Serial.println("=== Monitoring Suhu ===");}void loop() {bacaSuhu();delay(2000);}//==================================// Fungsi membaca suhu//==================================void bacaSuhu() {sensors.requestTemperatures();float suhu = sensors.getTempCByIndex(0);if (suhu == DEVICE_DISCONNECTED_C) {Serial.println("Sensor tidak terhubung!");return;}Serial.print("Suhu : ");Serial.print(suhu);Serial.println(" C");kontrolLED(suhu);}//==================================// Fungsi kontrol LED//==================================void kontrolLED(float suhu) {if (suhu >= 30) {digitalWrite(LED_MERAH, HIGH);Serial.println("Status : PANAS");} else {digitalWrite(LED_MERAH, LOW);Serial.println("Status : NORMAL");}Serial.println("----------------------");}
0 Comments:
Posting Komentar
Monggo sarannya