SKL F.3.1
Murid mampu menulis kode program yang lebih kompleks menggunakan bahasa pemrograman C++ untuk mengontrol perangkat keras dengan sensor dan aktuator.
Murid mampu menulis kode program yang lebih kompleks menggunakan bahasa pemrograman C++ untuk mengontrol perangkat keras dengan sensor dan aktuator.
Tujuan Pembelajaran: Murid mampu menulis kode program yang lebih kompleks menggunakan bahasa pemrograman C++ dalam Arduino IDE R3 untuk mengontrol perangkat keras dengan sensor LM35 (suhu), HCSR04 (jarak), DHT11 (suhu & kelembaban), Soil Moisture Sensor Kapasitif, dan aktuator SSR (Solid State Relay).
Materi ini akan fokus pada implementasi praktis pemrograman Arduino C++ untuk mengontrol perangkat keras spesifik yang telah ditentukan. Prasyarat: Pemahaman dasar tentang pemrograman Arduino C++, elektronika dasar, dan koneksi hardware.
Arduino IDE R3: Pastikan Arduino IDE R3 telah terinstal dan dikonfigurasi dengan benar.
Koneksi Hardware: Diagram rangkaian untuk koneksi setiap sensor dan aktuator ke Arduino. Perhatikan pin yang digunakan dan tegangan kerja masing-masing komponen.
Library: Instalasi library yang diperlukan untuk setiap sensor (misalnya, DHT sensor library).
A. LM35 (Sensor Suhu):
Koneksi: Hubungkan Vout LM35 ke pin analog Arduino.
Penggunaan: Gunakan fungsi analogRead() untuk membaca tegangan dari LM35, lalu konversikan ke nilai suhu (°C) menggunakan rumus kalibrasi LM35.
B. HCSR04 (Sensor Jarak Ultrasonik):
Koneksi: Hubungkan Trig dan Echo HCSR04 ke pin digital Arduino.
Penggunaan: Kirim pulsa trigger ke pin Trig, lalu ukur waktu yang dibutuhkan untuk menerima echo di pin Echo. Konversi waktu tersebut ke jarak (cm) menggunakan kecepatan suara.
C. DHT11 (Sensor Suhu dan Kelembaban):
Koneksi: Hubungkan data dan VCC DHT11 ke pin digital Arduino.
Penggunaan: Gunakan library DHT sensor untuk membaca nilai suhu dan kelembaban.
D. Soil Moisture Sensor Kapasitif:
Koneksi: Hubungkan pin sensor ke pin analog Arduino.
Penggunaan: Gunakan fungsi analogRead() untuk membaca nilai kelembaban tanah. Nilai akan bervariasi tergantung jenis sensor, kalibrasi diperlukan untuk mendapatkan nilai yang akurat.
Koneksi: Hubungkan SSR ke pin digital Arduino. Pastikan untuk menghubungkan beban (misalnya, lampu) ke output SSR sesuai dengan spesifikasi SSR.
Penggunaan: Gunakan fungsi digitalWrite() untuk mengontrol status SSR (HIGH untuk ON, LOW untuk OFF). Perhatikan rating arus dan tegangan SSR untuk menghindari kerusakan.
Contoh kode program yang mengintegrasikan beberapa sensor dan aktuator. Kode ini hanya ilustrasi dan mungkin perlu dimodifikasi sesuai dengan kebutuhan dan konfigurasi hardware:
c++
#include <DHT.h> // Pastikan library DHT terinstal
#define DHTPIN 2 // Digital pin untuk DHT11
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
// Pin untuk sensor dan aktuator
const int sensorSuhuPin = A0;
const int sensorJarakTrig = 7;
const int sensorJarakEcho = 8;
const int sensorKelembabanPin = A1;
const int ssrPin = 9;
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(ssrPin, OUTPUT);
}
void loop() {
// Baca data sensor
float suhu = bacaSuhu(sensorSuhuPin);
float jarak = bacaJarak(sensorJarakTrig, sensorJarakEcho);
float kelembaban = bacaKelembabanTanah(sensorKelembabanPin);
float kelembabanUdara = dht.readHumidity();
float suhuUdara = dht.readTemperature();
// Kontrol aktuator berdasarkan data sensor (contoh: nyalakan lampu jika suhu tinggi)
if (suhu > 30) {
digitalWrite(ssrPin, HIGH);
} else {
digitalWrite(ssrPin, LOW);
}
// Tampilkan data sensor ke serial monitor
Serial.print("Suhu: "); Serial.print(suhu); Serial.println(" °C");
Serial.print("Jarak: "); Serial.print(jarak); Serial.println(" cm");
Serial.print("Kelembaban Tanah: "); Serial.print(kelembaban); Serial.println("%");
Serial.print("Kelembaban Udara: "); Serial.print(kelembabanUdara); Serial.println("%");
Serial.print("Suhu Udara: "); Serial.print(suhuUdara); Serial.println(" °C");
delay(2000);
}
// Fungsi untuk membaca data sensor (implementasi detail perlu ditambahkan)
float bacaSuhu(int pin) { /* ... */ }
float bacaJarak(int trigPin, int echoPin) { /* ... */ }
float bacaKelembabanTanah(int pin) { /* ... */ }
Proyek Integrasi: Buat proyek yang mengintegrasikan semua sensor dan aktuator. Contoh: Sistem irigasi otomatis berdasarkan kelembaban tanah.
Pengolahan Data: Implementasikan algoritma pengolahan data untuk mengambil keputusan berdasarkan data sensor.
Troubleshooting: Latihan troubleshooting untuk menyelesaikan masalah pada kode program dan koneksi hardware.
Penilaian akan dilakukan berdasarkan kemampuan murid dalam menulis kode program yang berfungsi dengan benar, terstruktur, dan efisien, serta kemampuan dalam mengintegrasikan berbagai sensor dan aktuator. Aspek yang dinilai:
Fungsionalitas: Program berjalan sesuai dengan yang diharapkan.
Ketepatan Kode: Penulisan kode yang bersih, terstruktur, dan mudah dibaca.
Pengolahan Data: Penggunaan algoritma pengolahan data yang tepat.
Dokumentasi: Dokumentasi kode yang jelas dan lengkap.
Troubleshooting: Kemampuan dalam menyelesaikan masalah pada kode dan hardware.