- Memenuhi syarat untuk Modul 4 Praktikum Mikrokontroller & Mikroprosesor.
- perancangan kontrol pakan ikan dan pengukur ketinggian air ini juga bertujuan agar mempermudah pemilik dalam pemberian makan ikan secara teratur dan mmepermudah pengisian air.
-. Jumper
-. Project Board
· Bahan :
-. Resistor
-. Potensiometer
· Komponen Input :
-. Sensor RTC
-. Sensor Ultrasonik
-. Rain sensor
· Komponen Output :
-. Motor Servo
-.motor stepper
- LCD
· Komponen Lainnya :
-. Arduino
Pulse Width Modulation (PWM) secara
umum adalah sebuah cara memanipulasi lebar sinyal yang dinyatakan dengan pulsa
dalam suatu perioda, untuk mendapatkan tegangan ratarata yang berbeda.
Modulasi lebar pulsa (PWM) dicapai/diperoleh dengan bantuan
sebuah gelombang kotak yang mana siklus kerja (duty cycle) gelombang dapat
diubah-ubah untuk mendapatkan sebuah tegangan keluaran yang bervariasi yang
merupakan nilai rata-rata dari gelombang tersebut. Duty cycle merupakan
prosentase periode sinyal high dan periode sinyal, prosentase duty cycle akan
bebanding lurus dengan tegangan rata-rata yang dihasilkan. Beberapa Contoh
aplikasi PWM adalah pemodulasian data untuk telekomunikasi, pengontrolan daya
atau tegangan yang masuk ke beban, regulator tegangan, audio effect dan
penguatan, serta aplikasi-aplikasi lainnya. Aplikasi PWM berbasis
mikrokontroler biasanya berupa, pengendalian kecepatan motor DC, Pengendalian
Motor Servo, Pengaturan nyala terang LED. Berikut ilustrasi sinyal PWM,
misalkan kondisi high 5 V dan kondisi low 0 V.
Gambar 1. Bentuk
gelombang kotak (pulsa) dengan kondisi high 5V dan low 0V
Ton adalah waktu dimana
tegangan keluaran berada pada kondisi high dan, Toff adalah waktu
dimana tegangan keluaran berada pada kondisi low. Anggap Ttotal
adalah waktu satu siklus atau penjumlahan antara Ton denganToff
, biasa dikenal dengan istilah “periode satu gelombang”.
Ttotal = Ton + Toff
Siklus kerja atau duty
cycle sebuah gelombang di definisikan sebagai,
Tegangan keluaran dapat bervariasi denganduty-cycle
dan dapat dirumusan sebagai berikut,
Sehingga,
Dari rumus diatas dapat ditarik
kesimpulan bahwa tegangan keluaran dapat diubah ubah secara langsung dengan
mengubah nilai Ton. Apabila Ton adalah 0, Vout
juga akan 0. Apabila Ton adalah Ttotal maka Vout
adalahVin atau katakanlah nilai maksimumnya.
PWM bekerja sebagai switching power
suplai untuk mengontrol on dan off. Tegangan dc dikonvert menjadi sinyal kotak
bolak balik, saat on mendekati tegangan puncak dan saat off mrnjadi nol (0)
volt. Jika frekuensi switching cukup tinggi maka temperatur (suhu) air yang
dikendalikan akan semakin sesuai dengan yang diharapkan. Dengan mengatur duty
cycle dari sinyal (modulasi lebar pulsa dari sinyal disebabkan oleh PWM).
Terlihat pada gambar di bawah sinyal ref adalah sinyal tegangan dc yang
dikonversi oleh sinyal gergaji dan menghasilkan sinyal kotak
Gambar 2. Sinyal
Referensi ( sinyal tegangan DC) .
Informasi analog dapat dikirimkan dengan
menggunakan pulsa-pulsa tegangan atau pulsa-pulsa arus. Dengan modulasi pulsa,
pembawa informasi terdiri dari pulsapulsa persegi yang berulang-ulang. Salah
satu teknik modulasi yang sering digunakan adalah teknik modulasi durasi atu
lebar dari waktu tunda positif ataupun waktu tunda negatif pulsa-pulsa persegi
tersebut. Untuk membangkitkan sinyal PWM adalah dengan menggunakan fungsi
timer/counter yang dibandingkan nilainya dengan sebuah register tertentu.
b. ADC (Analog to Digital Converter)
ADC
atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang
digunakan sebagai
penghubung dalam pemrosesan sinyal analog oleh sistem
digital. Fungsi
utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan
bentuk kode-kode digital. Ada 2 faktor yang
perlu diperhatikan pada proses kerja ADC yaitu
kecepatan
sampling dan resolusi.
Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi
sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam
sample
per second
(SPS).
Sementara Resolusi
menyatakan
tingkat
ketelitian yang
dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 -
1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti
ADC
pada Arduino mampu
menangani sinyal
analog dengan tegangan 0
- 5 volt.
Pada
Arduino, menggunakan pin analog input yang diawali dengan kode A( A0- A5 pada Arduino
Uno). Fungsi untuk
mengambil data sinyal input analog
menggunakan analogRead(pin);
c.
Mikrokontroller
Mikrokontroler adalah salah satu dari bagian dasar dari suatu sistem komputer. Meskipun mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan komputer mainframe, mikrokontroler dibangun dari elemen-elemen dasar yang sama. Secara sederhana, komputer akan menghasilkan output yang spesifik berdasarkan input yang diterima dan program yang dikerjakan. Seperti umumnya komputer, mikrokontroler sebagai alat yang mengerjakan perintah-perintah yang diberikan kepadanya. Artinya, bagian terpenting dan utama dari suatu sistem komputerisasi adalah program itu sendiri yang dibuat oleh seorang programmer. Program ini memerintahkan komputer untuk melakukan jalinan yang panjang dari aksi-aksi sederhana untuk melakukan tugas yang lebih kompleks yang diinginkan oleh programmer. Sistem dengan mikrokontroler umumnya menggunakan piranti input yang jauh lebih kecil seperti saklar atau keypad kecil. Hampir semua input mikrokontroler hanya dapat memproses sinyal input digital dengan tegangan yang sama dengan tegangan logika dari sumber. Tegangan positif sumber umumnya adalah 5 volt. Padahal dalam dunia nyata terdapat banyak sinyal analog atau sinyal dengan tegangan.
Gambar 3.
Struktur dan Diagram Blok Mikrokontroler
Berikut ini merupakan
struktur dan diagram blok mikrokontroler beserta penjelasan tentang
bagian-bagian utamanya.
·
CPU
CPU merupakan otak dari mikrokontroler. CPU
bertanggung jawab untuk mengambil instruksi (fetch), menerjemahkannya (decode),
kemudian akhirnya dieksekusi (execute). CPU menghubungkan setiap bagian dari
mikrokontroler ke dalam satu sistem. Fungsi utamanya yaitu mengambil dan
mendekode instruksi. Instruksi yang diambil dari memori program harus
diterjemahkan atau melakukan decode oleh CPU tersebut.
·
Serial Port (Port Serial)
Serial port menyediakan berbagai antarmuka serial
antara mikrokontroler dan periferal lain seperti port paralel.
·
Memori (Penyimpanan)
Memori ini bertugas untuk menyimpan data. Data
tersebut merupakan data yang sudah diolah (output) atau data yang belum diolah
(input). Penyimpanan ini berupa RAM dan ROM. ROM digunakan untuk menyimpan data
dalam jangka waktu yang lama. Sedangkan RAM digunakan untuk menyimpan data
sementara selama program berjalan sampai akhirnya dipindahkan ke ROM.
·
Port Input/Output Paralel
Port input/output paralel digunakan untuk mendorong
atau menghubungkan berbagai perangkat seperti LED, LCD,
printer, memori dan perangkat input/output lainnya ke mikrokontroler.
·
ADC (Analog to Digital Converter)
Konverter ADC (Analog to Digital Converter)
digunakan untuk mengubah sinyal analog ke bentuk digital. Sinyal input dalam
konverter ini harus dalam bentuk analog (misalnya output dari sensor) sedangkan
outputnya dalam bentuk digital.
·
DAC (Digital to Analog Converter)
DAC (Digital to Analog Converter) melakukan operasi
pembalikan konversi ADC (Analog to Digital Converter). DAC mengubah sinyal
digital menjadi format analog. DAC ini biasanya digunakan untuk mengendalikan
perangkat analog seperti motor DC dan
lain sebagainya.
·
Interrupt Control (Kontrol Interupsi)
Interrupt Control (Kontrol Interupsi) bertugas untuk
mengendalikan penundaan terhadap pemrograman mikrokontroler. Bagian interrupt
control (kontrol interupsi) ini dapat dioperasikan secara internal ataupun
eksternal.
·
Special Functioning Block (Blok Fungsi
Khusus)
Special functioning block merupakan bagian tambahan
yang dibuat mempunyai fungsi khusus. Biasanya blok ini ditemukan pada
arsitektur mikrokontroler di mesin robotika. Tidak semua perangkat menggunakan
bagian ini.
·
Timer and Counter (Pengatur Waktu dan
Penghitung)
Timer/counter ini digunakan untuk mengukur waktu dan
alat penghitungan. Keberadaan komponen ini sangatlah penting. Karena informasi
waktu seringkali digunakan pengaturan sistem supaya lebih akurat dan efektif.
d.
Komunikasi
·
Universal Asynchronous Receiver Transmitter (UART)
UART (Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat
keras
komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port
serial perangkat periperal.
Cara Kerja Komunikasi UART
Gambar 4. Cara
Kerja Komunikasi UART
Data dikirimkan secara paralel dari data
bus ke UART1. Pada UART1 ditambahkan start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan data dan
menghapus bit tambahan,
kemudia di transfer secara parallel ke data bus
penerima.
·
·
Inter Integrated Circuit (I2C)
Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua
arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang
membawa informasi
data
antara I2C dengan pengontrolnya.
Cara Kerja Komunikasi I2C
Gambar 6. Cara
Kerja Komunikasi I2C
Pada I2C, data ditransfer dalam bentuk
message yang terdiri dari kondisi start, Address
Frame, R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2, dan kondisi Stop. Kondisi
start dimana saat pada SDA beralih
dari
logika high ke low sebelum SCL.Kondisi stop dimana
saat pada SDA beralih
dari logika low ke high sebelum SCL.
R/W bit berfungsi untuk menentukan
apakah master mengirim
data
ke slave atau meminta data dari slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari
slave) ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address
frame telahditerima receiver.
e. RTC
Gambar 7.RTC
- Tegangan operasi MODUL
DS3231: 2.3V – 5.5V
- Mengkonsumsi 500nA pada
cadangan baterai
- Tegangan maksimum pada SDA
, SCL : VCC + 0.3V
- Suhu operasi: -45ºC hingga
+80ºC
f. Sensor Ultrasonik (HC-SR04)
Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah
besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor
ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat
dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi
tertentu. Disebut sebagai sensor ultrasonik karena sensor ini menggunakan
gelombang ultrasonik (bunyi ultrasonik).
Cara Kerja Sensor Ultrasonik:
Pada sensor ultrasonik, gelombang ultrasonik dibangkitkan melalui sebuah
alat yang disebut dengan piezoelektrik dengan frekuensi tertentu. Piezoelektrik
ini akan menghasilkan gelombang ultrasonik (umumnya berfrekuensi 40kHz) ketika
sebuah osilator diterapkan pada benda tersebut. Secara umum, alat ini akan
menembakkan gelombang ultrasonik menuju suatu area atau suatu target. Setelah
gelombang menyentuh permukaan target, maka target akan memantulkan kembali
gelombang tersebut. Gelombang pantulan dari target akan ditangkap oleh sensor,
kemudian sensor menghitung selisih antara waktu pengiriman gelombang dan waktu
gelombang pantul diterima.
Gambar 12. Cara Kerja Sensor Ultrasonik
Gambar 13. Grafik Respon Sensor Ultrasonik
Berdasarkan grafik di atas dapat disimpulkan bahwa bahwa sensor
ultrasonik memiliki kinerja rendah dalam pengukuranpada jarak yang rendah. Kinerja
sensor memiliki hasil yang akurat untuk pengukuran jarak jauh. Secara detail, cara kerja sensor ultrasonik adalah sebagai berikut:
l Sinyal dipancarkan oleh pemancar ultrasonik dengan frekuensi
tertentu dan dengan durasi waktu tertentu. Sinyal tersebut berfrekuensi diatas
20kHz. Untuk mengukur jarak benda (sensor jarak), frekuensi yang umum digunakan
adalah 40kHz.
l Sinyal yang dipancarkan akan merambat sebagai gelombang bunyi
dengan kecepatan sekitar 340 m/s. Ketika menumbuk suatu benda, maka sinyal
tersebut akan dipantulkan oleh benda tersebut.
l Setelah gelombang pantulan sampai di alat penerima, maka
sinyal tersebut akan diproses untuk menghitung jarak benda tersebut. Jarak
benda dihitung berdasarkan rumus :
S = 340.t/2
dimana S merupakan jarak antara sensor ultrasonik dengan benda (bidang
pantul), dan t adalah selisih antara waktu pemancaran
gelombang oleh transmitter dan waktu ketika gelombang pantul diterima receiver.
g. Rain sensor
Spesifikasi:
·
Vin : DC 5V 9V.
·
Radius : 180 derajat.
·
Jarak deteksi : 5 7 meter.
·
Output : Digital TTL.
·
Memiliki setting sensitivitas.
·
Memiliki setting time delay.
·
Dimensi : 3,2 cm x 2,4 cm x 2,3 cm.
·
Berat : 10 gr.
h.
Jumper
Jumper
adalah suatu istilah kabel yang ber-diameter kecil yang di dalam dunia
elektronika digunakan untuk menghubungkan dua titik atau lebih dan dapat juga
untuk menghubungkan 2 komponen elektronika.
Jenis-jenis jumper :
l
Male-Male
Gambar 17. Jumper Male-Male
Kabel
jumper jenis ini digunakan untuk koneksi male to male pada kedua ujung
kabelnya.
l
Male-Female
Gambar 18. Jumper Male-Female
Kabel
jumper jenis ini digunakan untuk koneksi male to female dengan salah satu ujung
kabel dikoneksi male dan satu ujungnya lagi dengan koneksi female.
l
Female-Female
Gambar 19. Jumper Female-Female
Kabel
jumper jenis ini digunakan untuk koneksi female to female pada kedua ujung
kabelnya.
i.
Resistor
Resistor merupakan komponen penting dan
sering dijumpai dalam sirkuit Elektronik. Boleh dikatakan hampir setiap sirkuit
Elektronik pasti ada Resistor. Tetapi banyak diantara kita yang bekerja di
perusahaan perakitan Elektronik maupun yang menggunakan peralatan Elektronik
tersebut tidak mengetahui cara membaca kode warna ataupun kode angka yang ada
ditubuh Resistor itu sendiri. Seperti
yang dikatakan sebelumnya, nilai Resistor yang berbentuk Axial adalah diwakili
oleh Warna-warna yang terdapat di tubuh (body) Resistor itu sendiri dalam
bentuk Gelang. Umumnya terdapat 4 Gelang di tubuh Resistor, tetapi ada juga
yang 5 Gelang. Gelang warna
Emas dan Perak biasanya terletak agak jauh dari gelang warna lainnya sebagai
tanda gelang terakhir. Gelang Terakhirnya ini juga merupakan nilai toleransi
pada nilai Resistor yang bersangkutan. Tabel
dibawah ini adalah warna-warna yang terdapat di Tubuh Resistor:
Tabel 2. Kode Warna Resistor Perhitungan untuk Resistor dengan 4 Gelang Warna
Gambar 20. Cara Menghitung Nilai Resistor
Masukkan angka langsung
dari kode warna Gelang ke-1 (pertama) Masukkan
angka langsung dari kode warna Gelang ke-2 Masukkan
Jumlah nol dari kode warna Gelang ke-3 atau pangkatkan angka tersebut dengan 10
(10n) Merupakan Toleransi dari nilai Resistor
tersebut
Contoh:
Gelang
ke 1: Coklat = 1
Gelang
ke 2: Hitam = 0
Gelang ke 3: Hijau = 5 nol dibelakang angka gelang
ke-2; atau kalikan 105
Gelang
ke 4: Perak = Toleransi 10%
Maka nilai Resistor tersebut adalah
10 * 105 = 1.000.000 Ohm atau 1 MOhm dengan toleransi 10%. Perhitungan untuk Resistor dengan 5
Gelang warna :
Gambar 21. Cara Menghitung Nilai Resistor 5 Gelang Warna
Masukkan
angka langsung dari kode warna Gelang ke-1 (pertama)
Masukkan
angka langsung dari kode warna Gelang ke-2
Masukkan
angka langsung dari kode warna Gelang ke-3
Masukkan Jumlah nol dari kode warna Gelang ke-4 atau
pangkatkan angka tersebut dengan 10 (10n)
Merupakan
Toleransi dari nilai Resistor tersebut
Contoh:
Gelang ke 1: Coklat = 1
Gelang ke 2: Hitam = 0
Gelang ke 3: Hijau = 5
Gelang ke 4: Hijau = 5 nol dibelakang angka gelang
ke-2; atau kalikan 105
Gelang ke 5: Perak = Toleransi 10%
Maka nilai Resistor tersebut adalah 105 * 105 =
10.500.000 Ohm atau 10,5 MOhm dengan toleransi 10%.
Contoh-contoh perhitungan lainnya:
Merah, Merah, Merah, Emas → 22 * 10² = 2.200 Ohm
atau 2,2 Kilo Ohm dengan 5% toleransi
Kuning, Ungu, Orange, Perak → 47 * 10³ = 47.000 Ohm
atau 47 Kilo Ohm dengan 10% toleransi
Cara menghitung Toleransi:
2.200 Ohm dengan Toleransi 5% =
2200 – 5% = 2.090
2200 + 5% = 2.310
ini artinya nilai Resistor tersebut akan berkisar
antara 2.090 Ohm ~ 2.310 Ohm
j.
Motor Servo (SG90)
Gambar 22. Motor Servo
Motor servo adalah
sebuah perangkat atau aktuator putar (motor) yang dirancang dengan sistem
kontrol umpan balik loop tertutup (servo), sehingga dapat di set-up atau di
atur untuk menentukan dan memastikan posisi sudut dari poros output motor.
motor servo merupakan perangkat yang terdiri dari motor DC, serangkaian gear,
rangkaian kontrol dan potensiometer. Serangkaian gear yang melekat pada poros
motor DC akan memperlambat putaran poros dan meningkatkan torsi motor servo,
sedangkan potensiometer dengan perubahan resistansinya saat motor berputar
berfungsi sebagai penentu batas posisi putaran poros motor servo.
Prinsip kerja motor
servo:
Motor servo dikendalikan dengan memberikan sinyal modulasi lebar pulsa
(Pulse Wide Modulation / PWM) melalui kabel kontrol. Lebar pulsa sinyal kontrol
yang diberikan akan menentukan posisi sudut putaran dari poros motor servo.
Sebagai contoh, lebar pulsa dengan waktu 1,5 ms (mili detik) akan memutar poros
motor servo ke posisi sudut 90⁰. Bila pulsa lebih pendek dari 1,5 ms maka akan
berputar ke arah posisi 0⁰ atau ke kiri (berlawanan dengan arah jarum jam),
sedangkan bila pulsa yang diberikan lebih lama dari 1,5 ms maka poros motor
servo akan berputar ke arah posisi 180⁰ atau ke kanan (searah jarum jam). Lebih
jelasnya perhatikan gambar dibawah ini.
Lebar pulsa kendali telah diberikan, maka poros motor servo akan bergerak
atau berputar ke posisi yang telah diperintahkan, dan berhenti pada posisi
tersebut dan akan tetap bertahan pada posisi tersebut. Jika ada kekuatan
eksternal yang mencoba memutar atau mengubah posisi tersebut, maka motor servo
akan mencoba menahan atau melawan dengan besarnya kekuatan torsi yang
dimilikinya (rating torsi servo). Namun motor servo tidak akan mempertahankan
posisinya untuk selamanya, sinyal lebar pulsa kendali harus diulang setiap 20
ms (mili detik) untuk menginstruksikan agar posisi poros motor servo tetap bertahan
pada posisinya.
k. LCD
(1602)
Gambar 24. LCD
LCD atau Liquid Crystal Display adalah
suatu jenis media display (tampilan) yang menggunakan kristal cair (liquid
crystal) untuk menghasilkan gambar yang terlihat. Teknologi Liquid Crystal
Display (LCD) atau Penampil Kristal Cair sudah banyak digunakan pada
produk-produk seperti layar Laptop, layar Ponsel, layar Kalkulator, layar Jam
Digital, layar Multimeter, Monitor Komputer, Televisi, layar Game portabel,
layar Thermometer Digital dan produk-produk elektronik lainnya.
Teknologi Display LCD ini memungkinkan produk-produk
elektronik dibuat menjadi jauh lebih tipis jika dibanding dengan teknologi
Tabung Sinar Katoda (Cathode Ray Tube atau CRT). Jika dibandingkan
dengan teknologi CRT, LCD juga jauh lebih hemat dalam mengkonsumsi daya karena
LCD bekerja berdasarkan prinsip pemblokiran cahaya sedangkan CRT berdasarkan
prinsip pemancaran cahaya. Namun LCD membutuhkan lampu backlight (cahaya latar
belakang) sebagai cahaya pendukung karena LCD sendiri tidak memancarkan cahaya.
Beberapa jenis backlight yang umum digunakan untuk LCD diantaranya adalah
backlight CCFL (Cold cathode fluorescent lamps) dan backlight LED (Light-emitting
diodes).
LCD atau Liquid Crystal
Display pada dasarnya terdiri dari dua bagian utama yaitu bagian Backlight
(Lampu Latar Belakang) dan bagian Liquid Crystal (Kristal Cair). Seperti yang
disebutkan sebelumnya, LCD tidak memancarkan pencahayaan apapun, LCD hanya
merefleksikan dan mentransmisikan cahaya yang melewatinya. Oleh karena itu, LCD
memerlukan Backlight atau Cahaya latar belakang untuk sumber cahayanya. Cahaya
Backlight tersebut pada umumnya adalah berwarna putih. Sedangkan Kristal Cair
(Liquid Crystal) sendiri adalah cairan organik yang berada diantara dua lembar
kaca yang memiliki permukaan transparan yang konduktif. Bagian-bagian LCD atau Liquid
Crystal Display diantaranya adalah:
·
Lapisan Terpolarisasi 1 (Polarizing
Film 1)
·
Elektroda Positif (Positive Electrode)
·
Lapisan Kristal Cair (Liquid Cristal
Layer)
·
Elektroda Negatif (Negative Electrode)
·
Lapisan Terpolarisasi 2 (Polarizing
film 2)
·
Backlight atau Cermin (Backlight or
Mirror)
Dibawah
ini adalah gambar struktur dasar sebuah LCD:
Gambar 25. Struktur LCD
LCD yang digunakan pada Kalkulator dan Jam Tangan digital
pada umumnya menggunakan Cermin untuk memantulkan cahaya alami agar dapat
menghasilkan digit yang terlihat di layar. Sedangkan LCD yang lebih modern dan
berkekuatan tinggi seperti TV, Laptop dan Ponsel Pintar menggunakan lampu
Backlight (Lampu Latar Belakang) untuk menerangi piksel kristal cair. Lampu
Backlight tersebut pada umumnya berbentuk persegi panjang atau strip lampu
Flourescent atau Light Emitting Diode (LED). Cahaya putih adalah cahaya terdiri
dari ratusan cahaya warna yang berbeda. Ratusan warna cahaya tersebut akan
terlihat apabila cahaya putih mengalami refleksi atau perubahan arah sinar.
Artinya, jika beda sudut refleksi maka berbeda pula warna cahaya yang
dihasilkan.
Backlight LCD yang berwarna putih akan memberikan pencahayaan
pada Kristal Cair atau Liquid Crystal. Kristal cair tersebut akan menyaring
backlight yang diterimanya dan merefleksikannya sesuai dengan sudut yang
diinginkan sehingga menghasilkan warna yang dibutuhkan. Sudut Kristal Cair akan
berubah apabila diberikan tegangan dengan nilai tertentu. Karena dengan
perubahan sudut dan penyaringan cahaya backlight pada kristal cair tersebut,
cahaya backlight yang sebelumnya adalah berwarna putih dapat berubah menjadi
berbagai warna.
Jika ingin menghasilkan warna putih, maka kristal cair akan
dibuka selebar-lebarnya sehingga cahaya backlight yang berwarna putih dapat
ditampilkan sepenuhnya. Sebaliknya, apabila ingin menampilkan warna hitam, maka
kristal cair harus ditutup serapat-rapatnya sehingga tidak adalah cahaya
backlight yang dapat menembus. Dan apabila menginginkan warna lainnya, maka
diperlukan pengaturan sudut refleksi kristal cair yang bersangkutan.
l.
Buzzer
Gambar 26. 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.
m. LED
Gambar 27. LED
Light Emitting Diode atau yang sering disingkat LED merupakan sebuah
komponen elektromagnetik yang dapat memancarkan cahaya monokromatik melalui
tegangan maju. LED terbuat dari bahan semi konduktor yang merupakan keluarga
dioda. LED dapat memancarkan berbagai warna, tergantung dari bahan
semikonduktor yang digunakan. LED juga dapat memancarkan cahaya inframerah yang
tak tampat, seperti pada remote TV. Cara kerja dari LED
hampir sama dengan keluarga dioda yang memiliki dua kutub, yaitu Kutub Positif
(P) dan Kutub Negatif (N). LED hanya akan memancarkan cahaya apabila dialiri
tegangan maju (bias foward) dari Anoda ke Katoda. LED sendiri terdiri atas
sebuah chip semikonduktor yang didopping, sehingga menciptakan junction antara
kutub P dan kutub N. Proses dopping dalam semikonduktor adalah proses untuk
menambahkan impurity / ketidakmampuan pada semikonduktr yang murni, sehingga
dapat emnghasilkan karakteristik kelistrikan yang diinginkan.
n. Arduino Uno
Arduino Uno adalah board mikrokontroler berbasis
ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat
digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal,
koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung
mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino
Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke
adaptor-DC atau baterai untuk menjalankannya. Uno berbeda dengan semua board
sebelumnya dalam hal koneksi USB-to-serial yaitu menggunakan fitur Atmega8U2
yang diprogram sebagai konverter USB-to-serial berbeda dengan board sebelumnya
yang menggunakan chip FTDI driver USB-to-serial.
Nama “Uno” berarti satu dalam bahasa
Italia, untuk menandai peluncuran Arduino 1.0. Uno dan versi 1.0 akan menjadi
versi referensi dari Arduino. Uno adalah yang terbaru dalam serangkaian board
USB Arduino, dan sebagai model referensi untuk platform Arduino, untuk
perbandingan dengan versi sebelumnya, lihat indeks board Arduino.
SPESIFIKASI |
|
Arduino
Uno |
|
Microcontroller |
ATmega328P |
Operating
Voltage |
5V |
Input
Voltage (recommended) |
7-12V |
Input
Voltage (limit) |
6-20V |
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 |
(ATmega328P) |
SRAM |
2 KB
(ATmega328P) |
EEPROM |
1 KB
(ATmega328P) |
Clock
Speed |
16 MHz |
LED_BUILTIN |
13 |
Length |
68.6 mm |
Width |
53.4 mm |
Weight |
|
Arduino Uno dapat diaktifkan melalui koneksi USB atau dengan
catu daya eksternal (otomatis). Daya Eksternal (non-USB) dapat berasal baik
dari AC-ke adaptor-DC atau baterai. Adaptor ini dapat dihubungkan dengan
menancapkan plug jack pusat-positif ukuran 2.1mm konektor POWER. Ujung kepala
dari baterai dapat dimasukkan kedalam Gnd dan Vin pin header dari konektor
POWER. Kisaran kebutuhan daya yang disarankan untuk board Uno adalah7 sampai
dengan 12 V, jika diberi daya kurang dari 7 V kemungkinan pin 5 V Uno dapat
beroperasi tetapi tidak stabil kemudian jika diberi daya lebih dari 12V,
regulator tegangan bisa panas dan dapat merusak board Uno.
Pin listrik adalah sebagai berikut:
a) VIN. Tegangan masukan kepada board
Arduino ketika itu menggunakan sumber daya eksternal (sebagai pengganti dari
5volt koneksi USB atau sumber daya lainnya).
b)
5V.
Catu daya digunakan untuk daya mikrokontroler dan komponen lainnya.
c)
3v3.
Sebuah pasokan 3,3volt dihasilkan oleh regulator on-board.
d)
GND.
Ground pin Input dan Output
Masing-masing dari 14 pin digital di Uno dapat digunakan
sebagai input atau output, dengan menggunakan fungsi pinMode (), digitalWrite
(), dan digitalRead (), beroperasi dengan daya 5 volt. Setiap
pin dapat memberikan atau menerima maksimum 40 mA dan memiliki internal pull-up
resistor (secara default terputus) dari 20-50 kOhms. Selain itu, beberapa pin
memiliki fungsi khusus:
e)
Serial: 0 (RX) dan 1 (TX). Digunakan untuk
menerima (RX) dan mengirimkan (TX) TTL data serial. Pin ini dihubungkan ke pin
yang berkaitan dengan chip Serial ATmega8U2 USB-to-TTL.
f)
Eksternal
menyela: 2 dan 3.
Pin ini dapat dikonfigurasi untuk memicu interrupt pada nilai yang rendah,
dengan batasan tepi naik atau turun, atau perubahan nilai. Lihat
(attachInterrupt) fungsi untuk rincian lebih lanjut.
g)
PWM: 3, 5, 6, 9, 10, dan 11.
Menyediakan output PWM 8-bit dengan fungsi analogWrite ().
h)
SPI: 10 (SS), 11 (Mosi), 12 (MISO), 13
(SCK). Pin ini mendukung komunikasi SPI menggunakan SPI library.
i)
LED: 13. Ada built-in LED terhubung ke
pin digital 13. Ketika pin bernilai nilai HIGH, LED on, ketika pin
bernilai LOW, LED off. Arduino
Uno memiliki 6 masukan analog, berlabel A0 sampai dengan A5, yang masing-masing
menyediakan 10 bit dengan resolusi (yaitu 1024 nilai yang berbeda). Selain itu,
beberapa pin memiliki fungsi khusus:
j)
I2C:
A4 (SDA) dan A5 (SCL).
Dukungan I2C (TWI) komunikasi menggunakan perpustakaan Wire.
k)
Aref. Tegangan referensi (0 sampai 5V
saja) untuk input analog. Digunakan dengan fungsi analogReference ().
l)
Reset. Bawa baris ini LOW untuk me-reset mikrokontroler.
Arduino Uno memiliki sejumlah fasilitas untuk berkomunikasi
dengan komputer, Arduino lain, atau mikrokontroler lainnya. Atmega328
menyediakan UART TTL (5V) untuk komunikasi serial, yang tersedia di pin digital
0 (RX) dan 1 (TX). Sebuah Atmega8U2 sebagai saluran komunikasi serial melalui
USB dan sebagai port virtual com untuk perangkat lunak pada komputer.
Firmware ’8 U2 menggunakan driver USB standar COM, dan tidak ada driver
eksternal yang diperlukan. Namun, pada Windows diperlukan, sebuah file inf.
Perangkat lunak Arduino terdapat monitor serial yang
memungkinkan digunakan memonitor data tekstual sederhana yang akan dikirim
komputer dari board Arduino. LED RX dan TX di papan tulis akan berkedip ketika
data sedang dikirim melalui chip USB-to-serial dengan koneksi USB ke komputer
(tetapi tidak untuk komunikasi serial pada pin 0 dan 1). Sebuah Software
Serial library memungkinkan untuk berkomunikasi secara serial pada salah
satu pin digital pada board Uno. Atmega328 juga mendukung I2C (TWI) dan
komunikasi SPI. Perangkat lunak Arduino termasuk perpustakaan Kawat untuk
menyederhanakan penggunaan bus I2C, lihat dokumentasi untuk rincian. Untuk
komunikasi SPI, menggunakan perpustakaan SPI.
o.
Potensiometer
Gambar 29. Potensiometer
Potensiometer adalah salah satu jenis Resistor yang
Nilai Resistansinya dapat diatur sesuai dengan kebutuhan Rangkaian Elektronika
ataupun kebutuhan pemakainya. Potensiometer merupakan Keluarga Resistor yang
tergolong dalam Kategori Variable Resistor. Secara struktur, Potensiometer
terdiri dari 3 kaki Terminal dengan sebuah shaft atau tuas yang berfungsi
sebagai pengaturnya. Gambar dibawah ini menunjukan Struktur Internal
Potensiometer beserta bentuk dan Simbolnya.
Pada dasarnya bagian-bagian penting dalam Komponen Potensiometer adalah:
·
Penyapu
atau disebut juga dengan Wiper
·
Element
Resistif
·
Terminal
Berdasarkan
bentuknya, Potensiometer dapat dibagi menjadi 3 macam, yaitu:
·
Potensiometer Slider, yaitu
Potensiometer yang nilai resistansinya dapat diatur dengan cara menggeserkan
Wiper-nya dari kiri ke kanan atau dari bawah ke atas sesuai dengan
pemasangannya. Biasanya menggunakan Ibu Jari untuk menggeser wiper-nya.
·
Potensiometer Rotary, yaitu
Potensiometer yang nilai resistansinya dapat diatur dengan cara memutarkan
Wiper-nya sepanjang lintasan yang melingkar. Biasanya menggunakan Ibu Jari
untuk memutar wiper tersebut. Oleh karena itu, Potensiometer Rotary sering
disebut juga dengan Thumbwheel Potentiometer.
·
Potensiometer Trimmer, yaitu
Potensiometer yang bentuknya kecil dan harus menggunakan alat khusus seperti
Obeng (screwdriver) untuk memutarnya. Potensiometer Trimmer ini biasanya
dipasangkan di PCB dan jarang dilakukan pengaturannya.
Gambar 30. Jenis-Jenis Potensiometer
Gambar Jenis-Jenis Potensometer
Sebuah Potensiometer (POT) terdiri dari sebuah elemen
resistif yang membentuk jalur (track) dengan terminal di kedua ujungnya.
Sedangkan terminal lainnya (biasanya berada di tengah) adalah Penyapu (Wiper)
yang dipergunakan untuk menentukan pergerakan pada jalur elemen resistif
(Resistive). Pergerakan Penyapu (Wiper) pada Jalur Elemen Resistif inilah yang
mengatur naik-turunnya Nilai Resistansi sebuah Potensiometer.
Elemen Resistif pada Potensiometer umumnya terbuat dari
bahan campuran Metal (logam) dan Keramik ataupun Bahan Karbon (Carbon).
Berdasarkan Track (jalur) elemen resistif-nya, Potensiometer dapat digolongkan
menjadi 2 jenis yaitu Potensiometer Linear (Linear Potentiometer) dan
Potensiometer Logaritmik (Logarithmic Potentiometer).
Dengan kemampuan yang dapat mengubah resistansi atau
hambatan, Potensiometer sering digunakan dalam rangkaian atau peralatan
Elektronika dengan fungsi-fungsi sebagai berikut:
·
Sebagai pengatur Volume pada berbagai
peralatan Audio/Video seperti Amplifier, Tape Mobil, DVD Player.
·
Sebagai Pengatur Tegangan pada
Rangkaian Power Supply
·
Sebagai Pembagi Tegangan
·
Aplikasi Switch TRIAC
·
Digunakan sebagai Joystick pada
Tranduser
·
Sebagai Pengendali Level Sinyal
p.
Bread Board
Gambar 31. Project Board
Project Board atau yang sering disebut sebagai BreadBoard adalah dasar konstruksi sebuah sirkuit elektronik dan merupakan prototipe dari suatu rangkaian elektronik. Di zaman modern istilah ini sering digunakan untuk merujuk pada jenis tertentu dari papan tempat merangkai komponen, dimana papan ini tidak memerlukan proses menyolder (langsung tancap). Karena papan ini solderless atau tidak memerlukan solder sehingga dapat digunakan kembali, dan dengan demikian dapat digunakan untuk prototipe sementara serta membantu dalam bereksperimen desain sirkuit elektronika. Berbagai sistem elektronik dapat di prototipekan dengan menggunakan breadboard, mulai dari sirkuit analog dan digital kecil sampai membuat unit pengolahan terpusat (CPU).
·
Master
#include <Wire.h>
#include
<TimeLib.h>
#include
<DS1307RTC.h>
#include
<LiquidCrystal.h>
#define RAIN A3
#define TRIG 10
#define ECHO 11
// ===== STATE
======
int rain_state = 0,
ultrasonic_state = 0; // rain -> 0 tidak hujan, 1 hujan, ultrasonic 0 ->
0 supply water, 1 optimal water, 2 exceed water
// LCD INIT
const int rs = 2,
en = 3, d4 = 4, d5 = 6, d6 = 7, d7 = 8;
LiquidCrystal
lcd(rs, en, d4, d5, d6, d7);
const int numRows =
2, numCols = 16;;
// set time
int set_hour = 5,
set_minute = 11, set_second = 5;
int
pakan_time_start[3] = {set_hour,set_minute, set_second};
int
pakan_time_stop[3] = {set_hour, set_minute, set_second + 10};
// ultrasonic
long duration;
int distance;
void setup() {
// pinMode(RAIN, INPUT);
ultrasonic_init();
lcd.begin(numCols, numRows);
// rtc_init();
Serial.begin(9600);
}
void loop() {
tmElements_t tm;
if (RTC.read(tm)) {
lcd.setCursor(0,0);
int rtc_hour = print2digits(tm.Hour);
int rtc_minute = print2digits(tm.Minute);
int rtc_second = print2digits(tm.Second);
lcd.print(rtc_hour);
lcd.print(':');
lcd.print(rtc_minute);
lcd.print(':');
lcd.print(rtc_second);
// ====== PAKAN =========
if (rtc_hour == pakan_time_start[0]
&& rtc_minute == pakan_time_start[1] && rtc_second == pakan_time_start[2])
{
Serial.print('1');
} else if (rtc_hour == pakan_time_stop[0]
&& rtc_minute == pakan_time_stop[1] && rtc_second == pakan_time_stop[2])
{
Serial.print('2');
}
} else {
if (RTC.chipPresent()) {
Serial.println("The DS1307 is
stopped. Please run the SetTime");
Serial.println("example to
initialize the time and begin running.");
Serial.println();
} else {
Serial.println("DS1307 read
error! Please check the
circuitry.");
Serial.println();
}
delay(9000);
}
digitalWrite(TRIG,LOW);
delayMicroseconds(2);
digitalWrite(TRIG,HIGH);
delayMicroseconds(10);
digitalWrite(TRIG,LOW);
duration = pulseIn(ECHO, HIGH);
distance = duration*0.034/2; // speed of
sound 340 km/s
lcd.setCursor(0,1);
lcd.print("Jarak : ");
lcd.print(distance);
lcd.print(" CM ");
if (distance > 10) {
if (ultrasonic_state != 0) {
Serial.write('3');
ultrasonic_state = 0;
}
}else if (distance <= 10 &&
distance >= 5) {
if (ultrasonic_state != 1) {
Serial.write('5');
ultrasonic_state = 1;
}
}else {
if (ultrasonic_state != 2) {
Serial.write('4');
ultrasonic_state = 2;
}
}
// RAIN SENSOR
if (analogRead(RAIN) < 400) {
if (rain_state != 1) {
Serial.write('6');
rain_state = 1;
}
}else {
if (rain_state != 0) {
Serial.write('7');
rain_state = 0;
}
}
Serial.println();
delay(500);
}
void ultrasonic_init()
{
pinMode(TRIG, OUTPUT);
pinMode(ECHO,INPUT);
}
int
print2digits(int number) {
if (number >= 0 && number < 10)
{
lcd.print('0');
}
return number;
}
·
Slave
// ===== SLAVE =======
#include <Servo.h>
#define STEPPER_PIN_1 2
#define STEPPER_PIN_2 3
#define STEPPER_PIN_3 4
#define STEPPER_PIN_4 5
#define SERVO_PIN 6
#define RELAY 7
#define LED_RED 10
#define LED_YELLOW 11
#define LED_GREEN 12
int step_number = 0, one_revolution = 2048, roof_state
= 1; // 0 -> roof open | 1 -> roof close
bool is_read_serial = true;
// SERVO
Servo servo;
void setup() {
//
stepper_init();
pinMode(RELAY,
OUTPUT);
led_init();
servo.attach(SERVO_PIN);
Serial.begin(9600);
}
void loop() {
if
(Serial.available() && is_read_serial) {
char
data_rcv = Serial.read();
switch
(data_rcv) {
case
'1':
control_pakan_start();
break;
case
'2':
control_pakan_stop();
break;
case
'3':
supply_water();
break;
case '4':
exceeded_water();
break;
case
'5':
optimal_water();
case
'6':
is_read_serial = false;
roof_close();
is_read_serial
= true;
break;
case '7':
is_read_serial = false;
roof_open();
is_read_serial = true;
break;
default:
break;
}
}
}
// ROOF SENSE BY RAIN SENSOR
void stepper_init() {
pinMode(STEPPER_PIN_1, OUTPUT);
pinMode(STEPPER_PIN_2, OUTPUT);
pinMode(STEPPER_PIN_3,
OUTPUT);
pinMode(STEPPER_PIN_4,
OUTPUT);
}
void oneStep(bool dir) {
if (dir) {
switch(step_number) {
case 0:
digitalWrite(STEPPER_PIN_1,
HIGH);
digitalWrite(STEPPER_PIN_2, LOW);
digitalWrite(STEPPER_PIN_3, LOW);
digitalWrite(STEPPER_PIN_4, LOW);
break;
case 1:
digitalWrite(STEPPER_PIN_1, LOW);
digitalWrite(STEPPER_PIN_2, HIGH);
digitalWrite(STEPPER_PIN_3, LOW);
digitalWrite(STEPPER_PIN_4, LOW);
break;
case 2:
digitalWrite(STEPPER_PIN_1,
LOW);
digitalWrite(STEPPER_PIN_2, LOW);
digitalWrite(STEPPER_PIN_3, HIGH);
digitalWrite(STEPPER_PIN_4, LOW);
break;
case 3:
digitalWrite(STEPPER_PIN_1,
LOW);
digitalWrite(STEPPER_PIN_2,
LOW);
digitalWrite(STEPPER_PIN_3, LOW);
digitalWrite(STEPPER_PIN_4, HIGH);
break;
}
}else {
switch(step_number)
{
case 0:
digitalWrite(STEPPER_PIN_1,
LOW);
digitalWrite(STEPPER_PIN_2,
LOW);
digitalWrite(STEPPER_PIN_3, LOW);
digitalWrite(STEPPER_PIN_4, HIGH);
break;
case 1:
digitalWrite(STEPPER_PIN_1,
LOW);
digitalWrite(STEPPER_PIN_2, LOW);
digitalWrite(STEPPER_PIN_3,
HIGH);
digitalWrite(STEPPER_PIN_4, LOW);
break;
case 2:
digitalWrite(STEPPER_PIN_1, LOW);
digitalWrite(STEPPER_PIN_2, HIGH);
digitalWrite(STEPPER_PIN_3, LOW);
digitalWrite(STEPPER_PIN_4,
LOW);
break;
case 3:
digitalWrite(STEPPER_PIN_1,
HIGH);
digitalWrite(STEPPER_PIN_2, LOW);
digitalWrite(STEPPER_PIN_3, LOW);
digitalWrite(STEPPER_PIN_4, LOW);
break;
}
}
step_number++;
if (step_number
> 3) {
step_number
= 0;
}
}
void roof_open() {
if (roof_state
== 0) {
return;
}
for (int i =
0; i < 2 * one_revolution; i++) {
oneStep(false);
delay(2);
}
step_number =
0;
roof_state =
0;
}
void roof_close() {
if (roof_state == 1) {
return;
}
for (int i =
0; i < 2 * one_revolution; i++) {
oneStep(true);
delay(2);
}
step_number =
0;
roof_state =
1; // set state to close
}
// PAKAN CONTROL SENSE BY RTC
void control_pakan_start() {
// open the caps
servo.write(180);
}
void control_pakan_stop() {
// close the
caps
servo.write(0);
}
// WATER CONTROL SENSE BY ULTRASONIC
void supply_water() {
digitalWrite(RELAY,LOW);
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_YELLOW,
LOW);
digitalWrite(LED_GREEN, LOW);
}
void exceeded_water() {
digitalWrite(RELAY,HIGH);
digitalWrite(LED_RED, LOW);
digitalWrite(LED_YELLOW, HIGH);
digitalWrite(LED_GREEN,
LOW);
}
void optimal_water() {
digitalWrite(RELAY, HIGH);
digitalWrite(LED_RED,
LOW);
digitalWrite(LED_YELLOW,
LOW);
digitalWrite(LED_GREEN,
HIGH);
}
void led_init() {
pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_YELLOW,
OUTPUT);
}
Input :
Pada
Rangkaian kontrol pakan kolam ikan diberikan input berupa sensor hujan, sensor RTC, dan sensor ultrasonik.
Masing-masing sensor diberikan tegangan masukan 5 volt, lalu setiap pin-pin pada
sensor dihubungkan sesuai dengan kofigurasi yang telah disediakan. Untuk sensor
RTC digunakan untuk pengatur waktu saat pemberian makan ikan, sensor ultrasonik
digunakan untuk menghitung ketinggian air kolam, dan rain sensor digunakan sebagai pendeteksi hujan yang
bertujuan untuk buka tutup atap kolam ikan
Proses:
Cara kerja alat ini yaitu sensor untrasonic yang dipasang menghadap air
kolam digunakan untuk menghitung ketinggian air kolam. Sensor ultrasonic digunakan
sebagai input pada Arduino master. Selain itu digunakan RTC yang menggunakan
komunikasi I2C untuk pengiriman data waktu ke arduino master yang digunakan
sebagai pengatur waktu saat pemberian makan ikan. Kemudian sensor hujan
digunakan sebagai pendeteksi hujan pada area kolam. Hasil pembacaan ketinggian
kolam ikan dan waktu ditampilkan di LCD yang dihubungkan dengan Arduino master.
Pada Arduino Slave dihubungkan dengan LED, relay untuk
mengatur pompa air, servo, dan motor stepper. LED digunakan sebagai indikator.
Apabila air pada kolam kurang dari 10 cm maka akan LED berwarna merah menyala
dan relay menyala. Apabila air sudah mencukupi ketinggian yang ditetapkan yaitu 10 – 15 cm maka LED hijau
menyala dan jika ketinggian air di atas 15 cm maka LED kuning menyala serta mematikan
relay.
Arduino master dan slave dihubungkan menggunakan komunikasi UART. Apabila ketinggian air belum cukup sesuai kapasitas kolam (dideteksi oleh ultrasonic) maka Arduino master mengirimkan data ke slave sehingga LED merah dan pompa air yang terhubung pada slave menyala. Apabila ketinggian air sudah sesuai dengan yang di programkan maka Arduino master mengirimkan data ke Arduino slave sehingga LED kuning menyala dan pompa air tidak menyala. Selanjutnya Ketika RTC menampilkan waktu yang sesuai dengan waktu pemberian makan ikan, maka Arduino master memberikan data ke Arduino slave sehingga servo berputar 180 derajat untuk membuka tutup kotak makanan ikan sehingga pemberian makan ikan dilakukan otomatis. Kemudian saat sensor hujan mendeteksi air hujan maka akan menyalakan motor stepper yang berputar sebanyak 512 langkah/step yang membuat atap tertutup dan sebaliknya jika sudah tidak terdeteksi air hujan maka motor stepper akan berputar berlawanan arah sebanyak 512 langkah/step untuk membuka atap kolam,
Berdasarkan
percobaan yang telah dilakukan maka didapatkan kesimpulan bahwa dengan menggunakan
Sensor RTC,
Sensor Ultrasonik
dan Rain Sensor serta arduino dan komponen
pendukung lainnya melalui komunikasi I2C dan UART yang merupakan komunikasi serial dimana sudah
dapat didesain untuk kontrol pakan kolam ikan yang sangat berguna dan mempermudah
bagi pemilik kolam ikan untuk merawat ikan dan mengontrol
kebersihan kolam ikan.
- Download video Klik Disini
- Download File Proteus Klik Disini
- Download HTML Klik Disini
- Download program master Klik Disini
- Download program slave Klik Disini
- Download datasheet resistor Klik Disini
- Download datasheet LED Klik Disini
- Download datasheet potensiometer Klik Disini
- Download datasheet arduino uno Klik Disini
- Download datasheet sensor RTC Klik Disini
- Download datasheet sensor ultrasonik Klik Disini
- Download datasheet Rain sensor Klik Disini
- Download datasheet motor servo Klik Disini
- Download datasheet LCD Klik Disini
- Download library arduino uno Klik Disini
- Download library Rain sensor Klik Disini
- Download library sensor RTC Klik Disini
- Download library sensor ultrasonik Klik Disini
Tidak ada komentar:
Posting Komentar