ALAT ANTI LUPA RAKAAT SHOLAT


1. Berikut video tutorialnya: (jangan lupa subcribe ya)


2. Alat dan bahan
  • Arduino Uno, 1 buah
  • Sensor ultrasonik HC-SR04, 1 buah
  • Display dan modul, 1 buah
  • Baterai 9 volt, 1 buah
  • Kabel jumper male-female, 8 buah
  • Box kecil, 1 buah

3. Skematik/wiring sederhana rangkaian:

Catatan penting:

  • Pastikan VCC dan GND dari LCD I2C terhubung ke 5V dan GND Arduino.

    - Pada Arduino Uno:

            SCL = pin A5.

            SDA = pin A4.

    - Sensor ultrasonik:

            TRIG = pin 9.

            ECHO = pin 10.

  •  LCD I2C default alamat 0x27 — jika tidak tampil di LCD, kamu bisa coba 0x3F.
  • Sensor akan mendeteksi jarak ≤ 30 cm untuk menghitung sujud. Setelah dua kali sujud, rakaat akan bertambah.
4. Kode Program

Berikut adalah versi lengkap, rapi, dan siap upload dari kode program Arduino untuk proyek penghitung rakaat sholat dengan sensor ultrasonik dan LCD I2C:
#include <Wire.h> #include <LiquidCrystal_I2C.h>
#define TRIG_PIN 9 #define ECHO_PIN 10 #define MIN_DISTANCE 30 // Jarak minimal untuk mendeteksi sujud LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD (cek bisa 0x3F atau 0x27) int sujud_count = 0; int rakaat = 0; bool sudah_sujud = false; void setup() { pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Jumlah Rakaat:"); } void loop() { long duration; int distance; // Mengirim sinyal trigger digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // Menerima sinyal pantulan duration = pulseIn(ECHO_PIN, HIGH); distance = duration * 0.034 / 2; // Konversi waktu ke cm // Deteksi sujud if (distance <= MIN_DISTANCE && !sudah_sujud) { sujud_count++; sudah_sujud = true; } else if (distance > MIN_DISTANCE) { sudah_sujud = false; } // Setiap 2 kali sujud, tambah rakaat if (sujud_count >= 2) { rakaat++; sujud_count = 0; lcd.setCursor(0, 1); lcd.print(rakaat); lcd.print(" ("); lcd.print(convertNumberToText(rakaat)); lcd.print(") "); // Kosongkan sisanya } delay(500); } // Fungsi konversi angka ke teks String convertNumberToText(int num) { String numbers[] = {"nol", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh"}; return (num <= 10) ? numbers[num] : String(num); }

Tidak ada komentar:

Posting Komentar