ALAT PENGUSIR HAMA PADI BERBASIS ARDUINO NANO
Dosen Pengampu : Dr. Samuel Beta Kuntoardjo.,ING.TECH,M.T.,DR
Kelompok B12
Nurul Ayu Fiantya 3.32.20.1.20
Sufani 3.32.20.1.23
Masukan : Saklar Tombol
Pemroses : Arduino Nano
Luaran : Pengeras Suara Tweeter, LCD 16x2
LATAR BELAKANG
Indonesia merupakan salah satu negara agraris penghasil padi terbesar di dunia. Hal ini tentunya menjadikan Indonesia sebagai salah satu negara penghasil padi dengan varian dan kualitas yang bermacam-macam.
Namun, saat ini para petani padi banyak mengeluh karena hasil panen padi kurang maksimal. Hal tersebut dikarenakan serangan hama padi terutama burung dan tikus. Untuk mengatasi hama tersebut biasanya petani menggunakan racun tikus, pematik tikus, dan membuat orang-orangan sawah untuk mengusir burung. Namun hal tersebut tentu bahaya dan dapat berdampak pada ekosistem sawah.
Oleh karena itu, kami merancang Alat Pengusir Hama Padi Berbasis Arduino Nano. Alat ini menggunakan suara dengan frekuensi tertentu yang di proses menggunakan Arduino nano untuk mengusir burung dan tikus. Dengan adanya alat ini, dapat membantu meringankan beban petani untuk mengusir hama tanpa perlu menjaga sawah setiap saat apalagi ketika mendekati panen padi.
PPT Unduh Disini
Program Unduh Disini
#include <PWM.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define atas digitalRead(7)==0
#define bawah digitalRead(6)==0
#define ok digitalRead(8)==0
#define cancel digitalRead(5)==0
String Menu1 = "Pilih Frekuensi",
Menu2 = "CustomFrekuensi",
SubMenu1_1= "Burung",
SubMenu1_2= "Tikus";
unsigned int signalPin = 10,
kondisi,
pengali =1,
f =1;
int aktif_f = 2,
setpengali= 0,
data_sementara = 0,
setfrek = 0;
void setup() {
pinMode (5,INPUT_PULLUP);
pinMode (6,INPUT_PULLUP);
pinMode (7,INPUT_PULLUP);
pinMode (8,INPUT_PULLUP);
pinMode (signalPin,OUTPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
InitTimersSafe(); //Initialize timers without disturbing timer 0
lcd.setCursor (0,0);
lcd.print(" KELOMPOK 12 ");
lcd.setCursor (0,1);
lcd.print(" PROYEK MIKRO ");
delay(500);
lcd.clear();
}//setup
void loop() {
switch(kondisi) {
case 0:
lcd.setCursor(0,0); lcd.print(Menu1);
lcd.setCursor(0,1); lcd.print(Menu2);
lcd.setCursor(15,0); lcd.print("<");
if(bawah||atas){
lcd.clear();
kondisi = 1;
delay(200);
}//if
if(ok){
lcd.clear();
kondisi=2;
delay(200);
}//if
break;
case 1:
lcd.setCursor(0,0); lcd.print(Menu1);
lcd.setCursor(0,1); lcd.print(Menu2);
lcd.setCursor(15,1); lcd.print("<");
if (atas||bawah){
lcd.clear();
kondisi=0;
delay(200);
}//if
if(ok){
lcd.clear();
kondisi=4;
aktif_f=2;
delay(200);
}
break;
case 2:
if (ok)aktif_f=1;
if (aktif_f==1){
lcd.setCursor(0,0); lcd.print(SubMenu1_1);lcd.print("*");
lcd.setCursor(0,1); lcd.print(SubMenu1_2);lcd.print(" ");
lcd.setCursor(15,0); lcd.print("<");
f=6000;
}
else if(aktif_f==2) {
lcd.setCursor(0,0); lcd.print(SubMenu1_1);
lcd.setCursor(0,1); lcd.print(SubMenu1_2);
lcd.setCursor(15,0); lcd.print("<");
}
else{
lcd.setCursor(0,0); lcd.print(SubMenu1_1);lcd.print(" ");
lcd.setCursor(0,1); lcd.print(SubMenu1_2);lcd.print("*");
lcd.setCursor(15,0); lcd.print("<");
}
if (atas||bawah){
lcd.clear();
kondisi=3;
delay(200);
}
if (cancel) {
lcd.clear();
kondisi=0;
delay(200);
}
break;
case 3:
if (ok)aktif_f=0;
if (aktif_f==0){
lcd.setCursor(0,0); lcd.print(SubMenu1_1);lcd.print(" ");
lcd.setCursor(0,1); lcd.print(SubMenu1_2);lcd.print("*");
lcd.setCursor(15,1); lcd.print("<");
f=40000;
}
else if(aktif_f==2) {
lcd.setCursor(0,0); lcd.print(SubMenu1_1);
lcd.setCursor(0,1); lcd.print(SubMenu1_2);
lcd.setCursor(15,1); lcd.print("<");
}
else{
lcd.setCursor(0,0); lcd.print(SubMenu1_1);lcd.print("*");
lcd.setCursor(0,1); lcd.print(SubMenu1_2);lcd.print(" ");
lcd.setCursor(15,1); lcd.print("<");
}
if (atas||bawah){
lcd.clear();
kondisi=2;
delay(200);
}
if (cancel) {
lcd.clear();
kondisi=0;
delay(200);
}
break;
case 4:
lcd.setCursor(0,0); lcd.print("Pengali:"); lcd.print(pengali);
lcd.setCursor(0,1); lcd.print("f (Hz) :"); lcd.print(f);
lcd.setCursor(15,0); lcd.print("<");
if(ok){
setpengali = !setpengali;
}
delay(200);
if(setpengali==1){
if(atas) {
pengali *= 10;
delay(200);
}
if(bawah){
pengali *= 0.1;
delay(200);
}
if(cancel){
pengali = data_sementara;
setpengali = 0;
delay(200);
}
if (pengali > 10000) pengali = 10000;
if (pengali < 10)pengali = 1;
lcd.setCursor(0,0); lcd.print("Pengali:"); lcd.print(" ");
lcd.setCursor(0,0); lcd.print("Pengali:"); lcd.print(pengali);
}
else {
data_sementara = pengali;
if (atas||bawah){
lcd.clear();
kondisi=5;
delay(200);
}
if (cancel) {
lcd.clear();
kondisi=1;
delay(200);
}
}
break;
case 5:
lcd.setCursor(0,0); lcd.print("Pengali:");lcd.print(pengali);
lcd.setCursor(0,1); lcd.print("f (Hz) :");lcd.print(f);
lcd.setCursor(15,1); lcd.print("<");
if(ok)setfrek = !setfrek;
delay(200);
if(setfrek==1){
if(atas) {
f += pengali;
delay(200);
}
if(bawah){
f -= pengali;
delay(200);
if (f > 50000) f = 0;
}
if(cancel){
f = data_sementara;
setfrek = 0;
delay(200);
}
if (f > 50000) f = 50000;
lcd.setCursor(0,1); lcd.print("f (Hz) :"); lcd.print(" ");
lcd.setCursor(0,1); lcd.print("f (Hz) :");lcd.print(f);
}
else{
data_sementara = f;
if (atas||bawah){
lcd.clear();
kondisi=4;
delay(200);
}
if (cancel) {
lcd.clear();
kondisi=1;
delay(200);
}
}
break;
}// switch
pwmWriteHR(signalPin, 32768); //Set duty cycle to 50% by default -> for 16-bit 65536/2 = 32768
SetPinFrequencySafe(signalPin, f);
Serial.print ("Frekuensi : ");
Serial.println (f);
}//loop
VIDEO PROYEK

Komentar
Posting Komentar