Modul 2 : Interrupt Arduino - LCD dengan LED dan Motor



RUMAH CERDAS PINTU PINTAR

1. Pendahuluan [back]

 Rumah Cerdas dengan Pintu Pintar Berbasis Sensor Getaran ,PIR Vibration, Sensor suhu

Dalam era teknologi yang terus berkembang pesat, konsep rumah cerdas semakin menjadi perhatian utama dalam pemenuhan kebutuhan sehari-hari. Rumah cerdas tidak hanya memperkenalkan kenyamanan, efisiensi, dan keamanan, tetapi juga mengintegrasikan berbagai teknologi terkini untuk memberikan pengalaman pengguna yang unik.Salah satu aspek kunci dalam rumah cerdas adalah pintu pintar, yang tidak hanya berfungsi sebagai gerbang masuk, tetapi juga sebagai elemen utama untuk menciptakan lingkungan yang cerdas dan terkoneksi. Dalam upaya untuk meningkatkan keamanan dan memberikan pengalaman hidup yang lebih baik, kita memperkenalkan konsep "Rumah Cerdas dengan Pintu Pintar Berbasis Sensor Getaran" yang menggunakan teknologi Sensor Getaran Passive Infrared (PIR Vibration).Sensor getaran PIR adalah sensor yang mampu mendeteksi perubahan getaran atau gerakan pada suatu objek. Ketika diterapkan pada pintu pintar, sensor ini dapat mengenali pola getaran yang terjadi saat ada interaksi dengan pintu, seperti ketukan atau dorongan. PIR Vibration menjadi pilihan yang cerdas karena dapat secara akurat membedakan antara stimulus yang dihasilkan oleh tangan manusia dan gangguan lainnya.Dengan memanfaatkan teknologi ini, rumah cerdas dapat memberikan respons cepat terhadap aktivitas pintu pintar, seperti membuka atau menutupnya. Selain itu, pengguna dapat mengonfigurasi sistem untuk memberikan pemberitahuan atau alarm keamanan jika terdeteksi aktivitas yang mencurigakan.Keuntungan utama dari konsep ini adalah peningkatan keamanan dan kenyamanan penghuni rumah. Pintu pintar berbasis PIR Vibration dapat menjadi bagian integral dari sistem keamanan rumah cerdas, memberikan solusi yang efektif dan cerdas untuk melindungi rumah dari potensi risiko.Dengan mengintegrasikan sensor getaran PIR ke dalam desain pintu pintar, kita dapat menciptakan rumah cerdas yang lebih responsif dan adaptif terhadap kebutuhan penghuninya. Oleh karena itu, konsep Rumah Cerdas dengan Pintu Pintar Berbasis Sensor Getaran menjanjikan inovasi yang signifikan dalam menghadirkan gaya hidup modern yang aman, nyaman, dan terkoneksi secara teknologi.

