Penggunaan Pemrograman Arduino Struktur kontrol seperti Jika, untuk, while, dan beralih kasing untuk mengendalikan pengambilan keputusan dan loop dalam sketsa. Struktur ini memungkinkan Arduino Untuk merespons kondisi, ulangi tugas, dan jalankan blok kode yang berbeda berdasarkan input.
1. Jika pernyataan (eksekusi bersyarat)
Itu Jika pernyataan digunakan untuk menjalankan blok kode Hanya jika kondisi tertentu terpenuhi.
Sintaksis
if (condition) {
// Code to execute if condition is true
}
Contoh: Menghidupkan LED berdasarkan tombol tekan
const int buttonPin = 2; // Button connected to pin 2
const int ledPin = 13; // LED connected to pin 13
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int buttonState = digitalRead(buttonPin); // Read button state
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH); // Turn LED on if button is pressed
} else {
digitalWrite(ledPin, LOW); // Turn LED off otherwise
}
}
Pernyataan If-Else
if (temperature > 30) {
Serial.println("It's too hot!");
} else {
Serial.println("Temperature is normal.");
}
If-else if pernyataan
if (temperature > 30) {
Serial.println("It's too hot!");
} else if (temperature < 10) {
Serial.println("It's too cold!");
} else {
Serial.println("Temperature is comfortable.");
}
2. Untuk loop (tugas yang diulangi beberapa kali)
A untuk loop menjalankan blok kode beberapa kali tetap. Itu biasanya digunakan untuk iterasi lebih dari array atau mengendalikan tugas yang berulang.
Sintaksis
for (initialization; condition; increment) {
// Code to execute in each iteration
}
Contoh: Mengedipkan LED 5 kali
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
for (int i = 0; i < 5; i++) { // Loop runs 5 times
digitalWrite(ledPin, HIGH); // Turn LED on
delay(500); // Wait 500 ms
digitalWrite(ledPin, LOW); // Turn LED off
delay(500);
}
delay(2000); // Pause before repeating
}
Contoh: Menjalankan melalui array
int numbers[] = {1, 2, 3, 4, 5};
void setup() {
Serial.begin(9600);
}
void loop() {
for (int i = 0; i < 5; i++) {
Serial.println(numbers[i]); // Print each number in the array
}
delay(2000);
}
3. Saat loop (mengulangi sampai suatu kondisi terpenuhi)
A Saat loop menjalankan blok kode Selama kondisi yang ditentukan tetap benar.
Sintaksis
while (condition) {
// Code to execute while the condition is true
}
Contoh: Menunggu tombol tekan
const int buttonPin = 2;
void setup() {
pinMode(buttonPin, INPUT);
Serial.begin(9600);
}
void loop() {
Serial.println("Waiting for button press...");
while (digitalRead(buttonPin) == LOW) {
// Stay in loop until button is pressed
}
Serial.println("Button pressed!");
}
Contoh: Penghitung waktu mundur
int count = 10;
void setup() {
Serial.begin(9600);
}
void loop() {
while (count > 0) {
Serial.print("Countdown: ");
Serial.println(count);
count--;
delay(1000);
}
Serial.println("Liftoff!");
delay(5000); // Restart countdown after delay
count = 10; // Reset count
}
4. Sakelar Kasing (menangani beberapa kondisi secara efisien)
A Beralih Pernyataan Kasus digunakan saat Beberapa kondisi perlu diperiksa, menjadikannya alternatif if-else if-else rantai.
Sintaksis
switch (variable) {
case value1:
// Code to execute if variable == value1
break;
case value2:
// Code to execute if variable == value2
break;
default:
// Code to execute if none of the cases match
}
Contoh: Mengontrol LED dengan sakelar putar
const int ledPin = 13;
int mode = 1; // Example mode variable
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
switch (mode) {
case 1:
Serial.println("Mode 1: LED ON");
digitalWrite(ledPin, HIGH);
break;
case 2:
Serial.println("Mode 2: LED BLINKING");
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
break;
case 3:
Serial.println("Mode 3: LED OFF");
digitalWrite(ledPin, LOW);
break;
default:
Serial.println("Invalid Mode");
break;
}
}
Contoh: Menggunakan tombol untuk memulihkan mode
const int buttonPin = 2;
int mode = 1;
void setup() {
pinMode(buttonPin, INPUT);
Serial.begin(9600);
}
void loop() {
if (digitalRead(buttonPin) == HIGH) {
mode++;
if (mode > 3) mode = 1; // Reset mode to 1 if it exceeds 3
delay(500); // Debounce delay
}
switch (mode) {
case 1:
Serial.println("Mode 1: Low Power Mode");
break;
case 2:
Serial.println("Mode 2: Normal Mode");
break;
case 3:
Serial.println("Mode 3: High Performance Mode");
break;
default:
Serial.println("Invalid Mode");
break;
}
}
Kesimpulan
- Jika pernyataan Izinkan eksekusi bersyarat berdasarkan pembacaan sensor atau tekan tombol.
- untuk loop berguna untuk tugas berulang dengan jumlah yang diketahui, seperti berkedip LED.
- saat loop Jalankan kode terus menerus sampai kondisi tertentu dipenuhi.
- Pernyataan Kasus Beralih Sederhanakan pengambilan keputusan saat menangani beberapa kondisi secara efisien.
Struktur ini Tingkatkan pemrograman Arduino Dengan membuatnya lebih mudah untuk mengelola loop, kondisi, dan kontrol perangkat. 🚀