Kamis, 13 Juni 2024

MODUL 4 MIKRO

 




    1. Pendahuluan   [Kembali]

    Keamanan kendaraan, khususnya mobil, menjadi salah satu aspek penting yang perlu mendapat perhatian serius. Peningkatan angka pencurian mobil dan insiden terkait keamanan lainnya membuat pemilik kendaraan merasa was-was dan mencari solusi yang lebih aman dan efektif. Teknologi keamanan konvensional, seperti alarm biasa, kunci kemudi, dan sistem pelacakan GPS, meskipun cukup membantu, masih memiliki keterbatasan dalam mendeteksi berbagai jenis ancaman secara real-time.

    Oleh karena itu, diperlukan sistem keamanan yang lebih canggih dan terintegrasi yang mampu memberikan perlindungan komprehensif. Dengan perkembangan teknologi sensor dan mikroprosesor, kini memungkinkan untuk mengembangkan sistem keamanan yang lebih maju dengan menggunakan berbagai jenis sensor. Beberapa sensor yang dapat digunakan untuk meningkatkan keamanan mobil meliputi sensor ultrasonik, sensor getaran (vibration), sensor gas MQ7, sensor suhu LM35, dan sensor api (flame). Kombinasi dari berbagai sensor ini dapat mendeteksi berbagai jenis ancaman, seperti upaya pencurian, kebocoran gas, kebakaran, dan situasi darurat lainnya.


    2. Tujuan   [Kembali]

    1. Dapat merancang sebuah sistem sehingga rancangan dapat menjadi sebuah alat
    2. Dapat mengnkombinasikan berbagai sensor, akuator, dan display
    3. Dapat mengetahui sebuah sistem menggunakan mikrokontroler
3. Alat dan Bahan   [Kembali]

a.     Arduino uno

Gambar 1. Arduino uno

b.     Sensor Flame

Gambar 2. sensor flame

c.     Sensor ultrasonic

Gambar 3. Sensor ultrasonic

d.     Sensor MQ7


Gambar 4. Sensor MQ7

e.     Sensor Vibration

Gambar 5. Sensor vibration

f.      Sensor LM35

Gambar 6. Sensor LM35

g.     Motor servo

Gambar 7. motor servo

h.     Buzzer

Gambar 8. buzzer

i.      Kipas

Gambar 9. kipas

j.      Jumper

Gambar 10. jumper

k.     Batterai

Gambar 11. batterai

l.      LCD

Gambar 12. Lcd

m.   Breadboard

                                                                            Gambar 13. breadboard 

 
4. Dasar Teori  [Kembali]
 

1.     Arduino uno

Dapat dilihat pada Gambar 1, 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.

      Setiap 14 pin digital pada arduino uno dapat digunakan sebagai input dan output, menggunakan fungsi pinMode(), digitalwrite(), dan digitalRead(). Fungsi fungsi tersebut beroperasi di tegangan 5 volt, Setiap pin dapat memberikan atau menerima suatu arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara default) 20-50 kOhm.

Spesifikasi Arduino uno



Adapun block diagram mikrokontroler ATMega 328P dapat dilihat pada gambar berikut:

        Block diagram dapat digunakan untuk memudahkan / memahami bagaimana kinerja dari mikrokontroler ATMega 328P.

Pin-pin ATMega 328P: 

2.     Buzzer

Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hamper sama dengan loud speaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suaara. Buzzer biasa digunakan sebagai indicator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).

Spesifikasi buzzer

 

3.     Motor servo

Motor servo adalah sebuah motor DC dengan sistem umpan balik tertutup di mana posisi rotor-nya akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor ini terdiri dari sebuah motor DC, serangkaian gear, potensiometer, dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor servo.

Keunggulan dari penggunaan motor servo adalah :

a. Tidak bergetar dan tidak ber-resonansi saat beroperasi.

b. Daya yang dihasilkan sebanding dengan ukuran dan berat motor.

c. Penggunaan arus listik sebanding dengan beban yang diberikan.

