Jobsheet Praktek Sensor Dan Transduser
Jobsheet Praktek Sensor Dan Transduser
Oleh:
Team Teaching
Sebagai penunjang proses belajar mengajar praktek sensor dan transduser, perlu ada
petunjuk yang mendasari terlaksananya proses belajar mengajar tersebut. Oleh
karena itu jobsheet praktek ini dibuat dan menyertai peserta didik dan pengajar
dalam melaksanakan praktikum di laboratorium.
Namun demikian, para pengguna trainer "Sensor dan Transduser" diharapkan telah
mempunyai latar belakang pengetahuan tentang pemrograman Arduino, jenis dan
rinsip kerja Sensor dan Transduser.
Penulis,
Muhammad Akil
Daftar Isi
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja sensor suhu dan kelembaban DHT11/DHT22
2. Membuat program pembacaan sensor suhu dan kelembaban DHT11/DHT22
menggunakan Arduino
3. Melakukan simulasi rangkaian pembacaan sensor suhu dan kelembaban
DHT11/DHT22
II. Pendahuluan
Sensor DHTXX merupakan jenis sensor yang paling umum digunakan oleh penggiat
arduino. Sensor jenis ini murah dan dapat digunakan untuk mengukur suhu dan
kelembaban. Sensor ini mengandung chip yang melakukan konversi analog ke digital
dan mengeluarkan sinyal digital dengan bentuk suhu dan kelembaban. Sinyal-sinyal ini
mudah dibaca dengan mikrokontroller (MCU) jenis apapun.
DHT11
Range: 20-90%
Absolute accuracy: ±5%
Repeatability: ±1%
Long term stability: ±1% per year
Price: $1 to $5
DHT22
Range: 0-100%
Absolute accuracy: ±2%
Repeatability: ±1%
Long term stability: ±0.5% per year
Price: $4 to $10
Berdasarkan spesifikasi yang telah disebutkan, terlihat bahwa sensor DHT22 memiliki
tingkat akurasi yang lebih tinggi dibandingkan dengan sensor DHT11.
V. Gambar Rangkaian
Gambar berikut ini memperlihatkan koneksi kabel antara sensor dengan arduino.
Kode Program
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain
#include "DHT.h"
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
// Reading temperature or humidity takes about 250
milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a
very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
}
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja sensor cahaya LDR dan Photodioda
2. Membuat program pembacaan sensor cahaya LDR dan Photodioda menggunakan
Arduino
3. Melakukan simulasi rangkaian pembacaan sensor cahaya LDR dan Photodioda
II. Pendahuluan
Sensor cahaya merupakan sensor yang dapat membaca kondisi kecerahan sebuah
ruangan. Intensitas cahaya dalam ruangan dapat bersumber dari lampu atau pantulan
cahaya matahari dari luar melalui jendela. Jenis sensor cahaya yang paling banyak
digunakan adalah sensor LDR, Photodioda dan Phototransistor. Meskipun bentuk dari
kedua sensor ini berbeda namun keduaya memiliki fungsi yang sama. Kedua sensor ini
sering digunakan pada robot line follower (robot pengikut garis).
Berdasarkan gambar di atas, dapat kita lihat bahwa sensor akan menerima lebih
banyak cahaya jika bila obstacle mendekati warna putih.
Apabila Garis terang, maka sinyal LED dapat dipantulkan. Bila cahaya LED memantul
pada garis dan diterima oleh basis fototransistor maka phototransistor menjadi
saturasi (on) sehingga tegangan output (Vout) menjadi sama dengan VCE saturasi
atau mendekati 0 Volt. Sebaliknya jika tidak terdapat pantulan maka basis
phototransistor tidak mendapat arus bias sehingga fototransistor menjadi cut-off
(C-E Open). dengan demikian nilai Vout sama dengan VCC (5 Volt).
void baca_sensor()
{
lcd.setCursor (0,0);
lcd.print("Pembacaan Sensor");
sensor[0]=analogRead(A0); sensor[1]=analogRead(A1);
sensor[2]=analogRead(A2);
sensor[3]=analogRead(A3); sensor[4]=analogRead(A4);
sensor[5]=analogRead(A5);
ref[0]=200;ref[1]=200;ref[2]=200;ref[3]=200;ref[4]=200;ref[5]=200;
if (sensor[0]>ref[0]) {Nilai[0]=Low;} if (sensor[0]<ref[0])
{Nilai[0]=High;}
if (sensor[1]>ref[1]) {Nilai[1]=Low;} if (sensor[1]<ref[1])
{Nilai[1]=High;}
if (sensor[2]>ref[2]) {Nilai[2]=Low;} if (sensor[2]<ref[2])
{Nilai[2]=High;}
if (sensor[3]>ref[3]) {Nilai[3]=Low;} if (sensor[3]<ref[3])
{Nilai[3]=High;}
if (sensor[4]>ref[4]) {Nilai[4]=Low;} if (sensor[4]<ref[4])
{Nilai[4]=High;}
if (sensor[5]>ref[5]) {Nilai[5]=Low;} if (sensor[5]<ref[5])
{Nilai[5]=High;}
lcd.setCursor(5,1);
if (Nilai[0]>Mid) {S[0]=1; lcd.print('1');} if (Nilai[0]<Mid) {S[0]=0;
lcd.print('0');}
if (Nilai[1]>Mid) {S[1]=1; lcd.print('1');} if (Nilai[1]<Mid) {S[1]=0;
lcd.print('0');}
if (Nilai[2]>Mid) {S[2]=1; lcd.print('1');} if (Nilai[2]<Mid) {S[2]=0;
lcd.print('0');}
if (Nilai[3]>Mid) {S[3]=1; lcd.print('1');} if (Nilai[3]<Mid) {S[3]=0;
lcd.print('0');}
void loop() {
baca_sensor();
}
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja sensor jarak ultrasonik HC-SR04
2. Membuat program pembacaan sensor jarak ultrasonik HC-SR04 menggunakan
Arduino
3. Melakukan simulasi rangkaian pembacaan sensor jarak ultrasonik HC-SR04
II. Pendahuluan
Sensor ultrasonik HC-SR04 menggunakan sonar untuk menentukan jarak ke objek
seperti yang dilakukan kelelawar. Sensor ini menawarkan proses pendeteksian non-
kontak yang sangat baik dengan akurasi tinggi dan pembacaan yang stabil dalam
bentuk modul yang mudah digunakan. Sensor ini mampu membaca jarak dari 2 cm
sampai 400 cm atau 1” sampai 13 kaki. Modul sensor ini dilengkapi dengan modul
pemancar dan penerima ultrasonik.
Bekerja dengan berbagai model sensor ultrasonik: SR04, SRF05, SRF06, DYP-
ME007 & Parallax PING))) ™.
Opsi untuk berinteraksi dengan semua sensor kecuali sensor SRF06 hanya
menggunakan satu pin Arduino.
Tidak ketinggalan selama satu detik penuh jika tidak ada ping gema diterima
seperti semua library ultrasonik lainnya.
Kompatibel dengan seluruh line-up Arduino (dan klon), keluarga Teensy (termasuk
$ 19,80 96Mhz 32 bit Teensy 3.2) dan mikrokontroler non-AVR.
Sensor Ping konsisten dan andal hingga 30 kali per detik.
Metode timer interupt.
Built-in digital filter method ping_median() untuk koreksi kesalahan yang mudah.
Menggunakan register port ketika mengakses pin untuk eksekusi yang lebih cepat
dan ukuran kode yang lebih kecil.
Mengizinkan pengaturan jarak maksimum ketika pembacaan ping di luar jarak.
Kemudahan menggunakan beberapa sensor (misalnya rangkaian dengan 15
sensor).
Penghitungan jarak yang lebih akurat (cm, inci).
Tidak menggunakan pulsaIn yang lambat dan memberikan hasil yang salah dengan
beberapa model sensor ultrasonik.
Dikembangkan secara aktif dengan fitur yang ditambahkan dan bug / masalah
ditangani.
6. Arduino IDE
V. Gambar Rangkaian
Gambar berikut ini memperlihatkan koneksi kabel antara sensor dengan arduino.
Gambar 3. Rangkaian Sensor Ultrasonik HC-SR04 dengan Arduino serial dan LCD
int TrigPin = 9;
int EchoPin = 12:
long duration, cm, inches;
void setup() {
//Serial Port begin
Serial.Begin (9600);
//Define inputs and outputs
pinMode(Trigpin, OUTPUT);
pinMode(Echopin, INPUT);
}
void loop()
{
// The sensor is triggered by a HIGH pulse of 10 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(100);
digitalWrite(trigPin, LOW);
// Read the signal from the sensor: a HIGH pulse whose
// duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
// convert the time into a distance
Cm = (duration/2) / 29.1;
inches = (duration/2) / 74;
Serial.print(inches);
Serial.print(‘in, ‘);
Serial.print(Cm);
Serial.print(cm’);
Serial.print();
delay(250);
}
Kode Program menggunakan library NewPing:
#include <NewPing.h>
#define TRIGGER_PIN 9
#define ECHO_PIN 12
#define MAX_DISTANCE 200
// NewPing setup of pins and maximum distance.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(5400);
}
void loop() {
delay(50);
unsigned int Sensor = sonar.ping_cm();
Serial.Print(Sensor);
Serial.Println(‘‘cm’’ );
}
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja sensor Hujan FC-37 atau YL-83
2. Membuat program pembacaan sensor Hujan FC-37 atau YL-83 menggunakan
Arduino
3. Melakukan simulasi rangkaian pembacaan sensor Hujan FC-37 atau YL-83
II. Pendahuluan
Sensor hujan digunakan untuk mendeteksi air bahkan sensor ini dapat mendeteksi air
melebihi kemampuan sensor kelembaban. Sensor hujan FC-37 (atau versi lain seperti
YL-83) diatur oleh dua potongan: papan elektronik (di sebelah kiri) dan papan kolektor
(di sebelah kanan) yang mengumpulkan tetesan air, seperti yang Anda lihat pada
gambar berikut:
18 | Sensor Hujan
Praktik Sensor Sensor Hujan
& Transduser PST 004
FC-37 atau YL-83
Sensor Hujan| 19
Praktik Sensor Sensor Hujan
& Transduser PST 004
FC-37 atau YL-83
V. Gambar Rangkaian
Buatlah gambar rangkaian berikut ini menggunakan software simulasi rangkaian
elektronika:
20 | Sensor Hujan
Praktik Sensor Sensor Hujan
& Transduser PST 004
FC-37 atau YL-83
void setup(){
pinMode(rainPin, INPUT);
pinMode(greenLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
digitalWrite(greenLED, LOW);
digitalWrite(yellowLED, LOW);
Serial.begin(9600);
}
void loop() {
// read the input on analog pin 0:
int sensorValue = digitalRead(rainPin);
if(sensorValue == LOW){
Serial.println(" Permukaan Basah --- Hujan ");
digitalWrite(greenLED, LOW);
digitalWrite(yellowLED, HIGH);
}
else {
Serial.println(" Permukaan Kering --- Cuaca Cerah");
digitalWrite(greenLED, HIGH);
digitalWrite(yellowLED, LOW);
}
delay(50);
}
Sensor Hujan| 21
Praktik Sensor Sensor Kelembaban Tanah
& Transduser PST 005
YL-69 or HL-69
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja sensor kelembaban tanah
2. Membuat program pembacaan sensor kelembaban tanah menggunakan Arduino
3. Melakukan simulasi rangkaian pembacaan sensor kelembaban tanah
II. Pendahuluan
Sensor kelembaban tanah atau hygrometer biasanya digunakan untuk mendeteksi
kelembaban tanah. Jadi, sangat cocok untuk membangun sistem penyiraman otomatis
atau untuk memantau kelembaban tanah tanaman Anda. Sensor diatur oleh dua
bagian: papan elektronik (di kanan), dan probe dengan dua bantalan, yang mendeteksi
kadar air (di sebelah kiri).
V. Gambar Rangkaian
Untuk melengkapi rangkaian, ikuti gambar rangkaian berikut ini:
Kode Program
int rainPin = A0;
int greenLED = 6;
int redLED = 7;
// you can adjust the threshold value
int thresholdValue = 800;
void setup(){
pinMode(rainPin, INPUT);
pinMode(greenLED, OUTPUT);
pinMode(redLED, OUTPUT);
digitalWrite(greenLED, LOW);
digitalWrite(redLED, LOW);
Serial.begin(9600);
}
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(rainPin);
Serial.print(sensorValue);
if(sensorValue < thresholdValue){
Serial.println(" - Doesn't need watering");
digitalWrite(redLED, LOW);
digitalWrite(greenLED, HIGH);
}
else {
Serial.println(" - Time to water your plant");
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, LOW);
}
delay(500);
}
Buka serial monitor Arduino IDE untuk melihat nilainya. Kemudian, coba sensor Anda
di tanah yang basah dan kering dan lihat apa yang terjadi. Ketika nilai analog
melampaui batas tertentu, LED merah akan menyala (menunjukkan bahwa tanaman
perlu disiram), dan ketika nilainya berada di bawah ambang batas tertentu, LED hijau
akan menyala (menunjukkan bahwa tanaman tersebut ok).
Sensor kelembaban memungkinkan untuk memantau kadar air di tanah. Ini berguna
jika Anda ingin membangun sistem penyiraman otomatis. Anda juga dapat
menggunakannya untuk memantau kelembaban tanah tanaman Anda.
VII. Pertanyaan Praktikum
1. Modifikasi program pembacaan sensor kelembaban agar dapat ditampilkan hasil
pembacaannya pada LCD 16x2!
2. Buatlah program untuk dapat membaca 5 buah sensor kelembaban!
3. Lakukan analisis terhadap program di atas!
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja Real Time Clock (RTC)
2. Membuat program pembacaan Real Time Clock (RTC) menggunakan Arduino
3. Melakukan simulasi rangkaian Real Time Clock (RTC)
II. Pendahuluan
Modul Real Time Clock (RTC) seperti yang ditunjukkan pada gambar di bawah ini
(tampilan depan dan belakang).
Jika Anda menggunakan papan Arduino selain Arduino Uno, perhatikan posisi PIN SDA
dan SCL dari Arduino tersebut:
Nano: SDA (A4); SCL (A5)
MEGA: SDA (20); SCL (21)
Leonardo: SDA (20); SCL (21)
3. Lakukan pengaturan Parameter dalam fungsi yang berada dalam tanda warna
merah: detik, menit, jam, hari minggu, tanggal, bulan dan tahun (secara
berurutan). Minggu adalah hari ke-1 dalam seminggu dan Sabtu adalah hari ke-7.
4. Jika Anda tidak ingin mengatur ulang waktu setiap kali RTC dimatikan, Anda harus
melakukan hal-hal berikut ini: Anda harus mengomentari fungsi yang ditetapkan
waktu dan unggah kode lagi ke dalam Arduino. Ini adalah langkah yang sangat
penting untuk mengatur waktu di RTC Anda.
Jika Anda tidak melakukan ini, setiap waktu RTC Anda akan diatur ulang, maka
waktu yang telah kita atur sebelumnya akan tampil sebagai waktu sekarang.
5. Upload program ke dalam Arduino IDE
6. Buatlah rangkaian simulasi seperti pada gambar 2.
7. Laukan simulasi dan lakukan analisis berdasarkan program yang anda buat beserta
hasilnya.
Kode Program
// Written by John Boxall from http://tronixstuff.com
#include "Wire.h"
#define DS3231_I2C_ADDRESS 0x68
// Convert normal decimal numbers to binary coded decimal
byte decToBcd(byte val){
return( (val/10*16) + (val%10) );
}
// Convert binary coded decimal to normal decimal numbers
byte bcdToDec(byte val){
return( (val/16*10) + (val%16) );
}
void setup(){
Wire.begin();
Serial.begin(9600);
// set the initial time here:
// DS3231 seconds, minutes, hours, day, date, month, year
setDS3231time(30,42,16,5,13,10,16);
}
void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte
dayOfMonth, byte month, byte year){
// sets time and date data to DS3231
Wire.beginTransmission(DS3231_I2C_ADDRESS);
Wire.write(0); // set next input to start at the seconds register
Wire.write(decToBcd(second)); // set seconds
Wire.write(decToBcd(minute)); // set minutes
Wire.write(decToBcd(hour)); // set hours
Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday)
Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31)
Wire.write(decToBcd(month)); // set month
Serial.print(dayOfMonth, DEC);
Serial.print("/");
Serial.print(month, DEC);
Serial.print("/");
Serial.print(year, DEC);
Serial.print(" Day of week: ");
switch(dayOfWeek){
case 1:
Serial.println("Sunday");
break;
case 2:
Serial.println("Monday");
break;
case 3:
Serial.println("Tuesday");
break;
case 4:
Serial.println("Wednesday");
break;
case 5:
Serial.println("Thursday");
break;
case 6:
Serial.println("Friday");
break;
case 7:
Serial.println("Saturday");
break;
}
}
void loop(){
displayTime(); // display the real-time clock data on the Serial Monitor,
delay(1000); // every second
}
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja sensor Gas / Asap MQ-2
2. Membuat program pembacaan sensor Gas / Asap MQ-2 menggunakan Arduino
3. Melakukan simulasi rangkaian pembacaan sensor Gas / Asap MQ-2
II. Pendahuluan
Panduan ini menunjukkan cara membuat detektor asap yang berbunyi bip saat
terdeteksi gas atau asap yang mudah terbakar. Sensor asap MQ-2 ditunjukkan pada
gambar berikut:
Dengan kata lain, hubungan antara tegangan dan konsentrasi gas yaitu:
Semakin besar konsentrasi gas, semakin besar tegangan output
Semakin rendah konsentrasi gas, semakin rendah tegangan output
Output dapat berupa sinyal analog (A0) yang dapat dibaca dengan input analog dari
Arduino atau output digital (D0) yang dapat dibaca dengan input digital dari Arduino.
V. Gambar Rangkaian
void loop() {
int analogSensor = analogRead(smokeA0);
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja sensor gerak PIR
2. Membuat program pembacaan sensor gerak PIR menggunakan Arduino
3. Melakukan simulasi rangkaian pembacaan sensor gerak PIR
II. Pendahuluan
Sensor gerak PIR sangat ideal untuk mendeteksi gerakan. PIR adalah singkatan dari "
Pasif Infrared". Pada dasarnya, sensor gerak PIR mengukur cahaya inframerah dari
objek dalam range cakupan sensor tersebut. Jadi, sensor ini dapat mendeteksi
gerakan berdasarkan perubahan cahaya inframerah di lingkungan. Sensor ini sangat
ideal untuk mendeteksi apakah manusia telah bergerak masuk atau keluar dari
rentang sensor.
Sensor pada gambar di atas memiliki dua potensiometer bawaan untuk menyesuaikan
waktu tunda (potensiometer di sebelah kiri) dan sensitivitas (potensiometer di
sebelah kanan).
V. Gambar Rangkaian
void setup() {
pinMode(led, OUTPUT); // initalize LED as an output
pinMode(sensor, INPUT); // initialize sensor as an input
Serial.begin(9600); // initialize serial
}
void loop(){
val = digitalRead(sensor); // read sensor value
if (val == HIGH) { // check if the sensor is HIGH
digitalWrite(led, HIGH); // turn LED ON
delay(100); // delay 100 milliseconds
if (state == LOW) {
Serial.println("Motion detected!");
state = HIGH; // update variable state to HIGH
}
}
else {
digitalWrite(led, LOW); // turn LED OFF
delay(200); // delay 200 milliseconds
if (state == HIGH){
Serial.println("Motion stopped!");
state = LOW; // update variable state to LOW
}
}
}
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja sensor suara microphone
2. Membuat program pembacaan sensor suara microphone menggunakan Arduino
3. Melakukan simulasi rangkaian pembacaan sensor suara microphone
II. Pendahuluan
Panduan ini menunjukkan cara menggunakan sensor suara mikrofon dengan Arduino.
Sensor suara mikrofon, dapat mendeteksi suara dengan ukuran seberapa keras suatu
suara.
Ada berbagai macam sensor suara. Gambar di bawah ini memperlihatkan jenis sensor
suara yang paling umum digunakan dengan Arduino.
Apabila anda menggunakan modul LM393 maka anda harus menghubungkan pin OUT
ke pin digital Arduino.
Contoh: Led indikator sensitivitas Suara
Dalam contoh ini, sensor mikrofon akan mendeteksi intensitas suara di sekitar Anda
dan akan menyalakan LED jika intensitas suara di atas ambang tertentu.
Anda dapat memodifikasi proyek ini dengan menambahkan lebih banyak LED. Anda
juga dapat menyesuaikan sensitivitas sensor Anda sehingga LED yang dinyalakan atau
dimatikan sesuai dengan irama musik.
V. Gambar Rangkaian
Buatlah gambar rangkaian seperti pada gambar berikut:
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(sensorPin, INPUT);
Serial.begin (9600);
}
I. Pertanyaan Praktikum
1. Modifikasi Program sebelumnya agar dapat menampilkan data pembacaan pada
LCD 16x2!
2. Lakukan analisis terhadap program dan hasil yang anda peroleh!
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja sensor reed switch
2. Membuat program pembacaan sensor reed switch menggunakan Arduino
3. Melakukan simulasi rangkaian pembacaan sensor reed switch
II. Pendahuluan
Saklar kontak magnetik pada dasarnya adalah sakelar buluh yang terbungkus dalam
selubung plastik sehingga Anda dapat dengan mudah mengaplikasikannya di pintu,
jendela, atau laci untuk mendeteksi apakah pintu terbuka atau tertutup.
Saklar yang akan kita gunakan memiliki dua bagian: sakelar itu sendiri, yang biasanya
terbuka dan magnet. Saat Anda membeli sakelar ini, ia juga dilengkapi dengan 4
sekrup, sehingga Anda dapat memasangnya di pintu Anda.
Prinsip Kerja
Prinsip kerja reed switch sangat sederhana. Rangkaian listrik terhubung ketika magnet
berada di dekat sakelar (berjarak kurang dari 13 mm (0,5 ')). Ketika magnet jauh dari
sakelar, sirkuit rangkaian listrik akan terbuka. Lihat gambar di bawah ini.
V. Gambar Rangkaian
Ikutilah gambar rangkaian berikut ini untuk melengkapi project yang kita buat.
void setup(){
pinMode(ledOpen, OUTPUT);
pinMode(ledClose, OUTPUT);
pinMode(switchReed, INPUT);
Serial.begin(9600);
}
void loop(){
if (digitalRead(switchReed)==HIGH){
digitalWrite(ledOpen, LOW);
digitalWrite(ledClose, HIGH);
Serial.println("Your Door is Closed");
}
else {
digitalWrite(ledOpen, HIGH);
digitalWrite(ledClose, LOW);
Serial.println("Your Door is Open");
}
delay(1);
}
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja Modul Relay
2. Membuat program pengendalian Modul Relay menggunakan Arduino
1. Melakukan simulasi rangkaian pengendalian Modul Relay
II. Pendahuluan
Relay adalah saklar tegangan listrik yang dioperasikan secara listrik. Relay bisa
dinyalakan atau dimatikan, dengan membiarkan arus mengalir atau tidak. Modul relay
ditunjukkan pada gambar di bawah ini. Relay ini memiliki dua channel berdasarkan
jumlh relay yang digunakannya.
Modul Relay | 45
Praktik Sensor
Modul Relay PST 011
& Transduser
Koneksi Pin
Koneksi in antara arduino dengan modul relay sangat sederhana:
46 | Modul Relay
Praktik Sensor
Modul Relay PST 011
& Transduser
3. https: //Arduino.cc
V. Gambar Rangkaian
Pasang semua bagian dengan mengikuti diagram skematik di bawah ini. Berhati-
hatilah dengan koneksi voltase listrik. Pastikan Anda memiliki relai yang dicabut dari
tegangan listrik saat memasang sirkuit.
Modul Relay | 47
Praktik Sensor
Modul Relay PST 011
& Transduser
// Timer Variables
long lastDebounceTime = 0;
long debounceDelay = 10000;
void setup() {
// Pin for relay module set as output
pinMode(relay, OUTPUT);
digitalWrite(relay, HIGH);
// PIR motion sensor set as an input
pinMode(PIRInterrupt, INPUT);
// Triggers detectMotion function on rising mode to turn the relay on,
if thecondition is met
attachInterrupt(digitalPinToInterrupt(PIRInterrupt),detectMotion,
RISING);
// Serial communication for debugging purposes
Serial.begin(9600);
}
void loop() {
// If 10 seconds have passed, the relay is turned off
if((millis() - lastDebounceTime) > debounceDelay && relayState ==
HIGH){
digitalWrite(relay, HIGH);
relayState = LOW;
Serial.println("OFF");
}
delay(50);
}
void detectMotion() {
Serial.println("Motion");
if(relayState == LOW){
digitalWrite(relay, LOW);
}
relayState = HIGH;
Serial.println("ON");
lastDebounceTime = millis();
}
VII. Pertanyaan Praktikum
1. Modifikasi Program sebelumnya agar dapat menampilkan data pembacaan pada
LCD 16x2!
2. Lakukan analisis terhadap program yang anda buat!
48 | Modul Relay
Praktik Sensor
Modul NRF24L01 PST 012
& Transduser
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja Modul NRF24L01
2. Membuat program pembacaan Modul NRF24L01 menggunakan Arduino
1. Melakukan simulasi rangkaian pembacaan Modul NRF24L01
II. Pendahuluan
Modul RF ini sangat populer di kalangan penggiat Arduino. NRF24L01 digunakan pada
berbagai aplikasi yang membutuhkan kontrol nirkabel. Aplikasi tersebut berupa
transceiver yang berarti bahwa setiap modul dapat mengirim dan menerima data.
Modul NRF24L01 | 49
Praktik Sensor
Modul NRF24L01 PST 012
& Transduser
PinOut
Berikut ini adalah gambar tampak atas dari NRF24L01
50 | Modul NRF24L01
Praktik Sensor
Modul NRF24L01 PST 012
& Transduser
V. Gambar Rangkaian
Gambar rangakian Klien
Rangkaian Server
Modul NRF24L01 | 51
Praktik Sensor
Modul NRF24L01 PST 012
& Transduser
Library RadioHead sangat bagus dan berfungsi dengan hampir semua modul RF di
pasaran.
Ikuti gambar rangkaian 3 untuk arduino client. Kemudian upload program di bawah ini
ke dalam Arduino anda (pastikan bahwa anda telah menginstall library RadioHead).
Masuk ke menu File > Examples > RadioHead > nrf24 > nrf24_client.
// nrf24_client
#include <SPI.h>
#include <RH_NRF24.h>
void setup()
{
Serial.begin(9600);
while (!Serial)
; // wait for serial port to connect. Needed for Leonardo only
if (!nrf24.init())
Serial.println("init failed");
// Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm
if (!nrf24.setChannel(1))
Serial.println("setChannel failed");
if (!nrf24.setRF(RH_NRF24::DataRate2Mbps,
RH_NRF24::TransmitPower0dBm))
Serial.println("setRF failed");
}
void loop()
{
Serial.println("Sending to nrf24_server");
// Send a message to nrf24_server
uint8_t data[] = "Hello World!";
nrf24.send(data, sizeof(data));
nrf24.waitPacketSent();
// Now wait for a reply
uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
if (nrf24.waitAvailableTimeout(500))
{
// Should be a reply message for us now
if (nrf24.recv(buf, &len))
{
Serial.print("got reply: ");
Serial.println((char*)buf);
}
Else
{
52 | Modul NRF24L01
Praktik Sensor
Modul NRF24L01 PST 012
& Transduser
Serial.println("recv failed");
}
}
else
{
Serial.println("No reply, is nrf24_server running?");
}
delay(400);
}
Ikuti gambar rangkaian 4 di atas untuk arduino server. Kemudian upload program di
bawah ini ke dalam Arduino anda (pastikan bahwa anda telah menginstall library
RadioHead).
Masuk ke menu File > Examples > RadioHead > nrf24 > nrf24_server.
// nrf24_server
#include <SPI.h>
#include <RH_NRF24.h>
void setup()
{
Serial.begin(9600);
while (!Serial)
; // wait for serial port to connect. Needed for Leonardo only
if (!nrf24.init())
Serial.println("init failed");
// Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm
if (!nrf24.setChannel(1))
Serial.println("setChannel failed");
if (!nrf24.setRF(RH_NRF24::DataRate2Mbps,
RH_NRF24::TransmitPower0dBm))
Serial.println("setRF failed");
}
void loop()
{
if (nrf24.available())
{
// Should be a message for us now
uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
if (nrf24.recv(buf, &len))
{
// NRF24::printBuffer("request: ", buf, len);
Serial.print("got request: ");
Serial.println((char*)buf);
Modul NRF24L01 | 53
Praktik Sensor
Modul NRF24L01 PST 012
& Transduser
// Send a reply
uint8_t data[] = "And hello back to you";
nrf24.send(data, sizeof(data));
nrf24.waitPacketSent();
Serial.println("Sent a reply");
}
else
{
Serial.println("recv failed");
}
}
}
54 | Modul NRF24L01
Praktik Sensor
433 MHz Transmitter/Receiver PST 013
& Transduser
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja Modul RF 433 MHz Transmitter/Receiver
2. Membuat program pembacaan Modul RF 433 MHz Transmitter/Receiver
menggunakan Arduino
1. Melakukan simulasi rangkaian pembacaan Modul RF 433 MHz Transmitter/Receiver
II. Pendahuluan
Modul RF ini sangat populer di kalangan penggiat Arduino. Modul 433MHz digunakan
pada berbagai aplikasi yang membutuhkan kontrol nirkabel.
RH_ASK driver;
void setup()
{
Serial.begin(9600); // Debugging only
if (!driver.init())
Serial.println("init failed");
}
void loop()
{
uint8_t buf[12];
uint8_t buflen = sizeof(buf);
if (driver.recv(buf, &buflen)) // Non-blocking
{
int i;
// Message with a good checksum received, dump it.
Serial.print("Message: ");
Serial.println((char*)buf);
}
}
RH_ASK driver;
void setup()
{
Serial.begin(9600); // Debugging only
if (!driver.init())
Serial.println("init failed");
}
void loop()
{
const char *msg = "Hello World!";
driver.send((uint8_t *)msg, strlen(msg));
driver.waitPacketSent();
delay(1000);
}
Simulasi
Dalam proyek ini pemancar mengirim pesan "Hello World!" ke penerima melalui RF.
Pesan-pesan itu ditampilkan di serail monitor dari receiver. Inilah yang harus Anda
lihat di monitor serial Arduino IDE Anda.
Anda perlu memiliki harapan yang realistis saat menggunakan modul ini. Modul RF
ini bekerja dengan sangat baik ketika penerima dan pemancar saling berdekatan. Jika
Anda memisahkannya terlalu jauh, Anda akan kehilangan komunikasi.
Rentang komunikasi akan bervariasi. Tergantung pada seberapa banyak tegangan
yang Anda berikan ke modul pemancar Anda, kebisingan RF di lingkungan Anda dan
jika Anda menggunakan antena eksternal.
VII. Pertanyaan Praktikum
1. Modifikasi Program sebelumnya agar dapat menampilkan data pembacaan pada
LCD 16x2!
2. Buatlah program pembacaan agar dapat mengirim dan menerima data dari
sensor!
3. Lakukan analisis terhadap program dan hasil yang anda peroleh!
I. Tujuan
Setelah melaksanakan percobaan ini mahasiswa diharapkan dapat:
1. Memahami prinsip kerja Sensor warna TCS3200
2. Membuat program pembacaan Sensor warna TCS3200 menggunakan Arduino
3. Melakukan simulasi rangkaian pembacaan Sensor warna TCS3200
II. Pendahuluan
Sensor warna TCS3200 dapat mendeteksi berbagai macam warna berdasarkan panjang
gelombangnya. Sensor ini sangat berguna untuk proyek pengenalan warna seperti
pencocokan warna, penyortiran warna, pembacaan strip tes dan banyak lagi.
Sensor warna TCS3200 - ditunjukkan pada gambar di bawah ini - menggunakan chip
sensor TAOS TCS3200 RGB untuk mendeteksi warna. Sensor ini juga berisi empat LED
putih yang menerangi objek di depannya.
Spesifikasi
Jika Anda melihat lebih dekat pada chip TCS3200 Anda dapat melihat berbagai filter.
Pilihan Filter
Untuk memilih warna yang dibaca oleh fotodioda, Anda menggunakan pin kontrol S2
dan S3. Karena fotodioda terhubung secara paralel, pengaturan S2 dan S3 RENDAH
dan TINGGI dalam kombinasi yang berbeda memungkinkan Anda untuk memilih
fotodioda yang berbeda. Lihat tabel di bawah ini:
Penskalaan Frekuensi
Pin S0 dan S1 digunakan untuk menentukan skala frekuensi output. Frekuensi output
dapat diskalakan ke nilai preset berikut: 100%, 20% atau 2%. Penskalaan frekuensi
keluaran berguna untuk mengoptimalkan pembacaan sensor untuk berbagai
penghitung frekuensi atau mikrokontroler. Gunakan tabel di bawah ini:
Umum bagi Arduino untuk menggunakan penskalaan frekuensi 20%. Jadi, Anda
mengatur pin S0 ke TINGGI dan pin S1 ke RENDAH.
V. Gambar Rangkaian
Pemasangan kabel sensor TCSP3200 ke Arduino sangatlah mudah. Cukup ikuti
diagram skematik berikut ini.
void setup() {
// Setting the outputs
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
Buka serial monitor dengan kecepatan baud 9600. Tempatkan benda biru di
depan sensor pada jarak yang berbeda. Anda harus menyimpan dua pengukuran:
ketika objek ditempatkan jauh dari sensor dan ketika objek dekat dengan sensor.
Periksa nilai yang ditampilkan pada serial monitor. Frekuensi biru (B) harus
menjadi yang terendah dibandingkan dengan pembacaan frekuensi merah (R) dan
hijau (G) - lihat gambar di bawah ini.
Ketika kita menempatkan objek biru di depan sensor, nilai frekuensi biru (B)
berosilasi antara 59 dan 223 (lihat nilai yang disorot).
Catatan: Anda tidak dapat menggunakan nilai frekuensi ini (59 dan 223) dalam
kode Anda, Anda harus mengukur warna untuk objek spesifik dengan sensor
warna Anda sendiri. Lalu, simpan batas frekuensi atas dan bawah untuk warna
biru, karena Anda akan membutuhkannya nanti. Ulangi proses ini dengan benda
hijau dan merah dan tulis batas frekuensi atas dan bawah untuk setiap warna.
dalam frekuensi ke 0 (dalam RGB). Kami akan melakukan ini dengan fungsi
Arduino map(). Dalam fungsi map() Anda perlu mengganti parameter XX dengan
nilai Anda sendiri.
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8
// Stores frequency read by the photodiodes
int redFrequency = 0;
int greenFrequency = 0;
int blueFrequency = 0;
// Stores the red. green and blue colors
int redColor = 0;
int greenColor = 0;
int blueColor = 0;
void setup() {
// Setting the outputs
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
void loop() {
// Setting RED (R) filtered photodiodes to be read
digitalWrite(S2,LOW);
digitalWrite(S3,LOW);
Untuk membedakan antara warna yang berbeda, kami memiliki tiga kondisi:
Ketika R adalah nilai maksimum (dalam parameter RGB) kita tahu bahwa kita
memiliki benda merah
Ketika G adalah nilai maksimum, kita tahu bahwa kita memiliki objek hijau
Ketika B adalah nilai maksimum, kita tahu bahwa kita memiliki objek biru
Sekarang, tempatkan sesuatu di depan sensor. Seharusnya tampil pada serial
monitor Anda warna yang terdeteksi: merah, hijau atau biru. Sensor Anda juga
dapat mendeteksi warna lain dengan pernyataan if lebih banyak.
VII. Pertanyaan Praktikum
1. Modifikasi Program sebelumnya agar dapat menampilkan data pembacaan pada
LCD 16x2!
2. Lakukan analisis terhadap program dan hasil yang anda peroleh!