Assalamualaikum warahmatullahi wabarakatuh.
Pada pertemuan ini, Anda akan mempelajari cara menggunakan input digital dan sensor dengan Arduino. Fokus praktik mencakup Push Button, DHT22 (suhu dan kelembapan), sensor Ultrasonic, dan PIR (gerak). Simulasi dilakukan melalui Wokwi.
Sensor adalah perangkat yang mendeteksi perubahan fisik (suhu, cahaya, jarak, gerakan) dan mengubahnya menjadi sinyal listrik.
Push Button adalah saklar yang hanya aktif saat ditekan.
Pemasangan push button akan lebih stabil jika menggunakan konfigurasi resistor secara pull up atau pull down tergantung kondisi. Resistor pull up dan pull down adalah resistor yang digunakan untuk memastikan input pada komponen berada pada HIGH atau LOW.
Menjaga pin input tetap HIGH saat tombol tidak ditekan. Penggunaan resistor pull up yaitu resistor dihubungkan dengan tegangan input (5 volt). Sehingga saat kondisi normal (tombol tidak ditekan) tegangan 5 volt akan mengalir ke mikrokontroler. Biasanya mode seperti ini digunakan pada tombol Aktif HIGH.
Menjaga pin input tetap LOW saat tombol tidak ditekan. Resistor pull down yaitu resistor dihubungkan dengan Ground, sehingga saat kondisi normal (tombol tidak ditekan) mikrokontroler akan terhubung dengan ground. Biasanya mode ini digunakan pada tombol Aktif LOW.
Switch berbeda dengan Push Button karena mempertahankan posisi ON atau OFF setelah ditekan.
Aktif HIGH: Input aktif jika logika HIGH (5V).
Aktif LOW: Input aktif jika logika LOW (0V).
Wokwi adalah platform yang dapat digunakan sebagai simulator Electronics Development Board seperti Arduino, ESP32, dan Raspberry Pi Pico.
Wokwi memiliki kelebihan dibandingkan platform simlulasi yang lain yaitu:
1. Gambarlah rangkaian sehingga di layar simulation terlihat seperti berikut ini:
2. Pada diagram.json Edit value r1 menjadi 470
{
"version": 1,
"author": "istiqomah sumadikarta",
"editor": "wokwi",
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
{
"type": "wokwi-led",
"id": "led1",
"top": -128.4,
"left": 109.4,
"attrs": { "color": "red" }
},
{
"type": "wokwi-resistor",
"id": "r1",
"top": -53.65,
"left": 153.6,
"attrs": { "value": "470" }
},
{
"type": "wokwi-pushbutton",
"id": "btn1",
"top": -99.4,
"left": 288,
"attrs": { "color": "green", "xray": "1" }
},
{
"type": "wokwi-resistor",
"id": "r2",
"top": -24,
"left": 345.05,
"rotate": 90,
"attrs": { "value": "1000" }
}
],
"connections": [
[ "uno:GND.1", "led1:C", "black", [ "v0" ] ],
[ "led1:A", "r1:1", "green", [ "v0" ] ],
[ "r1:2", "uno:13", "green", [ "h8.4", "v19.2", "h-95.8" ] ],
[ "btn1:1.l", "uno:7", "green", [ "h-48", "v76.8", "h-51" ] ],
[ "btn1:2.l", "uno:5V", "green", [ "v173", "h-128" ] ],
[ "btn1:1.r", "r2:1", "green", [ "h19.4", "v76.8" ] ],
[ "r2:2", "uno:GND.2", "green", [ "v210", "h-204.9" ] ]
],
"dependencies": {}
}
3. Buat program pada sketch.ino seperti berikut ini:
void setup() {
// put your setup code here, to run once:
pinMode(13, OUTPUT);
pinMode(7, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(7)==HIGH){
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
}
}
4. Jalankan simulasi dan tekan tombol
Buatlah rangkaian Arduino dengan 3 LED dan 1 Push Button. Hanya ada 1 LED yang menyala, jika tombol ditekan pertama kali maka akan menghidupkan LED merah, jika ditekan kembali akan menghidupkan LED biru, jika ditekan kembali akan menghidupkan LED hijau, dst.
DHT22 digunakan untuk membaca suhu dan kelembapan.
1. Buatlah rangkaian seperti yang terlihat pada gambar berikut ini:
2. Buatlah kode program berikut ini:
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
}
3. Import library DHT
4. Jalankan simulator
Buatlah dengan simulator, alat ini dapat mendeteksi kelembapan udara, jika sangat lembap LED hijau hidup, jika sedang LED kuning hidup, jika rendah LED merah hidup
Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu.
1. Buatlah rangkaian simulasi seperti berikut ini:
2. Import HCSR04 ultrasonic sensor di Library Manager
3. Buat kode pemrograman seperti berikut ini:
#define ECHO_PIN 2
#define TRIG_PIN 3
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
float readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void loop() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.println(distance);
delay(100);
}
4. Jalankan simulator, klik sensor untuk mengatur jarak
Buatlah rangkaian simulator Arduino, Sensor Ultrasonic dan 3 LED seperti berikut ini:
Buatlah asumsi untuk jarak jauh, sedang, dekat. sehingga LED menyala merah jika dekat, kuning jika sedang, hijau jika jauh.
Sensor PIR mendeteksi gerakan melalui radiasi inframerah. Jangkauan sensor PIR dengan objek maksimal 12m dengan sudut sebaran 60 derajat.
Cara kerjanya yaitu pyroelectric pada sensor menerima gelombang inframerah dari benda sekitar dan menghasilkan arus listrik. Untuk memastikan yang dibaca adalah benar-benar gerakan, terdapat komparator untuk membandingkan dengan gelombang lain yang diterima. Jika terdapat perbedaan, maka output sensor akan mengeluarkan tegangan listrik.
1. Buatlah rankaian simulasi Arduino dan sensor PIR seperti berikut ini:
2. Import library PIR dari Library Manager
3. Buat kode pemrograman agar ketika PIR mendeteksi gerakan maka lampu LED menyala.
const int pirPin = 7;
const int ledPin = 13;
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int motion = digitalRead(pirPin);
if (motion == HIGH) {
digitalWrite(ledPin, HIGH);
Serial.println("Gerakan terdeteksi!");
} else {
digitalWrite(ledPin, LOW);
Serial.println("Tidak ada gerakan.");
}
delay(200);
}
4. Jalankan Simulator
Buatlah rangkaian simulator Arduino, Sensor PIR, LED, dan Buzzer seperti berikut ini:
Tambahkan kode program agar selain LED menyala rangkaian juga akan mengaktifkan Buzzer
Pada pertemuan ini, Anda telah mempelajari berbagai sensor input digital dan cara mempraktikkannya menggunakan Arduino dengan Wokwi.