PENGHITUNG RAKAAT SHALAT
π₯ VIDEO TUTORIAL LENGKAP
Pengen bikin alat yang bisa bantu ngitung rakaat saat shalat? Simak dulu video ini biar makin paham alurnya sebelum ngetik kodenya:
π WIRING ATAU RANGKAIAN
Gak perlu tebak-tebakan kabel! Skema pemasangan lengkap bisa kamu lihat di halaman berikut ini: π WIRING MAKE KIT ULTRASONIC
π» SOURCE CODE
Yuk kita masuk ke bagian utama: source code! Kode berikut akan membaca jarak dari sensor ultrasonik dan menghitung rakaat berdasarkan jumlah sujud. Cukup praktis untuk digunakan saat latihan atau pembelajaran. π
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define trigPin 9
#define echoPin 10
#define buzzerPin 8
LiquidCrystal_I2C lcd(0x27, 16, 2);
int sujudCount = 0;
int rakaatCount = 0;
bool isSujud = false; // status sebelumnya
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Hitung Rakaat");
delay(1500);
lcd.clear();
}
void loop() {
long duration;
float distance;
// Baca jarak dari sensor ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration * 0.0343) / 2;
// Tampilkan jarak di LCD baris 1
lcd.setCursor(0, 0);
lcd.print("Jarak: ");
lcd.print(distance, 1);
lcd.print(" cm ");
// Deteksi sujud (misalnya kepala <10 cm dari sensor)
if (distance < 10 && !isSujud) {
sujudCount++;
tampilkanSujud(sujudCount);
isSujud = true;
// Cek jika sudah genap 2 sujud => 1 rakaat
if (sujudCount % 2 == 0) {
rakaatCount++;
tampilkanRakaat(rakaatCount);
bunyikanBeep(rakaatCount);
}
}
// Reset status saat tidak sujud (jarak lebih dari threshold)
if (distance > 30) {
isSujud = false;
}
delay(100);
}
void tampilkanRakaat(int rakaat) {
lcd.setCursor(0, 1);
lcd.print("Rakaat: ");
lcd.print(rakaat);
lcd.print(" ");
}
void tampilkanSujud(int sujud) {
lcd.setCursor(13, 1);
lcd.print("S");
lcd.print(sujud);
lcd.print(" ");
}
void bunyikanBeep(int jumlah) {
for (int i = 0; i < jumlah; i++) {
tone(buzzerPin, 1000);
delay(200);
noTone(buzzerPin);
delay(200);
}
}Sudah di-copy? Sekarang tinggal upload ke board Arduino kamu! Untuk panduan lengkap cara upload program, buka: SEMUA TENTANG ARDUINO IDE
π§ PENJELASAN PROGRAM
- Sensor Ultrasonik: Digunakan untuk mendeteksi jarak kepala ke lantai saat sujud.
- Deteksi Sujud: Jika jarak kurang dari 10 cm dan sebelumnya belum sujud β tambah 1 hitungan sujud.
- Hitung Rakaat: Setiap 2 sujud dianggap 1 rakaat. Jumlah rakaat otomatis bertambah.
- LCD 16x2: Menampilkan jarak + status rakaat & sujud secara real-time.
- Buzzer: Memberi bunyi tiap selesai 1 rakaat, jumlah beep sesuai jumlah rakaat.
Alat ini cocok untuk latihan shalat mandiri, pembelajaran anak-anak, atau bahan eksperimen AIoT berbasis gesture sederhana. Cukup andal untuk digunakan sebagai pelatihan logika mikrokontroler juga!
Semoga bermanfaat, dan semoga ibadahmu makin khusyuk dan teknologinya makin canggih! ππ€
No Comments