Rencana Belajar
Kita akan belajar bertahap:
✅ Mengenal Arduino dan Wokwi.
LED berkedip (Blink).
Tombol (Push Button).
Sensor HC-SR04.
LCD I2C.
Buzzer.
Servo.
Membuat proyek lengkap.
Mendesain PCB di Fritzing.
Jangan terburu-buru. Yang penting paham.
Sensor HC-SR04 memiliki 4 pin:
Pin Fungsi
VCC Daya 5V
GND Ground
TRIG Mengirim gelombang ultrasonik
ECHO Menerima pantulan gelombang
Arduino
│
├── TRIG ─────► Sensor mengirim suara
│
│ ▓▓▓▓▓▓▓▓▓►
│ Tembok
│ ◄▓▓▓▓▓▓▓▓▓
│
└── ECHO ◄──── Sensor memberi tahu berapa lama pantulannya , Arduino tidak langsung mengetahui jarak. Arduino hanya mengetahui lama waktu pantulan. Dari waktu tersebut, program menghitung jaraknya.
Pelajaran 4 - Memahami pulseIn()
Perhatikan baris berikut:
duration = pulseIn(echoPin, HIGH);
Ini adalah salah satu fungsi yang paling penting saat menggunakan HC-SR04.
Artinya:
"Arduino menghitung berapa lama pin ECHO berada pada kondisi HIGH."
Misalnya hasilnya:
duration = 1500;
Angka 1500 bukan berarti 1500 cm.
Tetapi artinya:
1500 mikrodetik (µs)
Kenapa harus menghitung waktu?
Sensor HC-SR04 bekerja seperti kelelawar.
Bayangkan Anda berdiri di depan tembok.
Anda berteriak:
HALO !!!
Suara pergi menuju tembok.
Lalu memantul kembali.
Kalau pantulannya cepat berarti tembok dekat.
Kalau pantulannya lama berarti tembok jauh.
HC-SR04 melakukan hal yang sama, tetapi menggunakan gelombang ultrasonik.
Arduino │ TRIG │ ▼ HC-SR04 )))))))))))))))) | | Tembok | | <<<<<<<<<<<<<<<<<<<<< ECHO
Mengubah waktu menjadi jarak
Lihat rumus berikut.
distance = duration * 0.0343 / 2;
Jangan takut melihat angka.
Kita pecah.
Kenapa 0.0343?
Kecepatan suara adalah sekitar
343 meter/detik
Kalau diubah menjadi
0.0343 cm/mikrodetik
Maka muncul angka
0.0343
Kenapa dibagi 2?
Karena gelombang suara melakukan perjalanan:
Sensor │ │----------► Tembok ◄----------
Yang dihitung sensor adalah:
Pergi + Pulang
Padahal kita hanya ingin:
Pergi saja
Makanya harus
/2 .Contoh Perhitungan
Misalnya
duration = 1000;Maka 1000 × 0.0343 = 34.334.3 / 2 = 17.15 cmJadi objek berada sekitar 17 cm .
Latiahan soal
Latihan
Sekarang coba ubah kode ini:
Serial.print("Jarak : "); Serial.print(distance); Serial.println(" cm");
menjadi:
===== SENSOR HC-SR04 ===== Jarak = 25.31 cm
Petunjuk:
- Gunakan
Serial.println()untuk membuat baris baru.- Gunakan
Serial.print()untuk mencetak teks dan nilai dalam satu baris.
Coba kerjakan dulu. Setelah itu kirimkan kode yang Anda buat. Kalau ada yang kurang tepat, saya akan bantu perbaiki dan kita lanjut ke materi berikutnya tentang
if, sehingga nanti kita bisa membuat program seperti:
"Jika jarak kurang dari 20 cm, nyalakan LED atau bunyikan buzzer."
Itu adalah dasar dari hampir semua proyek Arduino.
coba ini
const int trigPin = 3;const int echoPin = 2;long duration;float distance;void setup() {Serial.begin(9600);pinMode(trigPin, OUTPUT);pinMode(echoPin, INPUT);}void loop() {digitalWrite(trigPin, LOW);delayMicroseconds(2);digitalWrite(trigPin, HIGH);delayMicroseconds(10);digitalWrite(trigPin, LOW);duration = pulseIn(echoPin, HIGH);distance = duration * 0.0343 / 2;Serial.println("===== SENSOR HC-SR04 =====");Serial.print("Jarak =25 ");Serial.print(distance);Serial.println(" cm");delay(500);}
Serial.print("Arduino");
Serial.println("Halo"); Serial.println("Arifin");
Hasilnya:
Halo Arifin
Karena setiap println() akan pindah ke baris berikutnya
0 Comments:
Posting Komentar
Monggo sarannya