d. Resolusi dan akurasi dapat diubah dengan hanya mengganti encoder yang dipakai.

e. Tidak berisik saat beroperasi dengan kecepatan tinggi

Spesifikasi motor servo

 

4.     Sensor ultrasonic

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).

Gambar diatas menampilkan cara kerja dari sensor ultrasonic. 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.

Spesifikasi sensor ultrasonic

Grafik jarak banding waktu sensor ultrasonic

Visualisasi sinyal dari sensor ultrasonic

 

5.     Sensor flame

 

Flame Sensor adalah komponen elektronika yang memiliki fungsi dapat mendeteksi nyala api dengan panjang gelombang 760nm – 1100nm. Sensor nyala api ini mempunyai sudut pembacaan 60 derajat, dan beroperasi pada suhu -25 derajat -85 derajat. Dan jarak pembacaan antara sensor dan objek yang dideteksi tidak boleh terlalu dekat, untuk menghindari kerusakan sensor.

Analog output (A0): Real-time sinyal tegangan output pada tahan panas. Dengan pin Analog Output ini kita bisa memperkirakan letak api karena pembacaan sensor ini yaitu 60 derajat.

Digital output (D0): Jika suhu mencapai batas tertentu, output akan tinggi dan rendah ambang sinyal disesuaikan melalui potensiometer.

Tegangan input untuk pin Analog adalah 5V dan jika menggunakan pin digital dapat menggunakan tegangan 3.3V.

Spesifikasi sensor flame

Grafik respon sensor flame

6.     Sensor vibration

Sensor getar yang digunakan adalah vibration sensor yang dibuat untuk keadaan umum. Spesifikasi yang membutuhkan tegangan masukan yang kecil membuat perangkat ini sangat sempurna digunakan untuk banyak aplikasi di otomotif dan industriindustri elektronik.

Berikut merupakan karakteristik sensor getar

a. Tegangan masukannya mulai dari 2V s/d 36V DC.

b. Kehilangan arus sangat kecil ketika tegangan kecil 0,4 mA.

c. Sensitivitasnya bisa diatur.

d. Rugi-rugi arus masuk ± 5 nA.

e. Rugi-rugi tegangan yang keluar ± 3 mV

 

7.     Sensor LM35

Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. 

karakteristik dari sensor LM35:

  • Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius.
  • Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC
  •  Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
  •  Bekerja pada tegangan 4 sampai 30 volt.
  •  Memiliki arus rendah yaitu kurang dari 60 µA.
  •  Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam.
  •  Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
  •  Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.

Grafik sensor LM35

 

8.     Sensor MQ7

Sensor MQ-7 adalah sebuah sensor gas CO (karbon monoksida) yang cukup mudah dalam menggunakannya, memiliki sensitivitas yang tinggi dan waktu respon yang cukup cepat. Sensor ini sangat cocok untuk mendeteksi gas CO dengan jangkauan mulai dari 20 sampai 2.000 ppm (Part Per Million). Pada sensor ini terdapat nilai resistansi sensor (Rs) yang dapat berubah bila mendeteksi gas dan juga sebuah pemanas yang digunakan sebagai pembersih sensor dari kontaminasi udara dari luar (Faroqi, Hadisantoso, Halim, & Sanjaya, 2016). Output yang dihasilkan sensor ini berupa sinyal analog dan membutuhkan tegangan direct current (DC) sebesar 5V. Sensor MQ-7 ini memiliki 6 pin, 4 pin yang digunakan untuk mengambil sinyal dan 2 pin digunakan untuk memberikan pemanasan material sensor, struktur dan konfigurasi sensor gas.

Spesifikasi sensor MQ7

