Tugas — Arduino Uno simulation

KKAR

An interactive Arduino Uno circuit simulation you can run free in your browser on Velxio, by zahracallista2510.

Components

Sketch code

#include <Wire.h> // Menyertakan pustaka untuk komunikasi I2C
#include <LiquidCrystal_I2C.h>  // Menyertakan pustaka untuk mengontrol layar LCD I2C

const int trigPin = 9;// Menentukan pin Trig sensor ultrasonik di pin 9
const int echoPin = 10; // Menentukan pin Echo sensor ultrasonik di pin 10

const int ledBiru = 7;  // Menentukan pin LED Biru di pin 7
const int ledMerah = 8;  // Menentukan pin LED Putih di pin 8
const int buzzerPin = 4; // Menentukan pin Buzzer di pin 4

long duration;// Variabel untuk menyimpan durasi waktu pantulan gelombang
float distance;//Variabel untuk menyimpan hasil perhitungan jarak dalam cm

LiquidCrystal_I2C lcd(0x27, 16, 2);// Mengatur alamat I2C LCD (0x27) dengan ukuran 16x2

void setup() { // Fungsi yang dijalankan sekali saat awal program aktif
  Serial.begin(115200);// Mengaktifkan komunikasi Serial dengan kecepatan 115200

  pinMode(trigPin, OUTPUT);// Mengatur pin Trig sebagai output (pengirim sinyal)
  pinMode(echoPin, INPUT); // Mengatur pin Echo sebagai input (penerima sinyal)

  pinMode(ledBiru, OUTPUT);// Mengatur pin LED Biru sebagai output
  pinMode(ledMerah, OUTPUT); // Mengatur pin LED Putih sebagai output
  pinMode(buzzerPin, OUTPUT); // Mengatur pin Buzzer sebagai output

  lcd.init();// Menginisialisasi layar LCD
  lcd.backlight();  // Menyalakan lampu latar LCD

  lcd.setCursor(0, 0);  // Mengatur posisi kursor LCD ke kolom 0, baris 0
  lcd.print("Nungguin Yaaaaa");// Menampilkan teks sapaan di layar LCD
  delay(1000); // Memberikan jeda waktu 1 detik
  lcd.clear();  // Menghapus tampilan teks pada layar LCD
} // Penutup fungsi setup

void loop() {  // Fungsi utama yang berjalan berulang-ulang secara terus-menerus
  // Mengirim pulsa ultrasonik
  digitalWrite(trigPin, LOW); // Memastikan pin Trig dalam kondisi LOW
  delayMicroseconds(2); // Menunggu selama 2 mikrodetik
  
  digitalWrite(trigPin, HIGH);// Mengirim gelombang dengan membuat pin Trig menjadi HIGH
  delayMicroseconds(10);// Menjaga pin Trig tetap HIGH selama 10 mikrodetik
  digitalWrite(trigPin, LOW); // Mematikan kembali pin Trig menjadi LOW

  // Membaca pantulan
  duration = pulseInLong(echoPin, HIGH,30000);// Menghitung waktu lamanya gelombang pantul kembali ke pin Echo

  // Menghitung jarak dalam cm
  distance = duration * 0.0343 / 2.0;// Mengubah waktu (durasi) menjadi satuan jarak sentimeter (cm)

  // Serial Monitor
  Serial.print("Jarak: ");// Mencetak teks "Jarak: " ke Serial Monitor komputer
  Serial.print(distance, 2);// Mencetak angka jarak dengan 2 desimal di belakang koma
  Serial.println(" cm");// Mencetak satuan " cm" dan membuat baris baru

  // LCD
  lcd.setCursor(0, 0);// Mengatur kursor LCD ke baris pertama
  lcd.print("Jarak:          "); // Menampilkan label "Jarak: " serta spasi pembersih

  lcd.setCursor(0, 1);
  lcd.print(distance, 2);
  lcd.print(" cm        ");

  // Jika jarak kurang dari 80 cm
  if (distance < 80.00) {
    digitalWrite(ledBiru, HIGH);
    digitalWrite(ledMerah, LOW);

    tone(buzzerPin,