2. Tujuan [back] 

  • Memahami prinsip kerja PWM pada mikrokontroler 
  • Memahami prinsip kerja ADC pada mikrokontroler 
  • Menggunakan PWM dan ADC pada Arduino

  • 3. Alat dan Bahan  [back]


    a. Modul Arduino



    b. Motor DC


    c. Driver motor


    4. Dasar Teori [back]

    A. PWM

    Pulse Width Modulation PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi. Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).


    Duty Cycle = tON / ttotal 

    tON = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (highatau 1) 

    tOFF = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah(low atau 0) 

    ttotal = Waktu satu siklus atau penjumlahan antara tON dengan tOFF atau disebut jugadengan “periode satu gelombang” 

    Pada board Arduino Uno, pin yang bisa dimanfaatkan untuk PWM adalah pin yang diberi tanda tilde (~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Pin-pin tersebut merupakan pin yang bisa difungsikan untuk input analog atau output analog. Oleh sebab itu, jika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite(); PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255. Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 * 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik. 

    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 padaArduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin); 

    3. 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 : 

    a. BAGIAN-BAGIAN ARDUINO UNO 

    1. POWER USB 

    Digunakan untuk menghubungkan Papan Arduino dengan komputer lewat koneksi USB. 

    2. POWER JACK 

    Supply atau sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V. 

    3. Crystal Oscillator 

    Kristal ini digunakan sebagai layaknya detak jantung pada Arduino. Jumlah cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz. 

    4. Reset 

    Digunakan untuk mengulang program Arduino dari awal atau Reset. 

    5. Digital Pins I / O 

    Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika ( 0 atau 1 ). Pin berlabel " ~ " adalah pin-pin PWM ( Pulse Width Modulation ) yang dapat digunakan untuk menghasilkan PWM. 

    6. Analog Pins 

    Papan Arduino UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk membaca sinyal atau sensor analog seperti sensor jarak, suhu dsb, dan mengubahnya menjadi nilai digital. 

    7. LED Power 

    Indicator Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik denganbaik.

    b. BAGIAN-BAGIAN PENDUKUNG 

    1. RAM 

    RAM (Random Access Memory) adalah tempat penyimpanan sementara pada komputer yang isinya dapat diakses dalam waktu yang tetap, tidak memperdulikan letak data tersebut dalam memori atau acak. Secara umum ada 2 jenis RAM yaitu SRAM (Static Random Acces Memory) dan DRAM (Dynamic Random Acces Memory). 

    2. ROM

    ROM (Read-only Memory) adalah perangkat keras pada computer yang dapat menyimpandata secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM terdiri dariMask ROM, PROM, EPROM, EEPROM.1. Kondisi[Kembali]

    Bila suhu yang terbaca pada lcd menunnjukkan suhu > = 30 derajat celsius maka motor akan berputar ke kanan dan jika suhu yang terbaca pada lcd menunnjukkan suhu <30 derajat celsius maka motor akan berputar ke kiri.

    5. Percobaan  [back]

    a.) Prosedur  [back]

    b.) Hardware dan diagram blok [back]

    c.) Rangkaian Simulasi dan Prinsip Kerja  [back]

    Prinsip Kerja Rangkaian

    Rangkaian di atas merupakan rangkaian dengan kondisi jika suhu yang terbaca sama atau lebih dari 30, maka motor akan bergerak ke kanan, sedangkan jika suhu yang terbaca kurang dari 30, maka motor akan berputar ke kiri. Dan setiap besaran suhu yang didapat akan ditampilkan pada lcd.

    Untuk prinsip kerja rangkaian ini diawali dari power supply yang memberikan tegangan pada sensor lm35, kemudian keluaran/output dari sensor akan diteruskan pada pin input arduino, yaitu pin A0, Kemudian pada program arduino yang telah diinput telah diatur untuk masukan dari arduino serta keluarannya. Pin output yang digunakan pada arduino yaitu dari pin 2 - pin 7 yang terhubung pada input lcd, sedangkan pin 9 dan pin 10 arduino terhubung pada input driver motor l239d. 

    Jika suhu yang terbaca sama atau lebih besar dari 30, maka keluaran pada pin 9 dan input IN2 akan berlogika LOW, sedangkan untuk keluaran pin 10 dan IN1 akan berlogika HIGH. Kedua hal ini menyebabkan motor yang terhubung pada output OUT1 dan OUT2 akan bergerak ke kanan.  

    Jika suhu yang terbaca lebih kecil dari 30, maka keluaran pada pin 9 dan input IN2 akan berlogika HIGH, sedangkan untuk keluaran pin 10 dan IN1 akan berlogika LOW. Kedua hal ini menyebabkan motor yang terhubung pada output OUT1 dan OUT2 akan bergerak ke kiri.

    d.) Flowchart dan Listing Program  [back]

    -----------------------------------------------------------------------------------------------------------
    #include<LiquidCrystal.h>
    #define LM35 A0
    #define in1 10
    #define in2 9
    LiquidCrystal lcd(2,3,4,5,6,7);
    int nilaiSuhu;

    void setup(){
      pinMode(A0, INPUT);
      lcd.begin(16,2);
      pinMode(in1, OUTPUT);
      pinMode(in2, OUTPUT);
    }

    void loop(){
      nilaiSuhu=((5*analogRead(LM35)*100.00)/1024);

      if(nilaiSuhu >= 30){
        digitalWrite(in1,HIGH);
        digitalWrite(in2,LOW);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("LM35 Sensor Suhu");
        lcd.setCursor(0,1);
        lcd.print(nilaiSuhu);
        delay(100);
      }

      else{
        digitalWrite(in1,LOW);
        digitalWrite(in2,HIGH);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("LM35 Sensor Suhu");
        lcd.setCursor(0,1);
        lcd.print(nilaiSuhu);
        delay(100);
      }  
    }
    -----------------------------------------------------------------------------------------------------------

    e.) Vidio demo  [back]

    f.) Kondisi  [back]

    g.) Vidio Simulasi  [back]


     

    h.) Download File  [back]

    File Percobaan Proteus Klik disini

    File Program Arduino Klik disini

    Video Simulasi Klik disini

    Library Arduino Klik disini

    Datasheet Arduino Klik disini






     


    Komentar

    Postingan populer dari blog ini