SKRIPSI
SKRIPSI
SKRIPSI
Saya mengakui bahwa Skripsi ini adalah hasil kerja saya sendiri. Kecuali beberapa
kutipan dan ringkasan yang masing masing di sebutkan sumbernya.
ii
Penulis
iii
ABSTRAK
iv
ABSTRACT
PERSETUJUAN ........................................................................................................i
PERNYATAAN .........................................................................................................ii
KATA PENGANTAR ....................................................................................................... iii
ABSTRAK .......................................................................................................................... iv
DAFTAR ISI ..............................................................................................................vii
DAFTAR GAMBAR .................................................................................................viii
DAFTAR TABEL ......................................................................................................ix
BAB 1
PENDAHULUAN
1.1. Latar Belakang ....................................................................................................1
1.2. Rumusan Masalah ...............................................................................................3
1.3. Batasan Masalah..................................................................................................3
1.4. Tujuan Penelitian ................................................................................................4
1.5. Manfaat Penelitian ..............................................................................................4
BAB 2
TINJAUAN PUSTAKA
2.1. Sistem Pakan Otomatis .......................................................................................5
2.2. Catu Daya ............................................................................................................5
2.3. Arduino Uno .......................................................................................................8
2.4. Liquid Crystal Display (LCD) ............................................................................13
2.5. Push Button .........................................................................................................16
2.6. Modul GSM SIM800L ........................................................................................18
2.7. SMS GSM ...........................................................................................................21
2.8. RTC (Real Time Clock) ......................................................................................22
2.9. Sensor Ultra Sonik HC-SR04 .............................................................................24
2.10. Motor Servo ......................................................................................................25
vi
BAB 4
HASIL DAN PEMBAHASAN
4.1. Pengujian Rangkaian Mikrokontroller ................................................................35
4.2. Pengujian Rangkaian Power Supply ...................................................................36
4.3. Pengujian Rangkaian Modul GSM .....................................................................37
4.4. Pengujian Rangkaian LCD ..................................................................................38
4.5. Pengujian Rangkaian Motor Servo .....................................................................40
4.6. Pengujian Sensor Ultra Sonik .............................................................................41
4.7. Pengujian Keseluruhan........................................................................................42
4.8. Pengamatan Berat Pakan Yang Dikeluarkan ......................................................55
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan .................................................................................................................. 58
5.2. Keterbatasan Alat ................................................................................................59
5.3. Saran ............................................................................................................................. 59
DAFTAR PUSTAKA
LAMPIRAN
vii
viii
ix
BAB 1
PENDAHULUAN
Pada umumnya, pada tempat pemeliharaan ikan yang besar, pemberian pakan
ikan menggunakan sistem terjadwal. Seorang petugas meletakkan pakan ikan pada
tempat-tempat yang disediakan sesuai dengan jadwalnya, misalnya pada setiap pagi
atau setiap sore. Di dalam aquarium atau kolam yang berukuran besar terdapat
beberapa tempat pakan ikan. Persoalannya adalah jumlah pakan ikan yang habis pada
setiap tempat pakan ikan tidak sama pada jadwalnya. Ada tempat pakan ikan yang
habis bersih, ada pula yang tersisa di tempat yang lain. Adanya pakan ikan yang
tersisa di sebuah atau beberapa tempat merupakan sebuah pemborosan. Sedangkan di
tempat lain selalu habis, ini menunjukkan pada tempat itu jumlah pakan yang
diberikan belum cukup. Permasalahan ini dapat mendasari pembuatan sebuah sistem
monitoring pakan ikan yang bekerja secara otomatis berdasarkan waktu atau jadwal
pemberian pakan, air tidak mudah keruh karena terlalu banyak pakan yang diberikan,
selain itu juga sistem otomatisasi ini menggunakan pemberitahuan melalui sms,
ketika pakan telah diberikan dan ketika tampungan dalam keadaan kosong/habis.[7]
pekerjaan, antara lain pada bidang pemberian pakan. Pemberian pakan secara manual
banyak menguras tenaga, waktu, dan materi yang terbuang percuma.[8]
Oleh karena itu dirancanglah sebuah alat dengan teknologi yang sedang
berkembang pada saat ini, sehingga dapat diaplikasikan dalam kehidupan sehari-hari,
sederhana namun sangat efektif serta tidak menghabiskan dana terlalu banyak.
Dengan alat ini diharapkan dapat menjadi alternatif solusi bagi masyarakat yang hobi
memeliharah atau budidaya ikan tanpa ada perasaan kawatir ketika meninggalkan
rumah dalam waktu yang cukup lama.[9]
1. Alat ini dipasangkan pada akuarium dengan ukuran standar yaitu berbentuk balok
persegi panjang dengan ukuran 50 x 30 x 30 cm.
2. Bagaimana sistem kerja dari alat sistem monitoring pemberi pakan ikan otomatis
menggunakan sensor HC-SR04 berbasis arduino dengan sistem kendali SMS jika
dalam kondisi pakan hampir habis atau kosong.
1. Merancang dan membuat alat sistem monitoring pemberi pakan ikan otomatis
menggunakan sensor HC-SR04 berbasis arduino dengan sistem kendali SMS.
2. Mengetahui sistem kerja dari alat sistem monitoring pemberi pakan ikan otomatis
menggunakan sensor HC-SR04 berbasis arduino dengan sistem kendali SMS.
d. Untuk menguji mahasiswa dalam menerapkan teori yang telah diperoleh dibangku
kuliah kedalam praktik yang sesungghnya dimasyarakat.
f. Dapat memberikan manfaat bagi pemelihara atau para penjual ikan ketika harus
berpergian jauh yang memakan waktu yang cukup lama.
BAB 2
TINJAUAN PUSTAKA
utama maupun komponen pendukung sama - sama berperan penting dalam rangkaian
catu daya.[11]
Catu daya (Power Supply) adalah sebuah perangkat yang memasok listrik
energi untuk satu atau lebih beban listrik. Catu daya menjadi bagian yang penting
dalam elektonika yang berfungsi sebagai sumber tenaga listrik misalnya pada baterai
atau accu. Pada dasarnya power supply ini mempunyai konstruksi rangkaian yang
hampersama yaitu terdiri dari trafo, penyearah, dan penghalus tegangan. Istilah ini
paling sering diterapkan ke perangkat yang mengubah satu bentuk energi listrik yang
lain, meskipun juga dapat merujuk ke perangkat yang mengkonversi bentuk energi
lain (misalnya, mekanik, kimia, solar) menjadi energi listrik.[13]
Secara umum prinsip rangkaian catu daya terdiri atas komponen utama yaitu ;
transformator, dioda dan kondensator. Dalam pembuatan rangkaian catu daya selain
menggunakan komponen utama juga diperlukan komponen pendukung agar
rangkaian berfungsi dengan baik Ada dua sumber catu daya yaitu sumber AC dan
sumber DC. Sumber AC yaitu sumber tegangan bolak – balik, sedangkan sumber
tegangan DC merupakan sumber tegangan searah. Gambar 2.1 menunjukkan
perbedaan antara tegangan (a) DC dan (b) AC.[14]
1. Penurun Tegangan
2. Penyearah
Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input analog dan 14
pin digital input/output. Untuk 6 pin analog sendiri bisa juga difungsikan sebagai
output digital jika diperlukan output digital tambahan selain 14 pin yang sudah
tersedia. Untuk mengubah pin analog menjadi digital cukup mengubah konfigurasi
pin pada program. Dalam board kita bisa lihat pin digital diberi keterangan 0-13, jadi
untuk menggunakan pin analog menjadi output digital, pin analog yang pada
keterangan board 0-5 kita ubah menjadi pin 14-19. Dengan kata lain pin analog 0-5
berfungsi juga sebagi pin output digital 14-16. Sifat open source arduino juga banyak
memberikan keuntungan tersendiri untuk kita dalam menggunakan board ini, karena
dengan sifat open source komponen yang kita pakai tidak hanya tergantung pada satu
merek, namun memungkinkan kita bisa memakai semua komponen yang ada
dipasaran. Bahasa pemrograman arduino merupakan bahasa C yang sudah
disederhanakan syntax bahasa pemrogramannya sehingga mempermudah kita dalam
mempelajari dan mendalami mikrokontroller.[23]
1. Power
Arduino dapat diberikan power melalui koneksi USB atau power supply.
Powernya diselek secara otomatis. Power supply dapat menggunakan adaptor DC
atau baterai. Adaptor dapat dikoneksikan dengan mencolok jack adaptor pada
koneksi port input supply. Board arduino dapat dioperasikan menggunakan supply
dari luar sebesar 6 – 20 volt. Jika supply kurang dari 7V, kadangkala pin 5V akan
menyuplai kurang dari 5 volt dan board bisa menjadi tidak stabil. Jika menggunakan
lebih dari 12 V, tegangan di regulator bisa menjadi sangat panas dan menyebabkan
kerusakan pada board. Rekomendasi tegangan ada pada 7 sampai 12 volt. Penjelasan
pada pin power adalah sebagai berikut:
Vin
diregulasikan). Pengguna dapat memberikan tegangan melalui pin ini, atau jika
tegangan suplai menggunakan power jack, aksesnya menggunakan pin ini.
5V
3V
Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus maximumnya
adalah 50 mA.
Pin Ground
Memori
Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau output,
menggunakan fungsi pinMode(), digitalWrite(), dan digital Read(). Input/output
dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau menerima maximum
40 mA dan memiliki internal pull-up resistor (disconnected oleh default) 20-50
KOhm. Beberapa pin memiliki fungsi sebagai berikut:
Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirim
(TX) TTL data serial. Pin ini terhubung pada pin yang koresponding dari
USB ke TTL chip serial.
3. Komunikasi
4. Software Arduino
Sebuah kode program Arduino umumnya disebut dengan istilah sketch. Kata“sketch”
digunakan secara bergantian dengan “kode program” dimana keduanya memiliki arti
yang sama.
dengan elektroda transparan indium oksida dalam bentuk tampilan seven – segment
dan lapisan elektroda pada kaca belakang.[25]
Konfigurasi Pin LCD yang biasa dipakai dalam menampilkan suatu data dari
mikrokontroler berukuran 16 x 2 karakter. Konfigurasi pin LCD 16 x 2 karakter
adalah seperti pada gambar berikut :
Fungsi pin
Pin – pin pada komponen LCD 16 x 2 ditunjukkan pada penjelasan berikut ini :
VCC (Pin 1)
GND 0V (Pin 2)
VEE (Pin 3)
R/W (Pin 5)
Memori
a. DDRAM
b. CGRAM
c. CGROM
Push button adalah salah satu jenis saklar yang secara mendasar fungsinya
sama dengan semua saklar lainnya yaitu melakukan kontak nyala – padam (on – off)
dengan cara membuka dan menutup sirkuit listrik. Push button adalah saklar yang
beroperasi dengan cara ditekan, dan bias melakukan dua fungsi berbeda, yakni
menutup sirkuit bila ditekan (Normally Open), atau justru membuka sirkuit bila
ditekan (Normally Close). Jika tekanan dilepaskan atau terjadi tekanan berikutnya,
maka akan menormalkan kembali tombol ke posisi semula dan sirkuit kembali ke
status semula.[26]
Pada umumnya saklar push button adalah tipe saklar yang hanya kontak
sesaat saja saat ditekan dan setelah dilepas maka akan kembali lagi menjadi NO,
d. Mushroom button.
Alat ini befungsi sebagai pemberi sinyal masukan pada rangkaian listrik,
ketika/selama bagian knopnya ditekan maka alat ini akan bekerja sehingga kontak –
kontaknya akan terhubung untuk jenis normally open dan akan terlepas untuk jenis
normally close, dan sebaliknya ketika knopnya dilepas kembali maka kebalikan dari
sebelumnya, untuk membuktikannya pada terminalnya bisa digunakan alat ukur
tester/ohm meter. Pada umumnya pemakaian terminal jenis NO digunakan untuk
menghidupkan rangkaian dan terminal jenis NC digunakan untuk mematikan
rangkaian, namun semuanya tergantung dari kebutuhan. Prinsip kerja Push Button
adalah apabila dalam keadaan normal tidak ditekan maka kontak tidak berubah,
apabila ditekan maka kontak NC akan berfungsi sebagai stop dan kontak NO akan
berfungsi sebagai start.[27]
Pada awalnya sistem GSM ini dikembangkan untuk melayani sistem seluler
dan menjanjikan jangkauan network yang lebih luas seperti halnya penggunaan
ISDN. Pada perkembangaannya sistem GSM ini mengalami kemajuan pesat dan
menjadi standar yang paling populer diseluruh dunia untuk sistem seluler. GSM
pertama kali diperkenalkan di Eropa pada tahun 1991 kemudian pada akhir 1993,
beberapa negara non Amerika seperti Amerika Selatan, Asia dan Australia mulai
mengadopsi GSM yang akhirnya menghasilkan standar baru yang mirip yaitu DCS
1800, yang mendukung Personal Communiction Service (PCS) pada frekuensi 1,8
GHz sampai 2 GHz.[29]
5. TTL port serial untuk port serial, anda mampu menghubungkan secara langsung
ke mikrkontroller. Tidak memerlukan MAX232 karena konsumsi daya rendah :
1.5 mA (mode tidur).
6. Sinyal diatas papan akan menyala semua. Ia akan berkedip perlahan saat ada
sinyal, apabila berkedip sangat cepat maka tidak ada sinyal.
Adapun Datasheet dari setiap pin tersebut dapat dilihat pada Gambar 2.8.
dibawah ini :
Adapun spesifikasi modul GSM SIM 800L dapat dilihat di tabel 2.2 spesifikasi
modul GSM ialah sebagai berikut :
Antarmuka Serial
Seperti berbagai aplikasi web yang telah banyak menggunakan SMS (free
sms, pendaftaran, konfirmasi melalui SMS, aplikasi perkantoran), CMS, acara
pengundian di televisi. UEA melakukan komunikasi dengan SMS Gateway melalui
Internet menggunakan standard HTTP GET atau HTTPS.Telco SMSC
akanmenghantar pesan (SMS) tersebut kepada perusahaan SMS Gateway (sesuai
dengan nomor yang telah disewa) dengan menggunakanprotokol yang khusus.
Dan berdasarkan keyword yang telah dituliskan pada SMS, maka sistem SMS
Gateway akan menghantar SMS tersebut ke URL yang telah ditentukan. UEA dapat
menghantar SMS reply kepada pelanggan melalui SMS Gateway tersebut. Dan UEA
dapat menentukan besarnya biaya (charging) yang akan dikenakan kepada
pelanggan. Biasanya telah ditentukan regulasi biayanya (microcharging mechanism),
contoh Rp 0 (gratis); Rp 500,- ; Rp 1000,- ; Rp 2000,- dan seterusnya. Suatu
perusahaan SMS Gateway dapat mendukung untuk pesan yang berupa teks, unicode
character, dan juga smart messaging. Berikut gambar simulasi pengiriman dan
penerimaan SMS Gateway dapat dilihat pada Gambar 2.9.[30]
RTC adalah jenis pewaktu yang bekerja berdasarkan waktu yang sebenarnya
atau dengan kata lain berdasarkan waktu yang ada pada jam kita. Agar dapat
berfungsi, pewaktu ini membutuhkan dua parameter utama yang harus ditentukan,
yaitu pada saat mulai (start) dan pada saat berhenti (stop). Biasanya Real Time Clock
berbentuk suatu chip (IC) yang memiliki fungsi sebagai penyimpan waktu dan
tanggal. Dalam proses penyimpanannya RTC sendiri memiliki register yang dapat
menyimpan data detik, menit, jam, tanggal, bulan dan tahun. RTC ini memiliki 128
lokasi RAM yang terdiri dari 15 byte untuk data waktu serta kontrol, dan 113 byte
sebagai RAM umum.
RTC (Real Time Clock) biasa digunakan untuk pewaktu dengan osilator
terpisah. Komunikasi RTC dengan mikrokontroller adalah dengan I2C yaitu
antarmuka dua jalur bus yaitu SDA (Serial Data Line) dan SCL (Serial Clock Line).
Setiap perangkat yang terhubung dialamatkan secara software dengan alamat yang
unik. Pada jalur tersebut terdapat komunikasi master-slave diantara dua perangkat
yang terhubung dengan kecepatan transfer sebesar 100 Kbit/s dalam mode standar,
400 Kbit/s dalam mode cepat, dan 3,4 Kbit/s dalam mode kecepatan tinggi. Interupsi
adalah kondisi yang mengharuskan mikrokontroler menghentikan sementara
eksekusi program utama dan mengeksekusi rutin interrupt / Interrupt Service Routine
(ISR), setelah melaksanakan ISR, secara lengkap, maka mikrokontroler akan kembali
melanjutkan eksekusi program utama yang dihentikan.
Two-wire Serial Interface (TWI) atau secara umum dapat disebut I2C (Inter-
Integrated Circuit), adalah protokol yang memperbolehkan system designer untuk
menghubungkan hingga 128 devices berbeda menggunakan hanya TWI bi-
directional bus lines, satu untuk clock (SCL) dan satu lagi untuk data (SDA). Satu-
satunya external hardware yang dibutuhkan untuk mengimplementasikan bus-nya
adalah sebuah pull-up resistor untuk setiap jalur bus TWI. Semua device yang
terhubung ke bus memiliki alamatnya sendiri, dan mekanisme untuk memecahkan
permasalahan bus terdapat pada protokol TWI. Jenis komunikasi yang dilakukan
antar peralatan dengan menggunakan protokol TW mempunyai sifat serial
synchronous half duplex bi-directional, dimana data yang ditransmisikan dan
diterima hanya melalui satu jalur SDA line (bersifat serial), setiap penggunaan jalur
data bergantian antar perangkat (bersifat half duplex) dan data dapat ditransmisikan
dari dan ke sebuah perangkat (bersifat bi – directional).[31]
RTC DS3231 adalah chips jam elektronik yang dapat menunjukan waktu
dengan sangat akurat dan dapat menyimpan serta mengupdate data waktu secara real
time. RTC memiliki pasokan baterai sendiri untuk dapat menyimpan data waktu dan
tanggal jika arduino atau catu daya lain mati maka waktu dan tanggal dari RTC tetap
terupdate.[32]RTC DS3231 memiliki spesifikasi antara lain :
4. Menyediakan informasi berupa detik, menit, jam, tanggal, minggu, bulan, dan
tahun.
9. Berat : 10gr
Sensor adalah alat untuk mendeteksi atau mengukur suatu besaran fisis
berupa variasi mekanis, magnetis, panas, sinar dan kimia dengan diubah menjadi
tegangan dan arus listrik. Sensor itu sendiri terdiri dari transduser dengan atau tanpa
penguat/pengolah sinyal yang terbentuk dalam satu sistem pengindera.[5] Sensor
yang dapat mengirimkan gelombang suara dan memantau pantulannya sehingga
dapat mengetahui jarak antara sensor dengan objek.[32] Spesifikasi sensor HC-SR04
antara lain :
Motor servo adalah motor dengan sistem closed feedback dimana posisi
motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor
servo. Motor ini terdiri atas sebuah motor, serangkaian gear, potensiometer, dan
rangkaian kontrol. Potensiometer berfungsi menentukan batas sudut putaran servo.
Sementara sudut sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim
melalui kaki sinyal dari kabel motor. Dengan pulsa 1,5 ms pada periode selebar 2 ms,
sudut sumbu motor akan berada di posisi tengah. Semakin lebar pulsa OFF, semakin
besar gerakan sumbu kearah jarum jam. Sebaliknya, semakin kecil pulsa OFF,
semakin besar gerakan sumbu kearah yang berlawanan dengan jarum jam.
Motor servo umumnya hanya bergerak mencapai sudut tertentu dan tidak
kontinu seperti motor DC maupun motor stepper. Walaupun demikian, untuk
beberapa keperluan, motor servo dapat dimodifikasi agar bergerak kontinu. Pada
robot, motor ini sering digunakan untuk bagian kaki, lengan, atau bagian lain yang
mempunyai gerakan terbatas dan membutuhkan torsi cukup besar. Motor servo
adalah motor yang mampu bekerja dua arah (CW dan CCW). Kemudian, arah dan
BAB 3
PB1 LCD
Mikrokontroller
atmega328
mengurangi nilai. Semua data yang telah terbaca oleh mikrokontroller akan di
tampilkan di LCD dan di kirim ke handphone melalui SMS.
Rangkaian power supplay pada alat ini berfungsi sebagai sumber daya untuk
menghidupkaan sistem.
Pada alat ini, display yang digunakan adalah LCD (Liquid Crystal Display)
16 x 2. Untuk blok ini tidak ada komponen tambahan karena mikrokontroler dapat
memberi data langsung ke LCD, pada LCD Hitachi - M1632 sudah terdapat
driver untuk mengubah data ASCII output mikrokontroler menjadi tampilan
karakter. Pemasangan potensio sebesar 10 KΩ untuk mengatur kontras karakter
yang tampil. Gambar 3.5 berikut merupakan gambar rangkaian LCD yang
dihubungkan ke mikrokontroller.
Dari gambar 3.5 rangkaian ini terhubung LCD di hubungkan ke pin I2C
karena menggunakan mocul converter I2C ke karakter, modul tersebut lebih mudah
Pada alat ini, keluaran yang digunakan salah satunya adalah servo
untuk menumpahkan pakan ikan ke dalam akuarium. Jenis servo yang digunakan
adalah servo motor tipe standar hanya mampu berputar 90 derajat. Servo motor tipe
standar ini memiliki tiga kabel yakni PWM, Ground dan Vcc. Motor Servo berfungsi
sebagai perangkat yang akan menggerakan botol yang berisi pakan dan di putar oleh
servo agar pakan jatuh melewati lubang yang tersedia.
Rangkaian sensor ultra Sonik terhubung ke pin digital yaitu pin PB1 dan PB2,
sensor ultrasonik memiliki empat pin yaitu vcc, gnd, triger dan echo. 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.
Mulai
Inisialisasi
Read DS3231
ya
Masuk Ke mode
IF PB 1 == 0
setting
tidak
ya
IF sms == aktif
tidak
Servo Aktif
IF jam == set
ya
tidak
Tampil LCD
Selesai
BAB 4
PENGUJIAN RANGKAIAN
(a) (b)
Pada penelitian ini power supply berfungsi sebagai penyedia tegangan atau
sebagai sumber tegangan keseluruh sistem seperti mikrokontroller, Modul GSM,
Sensor dan sebagainya yang membutuhkan tegangan inputan atau yang termasuk
komponen aktif.
Pengujian sistem alat dilakukan dengan memasang SIM 800L dan rangkaian
secara keseluruhan. Pengujian dilakukan dengan memberikan perintah yang dikirim
dengan SMS melalui nomor GSM. Untuk memberikan perintah ke sistem, tidak
semua SMS mampu dikenali oleh sistem. Hanya SMS tertentu yang sudah
disesuaikan yang mampu dikenali oleh sistem. Mikrokontroler membaca isi SMS dan
mengenali isi SMS yang menggunakan karakter huruf besar atau yang sesuai dengan
kata kunci yang sesuai pada program. Ini karena pada program terdapat perintah
AT+CMGR yaitu perintah membaca isi SMS. Tampilan bentuk program dan
SMSnya adalah sebagai berikut :
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Sim800l.h>
#include <SoftwareSerial.h>
Sim800l Sim800l;
void setup(){
lcd.begin();
lcd.serCursor(0,0);
lcd.print("Mengirim SMS");
Sim800l.begin();
text="Testing Sms";
number="0812926451386";
error=Sim800l.sendSms(number,text);
void loop(){ }
(a) (b)
Gambar 4.3. a. Tampilan LCD Kirim SMS, b. Hasil SMS Terkirim ke Handphone
Testing SMS dilakukan untuk mengetahui modul GSM dapat bekerja dengan
baik, pada alat ini Modul GSM diaplikasikan sebagai pemberitahuan melalui SMS
ketika terdeteksi persediaan pakan pada wadah tersisa sedikit.
Bagian ini hanya terdiri dari sebuah LCD dot matriks 2 x 16 karakter
yang berfungsi sebagai tampilan dari beberapa keterangan. LCD dihubungkan
langsung ke pin A5 dan A4 dari Atmega328 yang berfungsi mengirimkan data
hasil pengolahan untuk ditampilkan dalam bentuk alfabet dan numerik pada
LCD. Berikut adalah program menampilkan kata pada LCD.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
void setup()
lcd.begin();
lcd.backlight();
lcd.print("Hello, world!");
void loop(){}
#include <Servo.h>
Servo atapbesar;
void setup() {
ser.attach(A0);
Serial.begin(9600);
void loop(){
ser.write(0);
delay(1000);
ser.write(180);
delay(1000);
Pengujian motor servo pada dasarnya untuk mengetahui keadaan dari motor
servo, dengan program di atas dan ketika di coba motor servo berputar 180 derajat,
maka motor servo dikatakan dalam keadaan baik. Pada penelitian ini motor servo
digunakan sebagai penarik pakan sehingga dapat menuangkan pakan ikan kedalam
akuarium.
Pada penelitian ini sensor ultra sonik bekerja dengan baik, sensor ultra sonik
di gunakan sebagai pendeteksi jumlah persediaan pakan pada wadah pakan, jika
pakan terdeteksi telah mendekati habis maka mikrokontroller akan menginstruksikan
modul GSM untuk mengirimkan SMS kepada user.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <GPRS_Shield_Arduino.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#define PIN_TX 6
#define PIN_RX 5
#define BAUDRATE 9600
#define PHONE_NUMBER "082369563550"
//#define PHONE_NUMBER "085261065610"
#define MESSAGE "Tes SMS"
GPRS gprs(PIN_TX,PIN_RX,BAUDRATE);//RX,TX,BaudRate
#include <EEPROM.h>
int m1 = 0;
int m2 = 10;
int m3 = 20;
int m4 = 30;
int m5 = 40;
int m6 = 50;
int m7 = 60;
int pompa = 0;
float waktu1;
float waktu;
char dat;
#include <Wire.h>
#include "RTClib.h"
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday",
"Tuesday", "Wednesday", "Thursday", "Friday",
"Saturday"};
int ss,mm,hh,d,m,y;
#include <Servo.h>
Servo myservo;
int pos = 0;
#define pb1 2
#define pb2 4
#define pb3 3
#define buzzer 8
char buff[50];
int state = 0;
void setup()
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
myservo.attach(A0);
myservo.write(175);
delay(1000);
myservo.write(10);
delay(1000);
myservo.write(175);
lcd.begin();
lcd.backlight();
for(int x=0; x<16; x++){
lcd.setCursor(0,0);
lcd.print(" Inisialisasi ");
lcd.setCursor(x,1);
lcd.print(".");
delay(1000);
}
Serial.begin(9600);
pinMode(pb1,INPUT_PULLUP);
pinMode(pb2,INPUT_PULLUP);
pinMode(pb3,INPUT_PULLUP);
lcd.clear();
rtc.begin();
pinMode(buzzer,OUTPUT);
gprs.checkPowerUp();
while(!gprs.init()) {
delay(1000);
lcd.println("Init failed!");
}
while(!gprs.isNetworkRegistered())
{
delay(1000);
lcd.println("No Network!");
}
//gprs.sendSMS(PHONE_NUMBER,MESSAGE);
//rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop()
{
while (state == 0){
awal:
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = 15 - ((duration*0.034/2));
if (distance < 0){distance = 0;}
Serial.println(distance);
hs = EEPROM.read(m1);
ms = EEPROM.read(m2);
hp = EEPROM.read(m3);
mp = EEPROM.read(m4);
hm = EEPROM.read(m5);
ml = EEPROM.read(m6);
interval = EEPROM.read(m7);
if (digitalRead(pb1) == 0){
lcd.clear();
state = 1;
delay(1000);
digitalWrite(buzzer,HIGH);delay(20);digitalWrite(buzzer,L
OW);
}
delay(100);
if (Serial.available()){
dat = Serial.read();
}
if (
hh == hp && mm == mp && ss < 2 ||
hh == hs && mm == ms && ss < 2 ||
hh == hm && mm == ml && ss < 2 ||
dat == 'A'){
gprs.sendSMS(PHONE_NUMBER,"Waktu pemberian pakan
ikan");
for (int x = 0; x < interval; x++){
myservo.write(10);
digitalWrite(buzzer,HIGH);
delay(10);
digitalWrite(buzzer,LOW);
delay(2000);
myservo.write(175);
digitalWrite(buzzer,HIGH);
delay(10);
digitalWrite(buzzer,LOW);
delay(2000);
}
dat = 'B';
}
lcd.setCursor(5,1);
sprintf(buff,"%02d:%02d",hp,mp);
lcd.print(buff);
delay(100);
lcd.setCursor(5,1);
lcd.print(" ");
delay(100);
if (digitalRead(pb1) == 0){
state = 2;
lcd.clear();
EEPROM.write(m1, hs);
EEPROM.write(m2, ms);
EEPROM.write(m3, hp);
EEPROM.write(m4, mp);
EEPROM.write(m5, hm);
EEPROM.write(m6, ml);
digitalWrite(buzzer,HIGH);delay(20);digitalWrite(buzzer,L
OW);
}
else if (digitalRead(pb2) == 0){hp--
;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(buzzer,
LOW);}
else if (digitalRead(pb3) ==
0){hp++;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(
buzzer,LOW);}
if (hp>23) {hp=0;}
else if (hp<0) {hp=23;}
}
lcd.setCursor(5,1);
sprintf(buff,"%02d:%02d",hp,mp);
lcd.print(buff);
delay(100);
lcd.setCursor(8,1);
lcd.print(" ");
delay(100);
if (digitalRead(pb1) == 0){
state = 3;
lcd.clear();
EEPROM.write(m1, hs);
EEPROM.write(m2, ms);
EEPROM.write(m3, hp);
EEPROM.write(m4, mp);
EEPROM.write(m5, hm);
EEPROM.write(m6, ml);
digitalWrite(buzzer,HIGH);delay(20);digitalWrite(buzzer,L
OW);
}
else if (digitalRead(pb2) == 0){mp--
;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(buzzer,
LOW);}
else if (digitalRead(pb3) ==
0){mp++;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(
buzzer,LOW);}
if (mp>59) {mp=0;}
else if (mp<0) {mp=59;}
lcd.setCursor(5,1);
sprintf(buff,"%02d:%02d",hs,ms);
lcd.print(buff);
delay(100);
lcd.setCursor(5,1);
lcd.print(" ");
delay(100);
if (digitalRead(pb1) == 0){
state = 4;
lcd.clear();
EEPROM.write(m1, hs);
EEPROM.write(m2, ms);
EEPROM.write(m3, hp);
EEPROM.write(m4, mp);
EEPROM.write(m5, hm);
EEPROM.write(m6, ml);
digitalWrite(buzzer,HIGH);delay(20);digitalWrite(buzzer,L
OW);
}
else if (digitalRead(pb2) == 0){hs--
;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(buzzer,
LOW);}
else if (digitalRead(pb3) ==
0){hs++;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(
buzzer,LOW);}
if (hs>23) {hs=0;}
else if (hs<0) {hs=23;}
}
lcd.setCursor(5,1);
sprintf(buff,"%02d:%02d",hs,ms);
lcd.print(buff);
delay(100);
lcd.setCursor(8,1);
lcd.print(" ");
delay(100);
if (digitalRead(pb1) == 0){
state = 5;
lcd.clear();
EEPROM.write(m1, hs);
EEPROM.write(m2, ms);
EEPROM.write(m3, hp);
EEPROM.write(m4, mp);
EEPROM.write(m5, hm);
EEPROM.write(m6, ml);
digitalWrite(buzzer,HIGH);delay(20);digitalWrite(buzzer,L
OW);
}
else if (digitalRead(pb2) == 0){ms--
;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(buzzer,
LOW);}
else if (digitalRead(pb3) ==
0){ms++;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(
buzzer,LOW);}
if (ms>59) {ms=0;}
else if (ms<0) {ms=59;}
}
lcd.setCursor(5,1);
sprintf(buff,"%02d:%02d",hm,ml);
lcd.print(buff);
delay(100);
lcd.setCursor(5,1);
lcd.print(" ");
delay(100);
if (digitalRead(pb1) == 0){
state = 6;
lcd.clear();
EEPROM.write(m1, hs);
EEPROM.write(m2, ms);
EEPROM.write(m3, hp);
EEPROM.write(m4, mp);
EEPROM.write(m5, hm);
EEPROM.write(m6, ml);
digitalWrite(buzzer,HIGH);delay(20);digitalWrite(buzzer,L
OW);
}
else if (digitalRead(pb2) == 0){hm--
;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(buzzer,
LOW);}
else if (digitalRead(pb3) ==
0){hm++;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(
buzzer,LOW);}
if (hm>23) {hm=0;}
else if (hm<0) {hm=23;}
}
lcd.setCursor(5,1);
sprintf(buff,"%02d:%02d",hm,ml);
lcd.print(buff);
delay(100);
lcd.setCursor(8,1);
lcd.print(" ");
delay(100);
if (digitalRead(pb1) == 0){
state = 7;
lcd.clear();
EEPROM.write(m1, hs);
EEPROM.write(m2, ms);
EEPROM.write(m3, hp);
EEPROM.write(m4, mp);
EEPROM.write(m5, hm);
EEPROM.write(m6, ml);
digitalWrite(buzzer,HIGH);delay(20);digitalWrite(buzzer,L
OW);
}
else if (digitalRead(pb2) == 0){ml--
;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(buzzer,
LOW);}
else if (digitalRead(pb3) ==
0){ml++;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(
buzzer,LOW);}
if (ml>59) {ml=0;}
else if (ml<0) {ml=59;}
}
lcd.setCursor(4,1);
sprintf(buff,"%02d kali ",interval);
lcd.print(buff);
delay(100);
lcd.setCursor(4,1);
lcd.print(" ");
delay(100);
if (digitalRead(pb1) == 0){
state = 0;
lcd.clear();
EEPROM.write(m1, hs);
EEPROM.write(m2, ms);
EEPROM.write(m3, hp);
EEPROM.write(m4, mp);
EEPROM.write(m5, hm);
EEPROM.write(m6, ml);
EEPROM.write(m7, interval);
digitalWrite(buzzer,HIGH);delay(20);digitalWrite(buzzer,L
OW);
delay(2000);
}
else if (digitalRead(pb2) == 0){interval--
;digitalWrite(buzzer,HIGH);delay(10);digitalWrite(buzzer,
LOW);}
else if (digitalRead(pb3) ==
0){interval++;digitalWrite(buzzer,HIGH);delay(10);digital
Write(buzzer,LOW);}
if (interval>20) {interval=0;}
else if (interval<0) {interval=20;}
}
Waktu Selisih
No. Percobaan Waktu Alat
Sesungguhnya Waktu
Tabel 4.2. Pengujian Berat Pakan Yang Dikeluarkan Dengan Waktu Buka Solenoid
500 ms
1 1,46
2 1,56
3 1,66
4 1,65
5 1,67
Tabel 4.3. Pengujian Berat Pakan Yang Dikeluarkan Dengan Waktu Buka Solenoid
1000 ms
Tabel 4.4. Pengujian Berat Pakan Yang Dikeluarkan Dengan Waktu Buka Solenoid
1500 ms
a. Berat Pakan Yang Dikeluarkan Dengan Waktu Buka Motor Servo 500 ms
Hasil rata – rata berat pakan dengan waktu buka motor servo 500 ms yaitu :
( )
Dengan berat pakan 1,46 =
( )
Dengan berat pakan 1,56 =
( )
Dengan berat pakan 1,66 =
( )
Dengan berat pakan 1,65 =
( )
Dengan berat pakan 1,67 =
Persentase kesalahan diatas yaitu 8,75%, 2,5%, 3,75%, 3,1% dan 4,37%. Dari
hasil perhitungan tersebut didapatkan hasil rata-rata persentase kesalahan.
b. Berat Pakan Yang Dikeluarkan Dengan Waktu Buka Motor Servo 1000 ms
Hasil rata – rata berat pakan dengan waktu buka motor servo 1000 ms yaitu :
( )
Dengan berat pakan 4,84 =
( )
Dengan berat pakan 4,74 =
( )
Dengan berat pakan 4,83 =
( )
Dengan berat pakan 4,81 =
( )
Dengan berat pakan 4,86 =
Persentase kesalahan diatas yaitu 0,41%, 1,66%, 0,21%, 0,21% dan 0,83%. Dari
hasil perhitungan tersebut didapatkan hasil rata-rata persentase kesalahan.
c. Berat Pakan Yang Dikeluarkan Dengan Waktu Buka Motor Servo 1500 ms
Hasil rata – rata berat pakan dengan waktu buka motor servo 1500 ms yaitu :
( )
Dengan berat pakan 8,28 =
( )
Dengan berat pakan 8,42 =
( )
Dengan berat pakan 8,37 =
( )
Dengan berat pakan 8,36 =
( )
Dengan berat pakan 8,32 =
Persentase kesalahan diatas yaitu 0,84%, 0,84%, 0,24%, 0,12% dan 0,36%.
Dari hasil perhitungan tersebut didapatkan hasil rata – rata persentase kesalahan.
Hasil perhitungan diatas dapat membedakan berat pakan dalam tiga jenis
waktu buka pada motor servo. Pertama pada waktu buka motor servo 500 ms, berat
pakan yang dikeluarkan rata-rata yaitu sebanyak 1,6 gram dengan persentse
kesalahan rata – rata sebesar 4,49%. Kedua pada waktu buka motor servo 1000 ms,
berat pakan yang dikeluarkan rata – rata yaitu sebanayak 4,82 gram dengan
persentase kesalahan rata – rata sebesar 0,66%. Dan ketiga pada waktu buka motor
servo 1500 ms, berat pakan yang dikeluarkan rata – rata yaitu sebanayak 8,35 gram
dengan persentase kesalahan sebesar 0,48%.
BAB 5
5.1. Kesimpulan
5.2. Saran
DAFTAR PUSTAKA
[9] Y. S. Sili, “Rancang Bangun Alat Pemberian Pakan Ikan Koki Otomatis Pada
Aquarium Berbasis Mikrokontroler AT89S52,” Ranc. Bangun Alat Pemberian
Pakan Ikan Koki Otomatis Pada Aquarium Berbas. Mikrokontroler AT89S52.
[26] N. Iin, “Dasar Teori,” Sifat- Sifat Fluida, no. 1, pp. 5–45, 2013.
[27] S. Surabaya, B. A. B. Iii, and L. Teori, “BAB III LANDASAN TEORI 3.1.
[28] P. INC and K. Specifications, “4x4 Matrix Membrane Keypad (# 27899 ),” no.
916, pp. 1–5, 2011.