MODUL4
PROJECT DEMO
JUDUL
PENGATURAN INTENSITAS CAHAYA RUANGAN MENGGUNAKAN LDR
BERDASARKAN PENGARUH INTENSITAS CAHAYA
DI LUAR RUANGAN SECARA WIRELESS
[KEMBALI KE MENU SEBELUMNYA]
a. praktikan dapat menerapkan sebuah sistem menggunakan mikrokontroller.
b. praktikan dapat mengkombinasikan berbagai macam output, akumulator, display, dan berbagai media output lainnya menjadi sebuah alat.
c. praktikan dapat merancang suatu sistem menjadi sebuah alat.
TUJUAN ALAT:
a. merancang ruangan yang mempertahankan intensitas cahaya didalamnya.
b. merancang ruangan yang dapat mengatur intensitas cahayanya secara otomatis.
c. otomatisasi lampu untuk mempertahankan intensitas cahaya dalam ruangan.
2. DAFTAR KOMPONEN [kembali]
1. LDR (Light Dependent Resistor)
2. arduino:
3. LCD 16 X 2:
4. BUZZER:
5. LED
6. MODUL NRF24L01
7. Trimpot
8.Resistor
9.Jumper
3. DASAR TEORI [kembali]
a. Light Dependent Resistor (LDR)
Light Dependent Resistor atau disingkat dengan LDR adalah jenis Resistor yang nilai hambatan atau nilai resistansinya tergantung pada intensitas cahaya yang diterimanya. Nilai Hambatan LDR akan menurun pada saat cahaya terang dan nilai Hambatannya akan menjadi tinggi jika dalam kondisi gelap. Dengan kata lain, fungsi LDR (Light Dependent Resistor) adalah untuk menghantarkan arus listrik jika menerima sejumlah intensitas cahaya (Kondisi Terang) dan menghambat arus listrik dalam kondisi gelap.
a. Light Dependent Resistor (LDR)
Light Dependent Resistor atau disingkat dengan LDR adalah jenis Resistor yang nilai hambatan atau nilai resistansinya tergantung pada intensitas cahaya yang diterimanya. Nilai Hambatan LDR akan menurun pada saat cahaya terang dan nilai Hambatannya akan menjadi tinggi jika dalam kondisi gelap. Dengan kata lain, fungsi LDR (Light Dependent Resistor) adalah untuk menghantarkan arus listrik jika menerima sejumlah intensitas cahaya (Kondisi Terang) dan menghambat arus listrik dalam kondisi gelap.
Prinsip kerja LDR sangat sederhana tak jauh berbeda dengan variable resistor pada umumnya. LDR dipasang pada berbagai macam rangkaian elektronika dan dapat memutus dan menyambungkan aliran listrik berdasarkan cahaya. Semakin banyak cahaya yang mengenai LDR maka nilai resistansinya akan menurun, dan sebaliknya semakin sedikit cahaya yang mengenai LDR maka nilai hambatannya akan semakin membesar. Naik turunnya nilai Hambatan akan sebanding dengan jumlah cahaya yang diterimanya. Pada umumnya, Nilai Hambatan LDR akan mencapai 200 Kilo Ohm (kΩ) pada kondisi gelap dan menurun menjadi 500 Ohm (Ω) pada Kondisi Cahaya Terang.
bagian-Bagian LDR:
grafik respon LDR:
artinya adalah semakin tinggi tingkat intesitas cahaya yang diterima oleh LDR maka nilai resistansinya akan semakin rendah (intensitas cahaya berbanding terbalik dengan resistansi LDR).
b. Arduino
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen
utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari
perusahaan Atmel.
Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang
menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa
menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer
ataupun perangkat lain.
Adapun
spesifikasi dari Arduino Uno ini adalah sebagai berikut :
Microcontroller
ATmega328P
|
Operating Voltage 5 V
|
Input Voltage (recommended) 7 – 12 V
|
Input Voltage (limit) 6 – 20 V
|
Digital I/O Pins 14
(of which 6 provide PWM output)
|
PWM Digital I/O Pins 6
|
Analog Input Pins 6
|
DC Current per I/O Pin 20 mA
|
DC Current for 3.3V Pin 50 mA
|
Flash Memory 32 KB of which 0.5 KB
used by bootloader
|
SRAM
2 KB
|
EEPROM
1 KB
|
Clock Speed
16 MHz
|
1) USB Soket/Power USB
USB
Soket/Power USB digunakan untuk memberikan catu daya ke Papan Arduino
menggunakan kabel USB dari komputer. Selain menjadi port catu daya, USB
juga memiliki berfungsi untuk:
i. Memuat program dari komputer ke dalam board Arduino.
ii. Komunikasi serial antara papan Arduino dan komputer begitu juga sebaliknya.
Pada
versi lebih lama Arduino terdapat sambungan SV1 Sambungan atau jumper
untuk memilih sumber daya yang digunakan, apakah dari sumber eksternal
atau menggunakan USB. Sambungan ini tidak diperlukan lagi pada papan
Arduino versi terakhir karena pemilihan sumber daya eksternal atau USB
dilakukan secara otomatis.
2) Power (Barrel Jack)
Papan
Arduino dapat juga diberikan colokan catu daya secara langsung dari
sumber daya AC dengan menghubungkannya ke Barrel Jack yang tersedia.
Tegangan maksimal yang dapat diberikan kepada Arduino maksimal 12volt
dengan range arus maksimal 2A (Agar regulator tidak panas).
3) Voltage Regulator
Fungsi
dari voltage regulator adalah untuk mengendalikan atau menurunkan
tegangan yang diberikan ke papan Arduino dan menstabilkan tegangan DC
yang digunakan oleh prosesor dan elemen-elemen lain.
4) Crystal Oscillator
Kristal (quartz crystal oscillator),
jika mikrokontroler dianggap sebagai sebuah otak, maka kristal adalah
jantung-nya karena komponen ini menghasilkan detak-detak yang dikirim
kepada mikrokontroler agar melakukan sebuah operasi untuk setiap
detak-nya. Kristal ini dipilih yang berdetak 16 juta kali per detik
(16MHz).
Crystal
oscillator membantu Arduino dalam hal yang berhubungan dengan waktu.
Bagaimana Arduino menghitung waktu? Jawabannya adalah, dengan
menggunakan crystal oscillator. Angka yang tertulis pada bagian atas
crystal 16.000H9H berarti bahwa frekuensi dari oscillator tersebut
adalah 16.000.000 Hertz atau 16 MHz.
5) 5, 17 Arduino Reset
Kita
dapat mereset papan arduino, misalnya memulai program dari awal.
Terdapat dua cara untuk mereset Arduino Uno. Pertama, dengan menggunakan
reset button (17) pada papan arduino. Kedua, dengan menambahkan reset
eksternal ke pin Arduino yang berlabel RESET (5). Perhatikan bahwa tombol reset ini bukan untuk menghapus program atau mengosongkan mikrokontroler.
6) 3.3V (6) − Supply 3.3 output volt
7) 5V (7) − Supply 5 output volt
Sebagaian besar komponen yang digunakan papan Arduino bekerja dengan baik pada tegangan 3.3 volt dan 5 volt.
8) GND (8)(Ground) – Ada beberapa pin GND pada Arduino, salah satunya dapat digunakan untuk menghubungkan ground rangkaian.
9) Vin (9) – Pin ini juga dapat digunakan untuk memberi daya ke papan Arduino dari sumber daya eksternal, seperti sumber daya AC.
10) 10 Analog pins
Papan
Arduino Uno memiliki enam pin input analog A0 sampai A5. Pin-pin ini
dapat membaca tegangan dan sinyal yang dihasilkan oleh sensor analog
seperti sensor kelembaban atau temperatur dan mengubahnya menjadi nilai
digital yang dapat dibaca oleh mikroprosesor. Program dapat membaca
nilai sebuah pin input antara 0 – 1023, dimana hal itu mewakili nilai
tegangan 0 – 5V.
11) Main microcontroller
Setiap
papan Arduino memiliki Mikrokontroler (11). Kita dapat menganggapnya
sebagai otak dari papan Arduino. IC (integrated circuit) utama pada
Arduino sedikit berbeda antara papan arduino yang satu dengan yang
lainnya. Mikrokontroler yang sering digunakan adalah ATMEL. Kita harus
mengetahui IC apa yang dimiliki oleh suatu papan Arduino sebelum memulai
memprogram arduino melalui Arduino IDE. Informasi tentang IC terdapat
pada bagian atas IC. Untuk mengetahui kontruksi detai dari suatu IC,
kita dapat melihat lembar data dari IC yang bersangkutan.
12) 12 ICSP pin
Kebanyakan,
ICSP (12) adalah AVR, suatu programming header kecil untuk Arduino yang
berisi MOSI, MISO, SCK, RESET, VCC, dan GND. Hal ini sering dirujuk
sebagai SPI (Serial Peripheral Interface), yang dapat dipertimbangkan
sebagai “expansion” dari output. Sebenarnya, kita memasang perangkat
output ke master bus SPI.
In-Circuit
Serial Programming (ICSP)Port ICSP memungkinkan pengguna untuk
memprogram microcontroller secara langsung, tanpa melalui bootloader.
Umumnya pengguna Arduino tidak melakukan ini sehingga ICSP tidak
terlalu dipakai walaupun disediakan.
13) Power LED indicator
LED
ini harus menyala jika menghubungkan Arduino ke sumber daya. Jika LED
tidak menyala, maka terdapat sesuatu yang salah dengan sambungannya.
14) 14 TX dan RX LEDs
Pada
papan Arduino, kita akan menemukan label: TX (transmit) dan RX
(receive). TX dan RX muncul di dua tempat pada papan Arduino Uni.
Pertama, di pin digital 0 dan 1, Untuk menunjukkan pin yang bertanggung
jawab untuk komunikasi serial. Kedua, TX dan RX led (13). TX led akan
berkedip dengan kecepatan yang berbeda saat mengirim data serial.
Kecepatan kedip tergantung pada baud rate yang digunakan oleh papan
arduino. RX berkedip selama menerima proses.
15) Digital I/O
Papan
Arduino Uno memiliki 14 pin I/O digital (15), 6 pin output menyediakan
PWM (Pulse Width Modulation). Pin-pin ini dapat dikonfigurasikan sebagai
pin digital input untuk membaca nilai logika (0 atau 1) atau sebagai
pin digital output untuk mengendalikan modul-modul seperti LED, relay,
dan lain-lain. Pin yang berlabel “~” dapat digunakan untuk membangkitkan
PWM.
16) AREF
AREF
merupakan singkatan dari Analog Reference. AREF kadanag-kadang
digunakan untuk mengatur tegangan referensi eksternal (antar 0 dan 5
Volts) sebagai batas atas untuk pin input analog input.
c. Liquid Crystal Display(LCD)
Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untuk
menampilkan
output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada
sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal
cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah
filter polarisasi (polarizing filter).
Gambar
Penampang komponen penyusun LCD
Keterangan:
1.
Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.
2.
Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).
3.
Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).
4.
Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).
5.
Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.
6.
Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata
pengamat.
Sebuah
citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang
menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah
memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol
tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan
data melalui pin-pin input yang sudah tersedia.
Kaki-kaki
yang terdapat pada LCD
Register control yang terdapat dalam suatu LCD diantaranya adalah.
~ Register
perintah yaitu register yang berisi perintah-perintah dari
mikrokontroler ke panel LCD (Liquid Cristal Display) pada saat proses
penulisan data atau tempat status dari panel LCD (Liquid Cristal
Display) dapat dibaca pada saat pembacaan data
~Register data yaitu register untuk menuliskan atau membaca data dari
atau keDDRAM. Penulisan data pada register akan menempatkan data
tersebut keDDRAM sesuai dengan alamat yang telah diatur sebelumnya.
Pin, kaki atau jalur input dan kontrol dalam suatu LCD (Liquid Cristal Display) diantaranya adalah :
· ~ Pin
data adalah jalur untuk memberikan data karakter yang ingin ditampilkan
menggunakan LCD (Liquid Cristal Display) dapat dihubungkan dengan bus
data dari rangkaian lain seperti mikrokontroler dengan lebar data 8 bit.
· ~Pin
RS (Register Select) berfungsi sebagai indikator atau yang menentukan
jenis data yang masuk, apakah data atau perintah. Logika low menunjukan
yang masuk adalah perintah, sedangkan logika high menunjukan data.
· ~Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low tulis data, sedangkan high baca data.
· ~Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar.
~Pin
VLCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini
dihubungkan dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan ke
ground, sedangkan tegangan catu daya ke LCD sebesar 5 Volt.
d. BUZZER:
Buzzer Listrik adalah sebuah komponen elektronika yang dapat mengubah sinyal listrik menjadi getaran suara. Pada umumnya, Buzzer yang merupakan sebuah perangkat audio ini sering digunakan pada rangkaian anti-maling, Alarm pada Jam Tangan, Bel Rumah, peringatan mundur pada Truk dan perangkat peringatan bahaya lainnya. Jenis Buzzer yang sering ditemukan dan digunakan adalah Buzzer yang berjenis Piezoelectric, hal ini dikarenakan Buzzer Piezoelectric memiliki berbagai kelebihan seperti lebih murah, relatif lebih ringan dan lebih mudah dalam menggabungkannya ke Rangkaian Elektronika lainnya. Buzzer yang termasuk dalam keluarga Transduser ini juga sering disebut dengan Beeper.
Piezoelectric Buzzer adalah jenis Buzzer yang menggunakan efek Piezoelectric untuk menghasilkan suara atau bunyinya. Tegangan listrik yang diberikan ke bahan Piezoelectric akan menyebabkan gerakan mekanis, gerakan tersebut kemudian diubah menjadi suara atau bunyi yang dapat didengar oleh telinga manusia dengan menggunakan diafragma dan resonator.
Piezo Buzzer dapat bekerja dengan baik dalam menghasilkan frekuensi di kisaran 1 – 5 kHz hingga 100 kHz untuk aplikasi Ultrasound. Tegangan Operasional Piezoelectric Buzzer yang umum biasanya berkisar diantara 3Volt hingga 12 Volt.
komponen buzzer:
Buzzer Listrik adalah sebuah komponen elektronika yang dapat mengubah sinyal listrik menjadi getaran suara. Pada umumnya, Buzzer yang merupakan sebuah perangkat audio ini sering digunakan pada rangkaian anti-maling, Alarm pada Jam Tangan, Bel Rumah, peringatan mundur pada Truk dan perangkat peringatan bahaya lainnya. Jenis Buzzer yang sering ditemukan dan digunakan adalah Buzzer yang berjenis Piezoelectric, hal ini dikarenakan Buzzer Piezoelectric memiliki berbagai kelebihan seperti lebih murah, relatif lebih ringan dan lebih mudah dalam menggabungkannya ke Rangkaian Elektronika lainnya. Buzzer yang termasuk dalam keluarga Transduser ini juga sering disebut dengan Beeper.
Piezoelectric Buzzer adalah jenis Buzzer yang menggunakan efek Piezoelectric untuk menghasilkan suara atau bunyinya. Tegangan listrik yang diberikan ke bahan Piezoelectric akan menyebabkan gerakan mekanis, gerakan tersebut kemudian diubah menjadi suara atau bunyi yang dapat didengar oleh telinga manusia dengan menggunakan diafragma dan resonator.
Piezo Buzzer dapat bekerja dengan baik dalam menghasilkan frekuensi di kisaran 1 – 5 kHz hingga 100 kHz untuk aplikasi Ultrasound. Tegangan Operasional Piezoelectric Buzzer yang umum biasanya berkisar diantara 3Volt hingga 12 Volt.
komponen buzzer:
e. LED:
LED adalah suaatu semikonduktor yang memancarkan cahaya, LED mempunyai kecenderungan polarisasi. LED mempunyai kutub positif dan negatif (p-n)
dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED
terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus
listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED
diberikan arus terbalik, hanya akan ada sedikit arus yang melewati LED.
Ini menyebabkan LED tidak akan mengeluarkan emisi cahaya.
Module Wireless nRF24L01 merupakan module yang
mempunyai fungsi untuk komunikasi jarak jauh atau nirkabel yang
memanfaatkan gelombang RF 2.4 GHz yang biasanya diaplikasikan untuk
Scientific , Industrial, maupun Medical.Pada modul ini menggunakan antarmuka SPI (Serial Parallel Interface) untuk
berkomunikasi dengan mikrokontroler dalam hal ini Arduino. Tegangan
operasional normal untuk mengakses module ini yaitu 3.3Vdc, yang
biasanya dibantu dengan regulator AMS1117.
Module nRF24L01 memiliki perangkat keras yang berupa baseband logic
Enhanced ShockBurst dan protocol accelerator yang memungkinan untuk
berkomunikasi dalam kecepatan tinggi.
Selain itu, module ini juga memiliki fitur true ULP solution, yang
berfungsi sebagai penghemat konsumsi daya sehingga hemat energi. Dan
bisa digunakan juga sebagai pembuatan perangkat fitnes dan olahraga,
pendukung PC, mainan anak-anak, piranti perangkat untuk permainan, dan
lainnya.
Kesimpulan dari beberapa fitur Modul Wireless RF nRF24L01 :
- Data rate mencapai 2Mbps
- Penanganan transaksi paket otomatis
- Beroperasi pada pada pita ISM 2.4 GHZ
- Konsumsi daya yang rendah
- Penanganan paket data otomatis
Pin Out dari Modul Wireless RF nRF24L01
DASAR TEORI KOMUNIKASI
Serial Peripheral Interface ( SPI ) merupakan salah
satu mode komunikasi serial synchrounous kecepatan tinggi yang dimiliki oleh
ATmega 328. Komunikasi SPI membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK.
Melalui komunikasi ini data dapat saling dikirimkan baik antara mikrokontroller maupun antara mikrokontroller dengan
peripheral lain di luar mikrokontroler.
MOSI : Master Output Slave Input
Artinya jika dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi
jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.
MISO : Master Input Slave Output Artinya jika dikonfigurasi sebagai
master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka
pin MISO sebagai output.
SCLK : Clock Jika dikonfigurasi sebagai master maka pin CLK berlaku
sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku
sebagai input.
SS/CS : Slave Select/ Chip Select adalah jalur master memilih slave mana
yang akan dikirimkan data.
Cara Kerja Komunikasi SPI
Sinyal clock dialirkan dari master ke slave yang berfungsi untuk
sinkronisasi. Master dapat memilih slave mana yang akan dikirimkan data melalui
slave select, kemudian data dikirimkan dari master ke slave melalui MOSI. Jika
master butuh respon data maka slave akan mentransfer data ke master melalui
MISO.
5. LISTING PROGRAM [kembali]
PROGRAM MASTER:
#include <Wire.h>
#include <SPI.h>
//#include <nRF24L01.h>
#include <RF24.h>
int pin = 3;
int val = 0;
int vel = 1;
int nilai;
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};
char data;
void setup() {
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(3, OUTPUT);
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(addresses[0]); // 00002
radio.openReadingPipe(1, addresses[1]); // 00001
radio.setPALevel(RF24_PA_MAX);
delay(1000);
}
void loop() {
vel = map(analogRead(1), 0, 1023, 255, 1);
int nilai = analogRead(0);
val = map(nilai, 1023, 0, 1, 255);
{
if (vel > 120) {
digitalWrite(3, HIGH);
}
else {
digitalWrite(3, LOW);
}
}
Serial.print(val);
Serial.print('\t');
radio.stopListening();
delay(200);
if (val < 80) {
data = '1';
radio.write(&data, sizeof(data));
delay(200);
}
else if (val < 120)
{
data = '2';
radio.write(&data, sizeof(data));
delay(200);
}
else {
data = '3';
radio.write(&data, sizeof(data));
delay(200);
}
//radio.startListening();
Serial.print("Data to NRF : ");
Serial.print(data);
Serial.println();
}
PROGRAM SLAVE:
#include <SPI.h>
//#include <nRF24L01.h>
#include <RF24.h>
#include<LiquidCrystal.h>
LiquidCrystal lcd (2, 3, 4, 5, 6, 7);
byte pin[] = {A0, A1, A2, A3, A4};
byte data ;
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};
void setup() {
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A4, OUTPUT);
lcd.begin(16, 2);
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(addresses[1]); // 00001/
radio.openReadingPipe(1, addresses[0]); // 00002
radio.setPALevel(RF24_PA_MAX);
delay(200);
}
void loop() {
radio.startListening();
delay(200);
while (!radio.available()) {
Serial.println("No Data Received");
}
radio.read(&data, sizeof(data));
Serial.print("Data Received : ");
Serial.print(data);
Serial.println();
switch (data) {
case '1' :
digitalWrite(A0, HIGH);
digitalWrite(A1, LOW);
digitalWrite(A2, LOW);
digitalWrite(A3, LOW);
digitalWrite(A4, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DI LUAR");
lcd.setCursor(0, 1);
lcd.print("TERANG");
break;
case '2' :
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(A3, LOW);
digitalWrite(A4, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DI LUAR");
lcd.setCursor(0, 1);
lcd.print("GELAP");
break;
case '3' :
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(A3, HIGH);
digitalWrite(A4, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DI LUAR");
lcd.setCursor(0, 1);
lcd.print("SANGAT GELAP");
break;
}
radio.stopListening();
}
6. RANGKAIAN SIMULASI [kembali]
7. FOTO ALAT [kembali]
8. VIDEO RANGKAIAN [kembali]
9. VIDEO ALAT [kembali]
10. ANALISA [kembali]
pada modul 4 praktikum mikro prosessor dan mikro kontroller merupakan pembuatan alat demo dengan menggunakan komunikasi wireless. alat yang dibuat yaitu demonstrasi pengaturan intensitas cahaya di dalam ruangan berdasarkan intensitas cahaya di luar ruangan.
rangkaian ini menggunakan 2 arduino, 2 LDR, 2 modul NRF24L01, 5 LED, 1 LCD 16x2, dan jumper.
pronsip kerja rangakaian:
sebuah LDR (LDR 1) akan diletakkan di luar ruangan dimana ia akan membaca intensitas cahaya yang ada di luar ruangan tersebut. nilai intensitas cahaya yang diterima oleh LDR aka mempengaruhi resistansi LDR tersebut. akibatnya tegangan yang di lewatkan oleh LDR akan berubah sesuai dengan perubahan resistansi LDR akibat intensitas cahaya yang ia terima. dimana tegangan yang dilewatkan oleh LDR akan dibaca oleh pin analog 1 arduino master. pada semua pin analog arduino terdapat ADC yang berguna untuk mengubah data analog menjadi data digital. data digital yang dihasilkan oleh LDR 1 akan memiliki rentang 0 sampai dengan 1024. data yang dapat diolah oleh mikro prosesor hanya pada rentang 0 sampai dengan 255 oleh karena itu, data dari LDR tadi dilakukan mapping yaitu untuk mengubah nilai dari rentang 0 sampai 1024 menjadi rentang 0 sampai 255. hasil mapping ini akan di beri nama variabel val. mikro prosessor akan mengolah data yaitu saat nilai val < 80 maka akan menghasilkan nilai data '1', saat nilai val >80 namun <100 maka akan menghasilkan nilai data '2', saat nilai val >100 namun <120 maka akan menghasilkan nilai data '3', saat nilai val > 120 maka akan menghasilkan nilai data '4'. nilai-nilai data yang telah dihasilkan akan dikirimkan ke modul NRF24L01.
setelah data sampai pada modul NRF24L01 yang terhubung dengan arduino master maka NRF24L01 akan mentransmisikan data tersebut secara nirkabel atau wireless. dengan terlebih dahulu melakukan seting pada NRF25L01 yang terhubung dengan arduino master sebagai pengirim data. setelah data dikirimkan oleh NRF24L01 pengirim maka data tersebut akan diterima oleh NRF24L01 penerima, yaitu NRF24L01 yang terhubung dengan arduino slave.
melalui arduino slave dilakukan seting NRF24L01 sebagai penerima data, sehingga ia akan menerima data yang ditransmisikan oleh NRF24L01 pengirim. data yang telah diterima oleh NRF24L01 penerima akan di lanjutkan kepada arduino slave. pada arduino salve akan membaca data yang ia terima dalam bentuk karakter (char) dan diberlakukan dalam kode case. saat nilai case '1' maka arduino slave akan menghidupkan 1 LED dan akan ditampilkan pada LCD statment "diluar terang". saat nilai case '2' maka arduino slave akan menghidupkan 2 LED dan akan ditampilkan pada LCD statment "diluar redup". saat nilai case '3' maka arduino slave akan menghidupkan 3 LED dan akan ditampilkan pada LCD statment "diluar gelap". saat nilai case '4' maka arduino slave akan menghidupkan 5 LED dan akan ditampilkan pada LCD statment "diluar sangat gelap". hal ini sesuai dengan prpgram yang diset pada arduino salve.
saat intensitas yang diterima oleh LDR 1 tinggi. maka nilai resistansinya akan rendah. sehingga nilai tegangan yanng ia lewatkan akan bernilai maksimum. akibatnya adalah data analog yang diterima arduino master bernilai maksimal. lalu dilakukan mapping "val = map(analogRead(0), 0,1023, 255, 1);" artinya adalah saat nilai yang masuk tinggi maka nilai val yang dihasilkan adalah nilai terkecil. maka saat nilai val minimum maka arduino master akan mengirimkan data '1' kepada NRF pengirim. lalu NRF pengirim akan mentransmisikan nilai data tersebut. setelah ditransmisikan oleh NRF pengirim maka data tersebut akan diterima oleh NRF penerima. setelah diterima oleh NRF penerima data tersebut akan diteruskan kepada arduinno slave. saat nilai dat atau case yang masuk pada arduino slave adalah '1' maka arduino 1 akan menghidupkan 1 LED saja dan LED yang lainnya akan mati. lalu pada LCD akan ditampilkan statment " diluar terang".
untuk kondisi lainnya memiliki alur yang sama namun dengan nilai yang berbeda sesuai dengan program yang telah di setting.
untuk mendeteksi keadaan intensitas didalam ruangan maka dipasang sebuah LDR didalam ruangan yaitu LDR 2. LDR 2 terhubunng kepada arduino master. saat keadaan di dalam ruangan terang, maka resistansi LDR yang dihasilkan akan kecil dan tegang yang dihasilkan bernilai tertinggi lalu dialkukan mapping " vel=map(analogRead(1), 0,1023, 255, 1);" akibatnya saat nilai yang masuk maksimal maka nilai yang diproses bernilai minimal. saat nilai vel yang diperoleh >120 maka buzzer akan aktif. nilai dari LDR2 langsung di olah oleh arduino master.
PROGRAM MASTER:
#include <Wire.h>
#include <SPI.h>
//#include <nRF24L01.h>
#include <RF24.h>
int pin = 3;
int val = 0;
int vel = 1;
int nilai;
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};
char data;
void setup() {
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(3, OUTPUT);
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(addresses[0]); // 00002
radio.openReadingPipe(1, addresses[1]); // 00001
radio.setPALevel(RF24_PA_MAX);
delay(1000);
}
void loop() {
vel = map(analogRead(1), 0, 1023, 255, 1);
int nilai = analogRead(0);
val = map(nilai, 1023, 0, 1, 255);
{
if (vel > 120) {
digitalWrite(3, HIGH);
}
else {
digitalWrite(3, LOW);
}
}
Serial.print(val);
Serial.print('\t');
radio.stopListening();
delay(200);
if (val < 80) {
data = '1';
radio.write(&data, sizeof(data));
delay(200);
}
else if (val < 120)
{
data = '2';
radio.write(&data, sizeof(data));
delay(200);
}
else {
data = '3';
radio.write(&data, sizeof(data));
delay(200);
}
//radio.startListening();
Serial.print("Data to NRF : ");
Serial.print(data);
Serial.println();
}
PROGRAM SLAVE:
#include <SPI.h>
//#include <nRF24L01.h>
#include <RF24.h>
#include<LiquidCrystal.h>
LiquidCrystal lcd (2, 3, 4, 5, 6, 7);
byte pin[] = {A0, A1, A2, A3, A4};
byte data ;
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};
void setup() {
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A4, OUTPUT);
lcd.begin(16, 2);
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(addresses[1]); // 00001/
radio.openReadingPipe(1, addresses[0]); // 00002
radio.setPALevel(RF24_PA_MAX);
delay(200);
}
void loop() {
radio.startListening();
delay(200);
while (!radio.available()) {
Serial.println("No Data Received");
}
radio.read(&data, sizeof(data));
Serial.print("Data Received : ");
Serial.print(data);
Serial.println();
switch (data) {
case '1' :
digitalWrite(A0, HIGH);
digitalWrite(A1, LOW);
digitalWrite(A2, LOW);
digitalWrite(A3, LOW);
digitalWrite(A4, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DI LUAR");
lcd.setCursor(0, 1);
lcd.print("TERANG");
break;
case '2' :
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(A3, LOW);
digitalWrite(A4, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DI LUAR");
lcd.setCursor(0, 1);
lcd.print("GELAP");
break;
case '3' :
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(A3, HIGH);
digitalWrite(A4, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DI LUAR");
lcd.setCursor(0, 1);
lcd.print("SANGAT GELAP");
break;
}
radio.stopListening();
}
6. RANGKAIAN SIMULASI [kembali]
7. FOTO ALAT [kembali]
8. VIDEO RANGKAIAN [kembali]
9. VIDEO ALAT [kembali]
10. ANALISA [kembali]
pada modul 4 praktikum mikro prosessor dan mikro kontroller merupakan pembuatan alat demo dengan menggunakan komunikasi wireless. alat yang dibuat yaitu demonstrasi pengaturan intensitas cahaya di dalam ruangan berdasarkan intensitas cahaya di luar ruangan.
rangkaian ini menggunakan 2 arduino, 2 LDR, 2 modul NRF24L01, 5 LED, 1 LCD 16x2, dan jumper.
pronsip kerja rangakaian:
sebuah LDR (LDR 1) akan diletakkan di luar ruangan dimana ia akan membaca intensitas cahaya yang ada di luar ruangan tersebut. nilai intensitas cahaya yang diterima oleh LDR aka mempengaruhi resistansi LDR tersebut. akibatnya tegangan yang di lewatkan oleh LDR akan berubah sesuai dengan perubahan resistansi LDR akibat intensitas cahaya yang ia terima. dimana tegangan yang dilewatkan oleh LDR akan dibaca oleh pin analog 1 arduino master. pada semua pin analog arduino terdapat ADC yang berguna untuk mengubah data analog menjadi data digital. data digital yang dihasilkan oleh LDR 1 akan memiliki rentang 0 sampai dengan 1024. data yang dapat diolah oleh mikro prosesor hanya pada rentang 0 sampai dengan 255 oleh karena itu, data dari LDR tadi dilakukan mapping yaitu untuk mengubah nilai dari rentang 0 sampai 1024 menjadi rentang 0 sampai 255. hasil mapping ini akan di beri nama variabel val. mikro prosessor akan mengolah data yaitu saat nilai val < 80 maka akan menghasilkan nilai data '1', saat nilai val >80 namun <100 maka akan menghasilkan nilai data '2', saat nilai val >100 namun <120 maka akan menghasilkan nilai data '3', saat nilai val > 120 maka akan menghasilkan nilai data '4'. nilai-nilai data yang telah dihasilkan akan dikirimkan ke modul NRF24L01.
setelah data sampai pada modul NRF24L01 yang terhubung dengan arduino master maka NRF24L01 akan mentransmisikan data tersebut secara nirkabel atau wireless. dengan terlebih dahulu melakukan seting pada NRF25L01 yang terhubung dengan arduino master sebagai pengirim data. setelah data dikirimkan oleh NRF24L01 pengirim maka data tersebut akan diterima oleh NRF24L01 penerima, yaitu NRF24L01 yang terhubung dengan arduino slave.
melalui arduino slave dilakukan seting NRF24L01 sebagai penerima data, sehingga ia akan menerima data yang ditransmisikan oleh NRF24L01 pengirim. data yang telah diterima oleh NRF24L01 penerima akan di lanjutkan kepada arduino slave. pada arduino salve akan membaca data yang ia terima dalam bentuk karakter (char) dan diberlakukan dalam kode case. saat nilai case '1' maka arduino slave akan menghidupkan 1 LED dan akan ditampilkan pada LCD statment "diluar terang". saat nilai case '2' maka arduino slave akan menghidupkan 2 LED dan akan ditampilkan pada LCD statment "diluar redup". saat nilai case '3' maka arduino slave akan menghidupkan 3 LED dan akan ditampilkan pada LCD statment "diluar gelap". saat nilai case '4' maka arduino slave akan menghidupkan 5 LED dan akan ditampilkan pada LCD statment "diluar sangat gelap". hal ini sesuai dengan prpgram yang diset pada arduino salve.
saat intensitas yang diterima oleh LDR 1 tinggi. maka nilai resistansinya akan rendah. sehingga nilai tegangan yanng ia lewatkan akan bernilai maksimum. akibatnya adalah data analog yang diterima arduino master bernilai maksimal. lalu dilakukan mapping "val = map(analogRead(0), 0,1023, 255, 1);" artinya adalah saat nilai yang masuk tinggi maka nilai val yang dihasilkan adalah nilai terkecil. maka saat nilai val minimum maka arduino master akan mengirimkan data '1' kepada NRF pengirim. lalu NRF pengirim akan mentransmisikan nilai data tersebut. setelah ditransmisikan oleh NRF pengirim maka data tersebut akan diterima oleh NRF penerima. setelah diterima oleh NRF penerima data tersebut akan diteruskan kepada arduinno slave. saat nilai dat atau case yang masuk pada arduino slave adalah '1' maka arduino 1 akan menghidupkan 1 LED saja dan LED yang lainnya akan mati. lalu pada LCD akan ditampilkan statment " diluar terang".
untuk kondisi lainnya memiliki alur yang sama namun dengan nilai yang berbeda sesuai dengan program yang telah di setting.
untuk mendeteksi keadaan intensitas didalam ruangan maka dipasang sebuah LDR didalam ruangan yaitu LDR 2. LDR 2 terhubunng kepada arduino master. saat keadaan di dalam ruangan terang, maka resistansi LDR yang dihasilkan akan kecil dan tegang yang dihasilkan bernilai tertinggi lalu dialkukan mapping " vel=map(analogRead(1), 0,1023, 255, 1);" akibatnya saat nilai yang masuk maksimal maka nilai yang diproses bernilai minimal. saat nilai vel yang diperoleh >120 maka buzzer akan aktif. nilai dari LDR2 langsung di olah oleh arduino master.
Tidak ada komentar:
Posting Komentar