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