Grafik respon sensor MQ7

 


    5. Prosedur   [Kembali]

    a. percobaan
        
    • Siapkan segala komponen yang di butuhkan
    • Susun rangkaian sesuai panduan
    • Input codingan arduino
    • Hidupkan rangkaian
    • Apabila tidak terjadi eror, maka rangkaian selesai dibuat

    b. Rangkaian Simulasi dan Prinsip Kerja [kembali]




        

    Arduino master bertanggung jawab untuk mengumpulkan data dari berbagai sensor. Sensor flame mendeteksi adanya api atau sumber panas yang tidak normal, sensor vibration mendeteksi getaran yang menunjukkan adanya benturan atau upaya pembobolan, sensor gas MQ7 mendeteksi keberadaan gas karbon monoksida, sensor suhu LM35 memantau suhu di dalam mobil, dan sensor ultrasonik mendeteksi pergerakan atau objek di sekitar mobil.

    Arduino master terus-menerus memonitor dan membaca data dari sensor-sensor ini. Ketika mendeteksi kondisi abnormal seperti api, getaran, kebocoran gas, suhu tinggi, atau pergerakan mencurigakan, Arduino master akan mengirimkan data atau sinyal ke Arduino slave melalui komunikasi UART.

    Arduino slave bertindak sebagai pengendali eksekusi tindakan berdasarkan data yang diterima dari master. Tindakan-tindakan ini meliputi mengaktifkan alarm suara melalui buzzer, menampilkan pesan peringatan di LCD, mengaktifkan kipas untuk menurunkan suhu.

    Dengan demikian, Arduino master bertugas sebagai pengumpul dan pemroses data dari sensor-sensor, sementara Arduino slave bertugas sebagai penerima data dan pengendali output atau tindakan yang harus diambil. Hal ini memungkinkan sistem untuk merespons secara cepat dan efektif terhadap berbagai ancaman yang terdeteksi, memberikan keamanan yang lebih komprehensif bagi kendaraan




    c. Flowchar dan Listening Program [kembali]
        
    MASTER



    SLAVE





    A.    Master

    // Kode untuk Arduino Master

    #define LM35 A0

    #define GAS_SENSOR 13

    #define FLAME_SENSOR 12

    #define VIBRATION_SENSOR 11

    #define TRIGGER_PIN 10

    #define ECHO_PIN 9

     

    void setup() {

      Serial.begin(9600);

      pinMode(GAS_SENSOR, INPUT);

      pinMode(FLAME_SENSOR, INPUT);

      pinMode(VIBRATION_SENSOR, INPUT);

      pinMode(TRIGGER_PIN, OUTPUT);

      pinMode(ECHO_PIN, INPUT);

    }

     

    void loop() {

      float suhu = analogRead(LM35);

      float voltage = suhu * (5.0 / 1023.0);  // Mengonversi nilai analog ke tegangan

      float temperature = voltage * 100.0;  // Mengonversi tegangan ke suhu (°C)

      if (temperature >= 39) {

        Serial.write('B'); // Menghidupkan motor pada pin 9 Slave

      }

     

      int gas = digitalRead(GAS_SENSOR);

      if (gas == HIGH) {

        Serial.write('A'); // Menghidupkan motor pada pin 11 Slave

      } else {

        Serial.write('C'); // Mengaktifkan pin 10 Slave

      }

     

      if (digitalRead(FLAME_SENSOR) == HIGH) {

        Serial.write('D'); // Menghidupkan buzzer pada pin 13 Slave

      }

     

      if (digitalRead(VIBRATION_SENSOR) == HIGH) {

        Serial.write('E'); // Menghidupkan buzzer pada pin 12 Slave

      }

     

      // Kode untuk sensor ultrasonik

      digitalWrite(TRIGGER_PIN, LOW);

      delayMicroseconds(2);

      digitalWrite(TRIGGER_PIN, HIGH);

      delayMicroseconds(10);

      digitalWrite(TRIGGER_PIN, LOW);

     

      long duration = pulseIn(ECHO_PIN, HIGH);

      int distance = duration * 0.034 / 2;

     

      if (distance < 200) { // Jika ada benda dalam jarak 200 cm

        Serial.write('F'); // Mengirimkan perintah ke Slave untuk menampilkan pesan

      }

      delay(100);

    }

     

     

     

    B.    Slave

    #include <Wire.h>

    #include <LiquidCrystal_I2C.h>

    #include <Servo.h>

     

    // Inisialisasi LCD I2C dengan alamat 0x27 dan ukuran 16x2

    LiquidCrystal_I2C lcd(0x27, 16, 2);

     

    Servo myservo; // Membuat objek servo

     

    int motorPin2 = 9;

    int ledPin = 10;

    int buzzerPin = 13;

    int buzzerPin2 = 12;

     

    // Variabel untuk menyimpan waktu terakhir sensor terpicu

    unsigned long lastTriggerTime = 0;

    const unsigned long clearDelay = 50000; // Waktu tunda untuk membersihkan LCD (dalam milidetik)

     

    void setup() {

      Serial.begin(9600);

      myservo.attach(11); // Menghubungkan servo ke pin 11

      pinMode(motorPin2, OUTPUT);

      pinMode(ledPin, OUTPUT);

      pinMode(buzzerPin, OUTPUT);

      pinMode(buzzerPin2, OUTPUT);

     

      // Inisialisasi LCD I2C

      lcd.init();

      lcd.backlight();

      // Menampilkan pesan pada LCD

      lcd.print("Hello");

    }

     

    void loop() {

      if (Serial.available()) {

        char command = Serial.read();

        switch (command) {

          case 'A':

            myservo.write(180); // Mengatur servo ke +90 derajat

            lcd.setCursor(0, 1); // Mengatur posisi kursor pada baris kedua

            lcd.print("Motor ON       "); // Menampilkan pesan pada LCD

            break;

          case 'B':

            digitalWrite(motorPin2, HIGH);

            lcd.setCursor(0, 1);

            lcd.print("Motor2 ON      ");

            break;

          case 'C':

            myservo.write(0);

            break;

          case 'D':

            digitalWrite(buzzerPin, HIGH);

            lcd.setCursor(0, 1);

            lcd.print("Buzzer ON      ");

            break;

          case 'E':

            digitalWrite(buzzerPin2, HIGH);

            lcd.setCursor(0, 1);

            lcd.print("Buzzer2 ON     ");

            break;

          case 'F':

            lcd.clear(); // Membersihkan LCD

            lcd.setCursor(0, 0); // Mengatur posisi kursor pada baris pertama

            lcd.print("Ada sesuatu"); // Menampilkan pesan pada baris pertama

            lcd.setCursor(0, 1); // Mengatur posisi kursor pada baris kedua

            lcd.print("di belakang"); // Menampilkan pesan pada baris kedua

            lastTriggerTime = millis(); // Memperbarui waktu terakhir sensor terpicu

            break;

        }

        delay(10);

        // Matikan semua output

        myservo.write(0); // Mengatur servo ke posisi 0 derajat

        digitalWrite(motorPin2, LOW);

        digitalWrite(ledPin, LOW);

        digitalWrite(buzzerPin, LOW);

        digitalWrite(buzzerPin2, LOW);

      }

     

      // Cek apakah sudah lewat waktu tunda sejak sensor terakhir terpicu

      if (millis() - lastTriggerTime >= clearDelay) {

        lcd.clear(); // Membersihkan LCD jika sudah lewat waktu tunda

        lastTriggerTime = millis(); // Reset waktu terakhir sensor terpicu

      }

    }

     

     






        e. Video Simulasi  [Kembali]

simulasi




vidio demo











        f. Download File  [Kembali]
    • Download HTML disini
      Download rangkaian simulasi disini
      Download kode program Master disini
      Download kode program Slave disini
      Download vidio simulasi disini
      Download Vidio Demo disini


      Download datasheet Arduino uno disini
      Download datasheet Buzzer disini
      Download datasheet Flame disini
      Download datasheet LM35 disini
      Download datasheet MQ-7 disini
      Download datasheet Ultrasonic disini
      Download datasheet Vibration disini

      Download library Arduino Uno disini
      Download library Flame disini
      Download library L35M disini
      Download library MQ-7 disini
      Download library Ultrasonic disini
      Download library Vibration disini

Tidak ada komentar:

Posting Komentar