Aplikasi Arduino Kontrol Garasi dengan HCSR-04

1. Tujuan [Kembali]
Alat yang dibuat bertujuan untuk memudahkan pengendara memasukkan kendaraan ke garasi dengan menggunakan pintu garasi otomatis.
2. Komponen [Kembali] 
  • Arduino Uno
  • Sensor Ultrasonic
  • Motor dc
  • LCD
  • Resistor

3. Landasan Teori [kembali]

Arduino UNO



Arduino UNO adalah sebuah board mikrokontroler yang didasarkan pada ATmega328 . Arduino UNO mempunyai 14 pin digital input/output (6 di antaranya dapat digunakan sebagai output PWM), 6 input analog, sebuah osilator Kristal 16 MHz, sebuah koneksi USB, sebuah power jack, sebuah ICSP header, dan sebuat tombol reset. Arduino UNO memuat semua yang dibutuhkan untuk menunjang mikrokontroler, mudah menghubungkannya ke sebuah computer dengan sebuah kabel USB atau mensuplainya dengan sebuah adaptor AC ke DC atau menggunakan baterai untuk memulainya. 

Arduino Uno berbeda dari semua board Arduino sebelumnya, Arduino UNO tidak menggunakan chip driver FTDI USB-to-serial. Sebaliknya, fitur-fitur Atmega16U2 (Atmega8U2 sampai ke versi R2) diprogram sebagai sebuah pengubah USB ke serial. Revisi 2 dari board Arduino Uno mempunyai sebuah resistor yang menarik garis 8U2 HWB ke ground, yang membuatnya lebih mudah untuk diletakkan ke dalam DFU mode. Revisi 3 dari board Arduino UNO memiliki fitur-fitur baru sebagai berikut: 

  • Pinout 1.0: ditambah pin SDA dan SCL yang dekat dengan pin AREF dan dua pin baru lainnya yang diletakkan dekat dengan pin RESET, IOREF yang memungkinkan shield-shield untuk menyesuaikan tegangan yang disediakan dari board. Untuk ke depannya, shield akan dijadikan kompatibel/cocok dengan board yang menggunakan AVR yang beroperasi dengan tegangan 5V dan dengan Arduino Due yang beroperasi dengan tegangan 3.3V. Yang ke-dua ini merupakan sebuah pin yang tak terhubung, yang disediakan untuk tujuan kedepannya
  • Sirkit RESET yang lebih kuat
  • Atmega 16U2 menggantikan 8U2


Ringkasan 

MikrokontrolerATmega328
Tegangan pengoperasian5V
Tegangan input yang disarankan7-12V
Batas tegangan input6-20V
Jumlah pin I/O digital14 (6 di antaranya menyediakan keluaran PWM)
Jumlah pin input analog6
Arus DC tiap pin I/O40 mA
Arus DC untuk pin 3.3V50 mA
Memori Flash32 KB (ATmega328), sekitar 0.5 KB digunakan oleh bootloader
SRAM2 KB (ATmega328)
EEPROM1 KB (ATmega328)
Clock Speed16 MHz


Daya (Power) 
Arduino UNO dapat disuplai melalui koneksi USB atau dengan sebuah power suplai eksternal. Sumber daya dipilih secara otomatis. 

Suplai eksternal (non-USB) dapat diperoleh dari sebuah adaptor AC ke DC atau battery. Adaptor dapat dihubungkan dengan mencolokkan sebuah center-positive plug yang panjangnya 2,1 mm ke power jack dari board. Kabel lead dari sebuah battery dapat dimasukkan dalam header/kepala pin Ground (Gnd) dan pin Vin dari konektor POWER. 

Board Arduino UNO dapat beroperasi pada sebuah suplai eksternal 6 sampai 20 Volt. Jika disuplai dengan yang lebih kecil dari 7 V, kiranya pin 5 Volt mungkin mensuplai kecil dari 5 Volt dan board Arduino UNO bisa menjadi tidak stabil. Jika menggunakan suplai yang lebih dari besar 12 Volt, voltage regulator bisa kelebihan panas dan membahayakan board Arduino UNO. Range yang direkomendasikan adalah 7 sampai 12 Volt. 

Pin-pin dayanya adalah sebagai berikut: 

  • VIN. Tegangan input ke Arduino board ketika board sedang menggunakan sumber suplai eksternal (seperti 5 Volt dari koneksi USB atau sumber tenaga lainnya yang diatur). Kita dapat menyuplai tegangan melalui pin ini, atau jika penyuplaian tegangan melalui power jack, aksesnya melalui pin ini.
  • 5V. Pin output ini merupakan tegangan 5 Volt yang diatur dari regulator pada board. Board dapat disuplai dengan salah satu suplai dari DC power jack (7-12V), USB connector (5V), atau pin VIN dari board (7-12). Penyuplaian tegangan melalui pin 5V atau 3,3V membypass regulator, dan dapat membahayakan board. Hal itu tidak dianjurkan.
  • 3V3. Sebuah suplai 3,3 Volt dihasilkan oleh regulator pada board. Arus maksimum yang dapat dilalui adalah 50 mA.
  • GND. Pin ground.
Memori 
ATmega328 mempunyai 32 KB (dengan 0,5 KB digunakan untuk bootloader). ATmega 328 juga mempunyai 2 KB SRAM dan 1 KB EEPROM (yang dapat dibaca dan ditulis (RW/read and written) dengan EEPROM library). 

Input dan Output 
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. Selain itu, beberapa pin mempunyai fungsi-fungsi spesial: 

  • Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan memancarkan (TX) serial data TTL (Transistor-Transistor Logic). Kedua pin ini dihubungkan ke pin-pin yang sesuai dari chip Serial Atmega8U2 USB-ke-TTL.
  • External Interrupts: 2 dan 3. Pin-pin ini dapat dikonfigurasikan untuk dipicu sebuah interrupt (gangguan) pada sebuah nilai rendah, suatu kenaikan atau penurunan yang besar, atau suatu perubahan nilai. Lihat fungsi attachInterrupt() untuk lebih jelasnya.
  • PWM: 3, 5, 6, 9, 10, dan 11. Memberikan 8-bit PWM output dengan fungsi analogWrite().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport komunikasi SPI menggunakan SPI library.
  • LED: 13. Ada sebuah LED yang terpasang, terhubung ke pin digital 13. Ketika pin bernilai HIGH LED menyala, ketika pin bernilai LOW LED mati.
Arduino UNO mempunyai 6 input analog, diberi label A0 sampai A5, setiapnya memberikan 10 bit resolusi (contohnya 1024 nilai yang berbeda). Secara default, 6 input analog tersebut mengukur dari ground sampai tegangan 5 Volt, dengan itu mungkin untuk mengganti batas atas dari rangenya dengan menggunakan pin AREF dan fungsi analogReference(). Di sisi lain, beberapa pin mempunyai fungsi spesial: 
  • TWI: pin A4 atau SDA dan pin A5 atau SCL. Mensupport komunikasi TWI dengan menggunakan Wire library
Ada sepasang pin lainnya pada board: 
  • AREF. Referensi tegangan untuk input analog. Digunakan dengan analogReference().
  • Reset. Membawa saluran ini LOW untuk mereset mikrokontroler. Secara khusus, digunakan untuk menambahkan sebuah tombol reset untuk melindungi yang memblock sesuatu pada board.

Komunikasi 
Arduino UNO mempunyai sejumlah fasilitas untuk komunikasi dengan sebuah komputer, Arduino lainnya atau mikrokontroler lainnya. Atmega 328 menyediakan serial komunikasi UART TTL (5V), yang tersedia pada pin digital 0 (RX) dan 1 (TX). Sebuah Atmega 16U2 pada channel board serial komunikasinya melalui USB dan muncul sebagai sebuah port virtual ke software pada komputer. Firmware 16U2 menggunakan driver USB COM standar, dan tidak ada driver eksternal yang dibutuhkan. Bagaimanapun, pada Windows, sebuah file inf pasti dibutuhkan. Software Arduino mencakup sebuah serial monitor yang memungkinkan data tekstual terkirim ke dan dari board Arduino. LED RX dan TX pada board akan menyala ketika data sedang ditransmit melalui chip USB-to-serial dan koneksi USB pada komputer (tapi tidak untuk komunikasi serial pada pin 0 dan 1). 

Sebuah SoftwareSerial library memungkinkan untuk komunikasi serial pada beberapa pin digital UNO. 

Atmega328 juga mensupport komunikasi I2C (TWI) dan SPI. Software Arduino mencakup sebuah Wire library untuk memudahkan menggunakan bus I2C, lihat dokumentasi untuk lebih jelas. Untuk komunikasi SPI, gunakanSPI library

Prinsip Kerja Motor DC


Terdapat dua bagian utama pada sebuah Motor Listrik DC, yaitu Stator dan RotorStator adalah bagian motor yang tidak berputar, bagian yang statis ini terdiri dari rangka dan kumparan medan. Sedangkan Rotor adalah bagian yang berputar, bagian Rotor ini terdiri dari kumparan Jangkar. Dua bagian utama ini dapat dibagi lagi menjadi beberapa komponen penting yaitu diantaranya adalahYoke (kerangka magnet), Poles (kutub motor), Field winding (kumparan medan magnet), Armature Winding (Kumparan Jangkar), Commutator (Komutator) dan Brushes (kuas/sikat arang).

Pada prinsipnya motor listrik DC menggunakan fenomena elektromagnet untuk bergerak, ketika arus listrik diberikan ke kumparan, permukaan kumparan yang bersifat utara akan bergerak menghadap ke magnet yang berkutub selatan dan kumparan yang bersifat selatan akan bergerak menghadap ke utara magnet. Saat ini, karena kutub utara kumparan bertemu dengan kutub selatan magnet ataupun kutub selatan kumparan bertemu dengan kutub utara magnet maka akan terjadi saling tarik menarik yang menyebabkan pergerakan kumparan berhenti.




Sensor Ultrasonik HC-SR04


HC-SR04 merupakan sebuah sensor ultrasonik yang dapat membaca jarak kurang lebih 2 cm hingga 4 meter. Sensor ini sangat mudah digunakan pada mikrokontroler karna menggunakan empat buah pin yang terdapat pada sensor tersebut, yaitu dua buah pin suplay daya untuk sensor ultrasonik dan dua buah pin trigger dan echo sebagai input dan output data dari sensor ke arduino.

Sensor ultrasonic bekerja dengan cara memancarkan gelombang suara ultrasonik sesaat dan kemudian akan menghasilkan output berupa pulsa yang sesuai dengan waktu pantulan dari gelombang suara ultrasonik yang dipancarkan sesaat kemudian kembali menuju sensor.
Sensor ini merupakan sensor ultrasonik siap pakai, satu alat yang berfungsi sebagai pengirim, penerima, dan pengontrol gelombang ultrasonik. Alat ini bisa digunakan untuk mengukur jarak benda dari 2cm - 4m dengan akurasi 3mm. Alat ini memiliki 4 pin, pin Vcc, Gnd, Trigger, dan Echo. Pin Vcc untuk listrik positif dan Gnd untuk ground-nya. Pin Trigger untuk trigger keluarnya sinyal dari sensor dan pin Echo untuk menangkap sinyal pantul dari benda.


Gambar Sensor ultrasonik hc-sr04
Gambar sensor ultrasonik HC-SR04

Cara menggunakan alat ini yaitu: ketika kita memberikan tegangan positif pada pin Trigger selama 10uS, maka sensor akan mengirimkan 8 step sinyal ultrasonik dengan frekuensi 40kHz. Selanjutnya, sinyal akan diterima pada pin Echo. Untuk mengukur jarak benda yang memantulkan sinyal tersebut, maka selisih waktu ketika mengirim dan menerima sinyal digunakan untuk menentukan jarak benda tersebut. Rumus untuk menghitungnya sudah saya sampaikan di atas.

Berikut adalah visualisasi dari sinyal yang dikirimkan oleh sensor HC-SR04

Gambar pewaktu pada sensor hc-sr04
Gambar sistem pewaktu pada sensor HC-SR04
Spesifikasi HC-SR04

  • Tegangan sumber operasi 5.0 V
  • Konsumsi arus 15 mA
  • Frekuensi operasi 40 KHz
  • Minimum jarak 0.02 m (2 cm)
  • Maksimum jarak 4 m
  • Sudut pantul gelombang pengukuran 15 derajat
  • Minimum waktu penyulutan 10 mikrodetik dengan pulsa berlevel TTL
  • Pulsa deteksi berlevel TTL dengan durasi yang bersesuaian dengan jarak deteksi
  • Dimensi 45 x 20 x 15 mm

Setelah kita mengetahui sedikit informasi tentang sensor ultrasonik HC-SR04, kemudian kita akan memprogram arduino untuk mendeteksi jarak menggunakan sensor ultrasonik tersebut.


4. Prinsip Kerja Rangkaian [kembali] 


Prinsip kerja : pintu garasi akan terbuka jika ada kendaraan yang berada 5 meter dari garasi, kemudian pintu garasi akan menutup ketika kendaraan sudah masuk kedalam garasi.

5. Listing Program  [kembali] 
 #include <LiquidCrystal.h> //Masukkan library lcd
LiquidCrystal lcd(14,15,16,17,18,19); //deklarasikan pin lcd
#define echoPin 21 //deklarasikan pin sensor
#define trigPin 20 //deklarasikan pin sensor
#define in1 5 //deklarasikan pin motor driver
#define in2 4 //deklarasikan pin motor driver
#define in3 3 //deklarasikan pin motor driver
#define in4 2 //deklarasikan pin motor driver
long duration, jarak; //deklarasikan variabel duration dan jarak
void setup() {
  // put your setup code here, to run once:

  pinMode(trigPin, OUTPUT); // pin tersebut sebagai output
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  pinMode(echoPin, INPUT); //pin tersebut sebagai input
  Serial.begin(9600);
  lcd.begin(16,2); //lcd 16 kolom dan 2 baris
  lcd.setCursor(0,0); // set cursor
  lcd.print("jarak :"); //tampilkan jarak pada lcd
  delay(100);
  lcd.clear();
}

void loop() {
  // put your main code here, to run repeatedly:

//membaca sensor
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  jarak = (duration/2)/29.1;


//pernyataan kondisi yang diinginkan
  if (jarak <= 500)
  {
  
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    digitalWrite(in3, HIGH);
    digitalWrite(in4, LOW);
    lcd.setCursor(0,1);
    lcd.print(jarak);
    delay(1000);
    digitalWrite(in1, LOW);
    digitalWrite(in2, LOW);
    digitalWrite(in3, LOW);
    digitalWrite(in4, LOW);
    delay(1000);
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
    digitalWrite(in3, LOW);
    digitalWrite(in4, HIGH);
    delay(1000);
    digitalWrite(in1, LOW);
    digitalWrite(in2, LOW);
    digitalWrite(in3, LOW);
    digitalWrite(in4, LOW);
    delay(1000);

  }
  else
  {
    digitalWrite(in1, LOW);
    digitalWrite(in2, LOW);
    digitalWrite(in3, LOW);
    digitalWrite(in4, LOW);
    lcd.setCursor(0,1);
    lcd.print(jarak);
  }
}


6. Flowchart  [kembali] 









7. Video Simulasi  [kembali] 




8. Link Download  [kembali] 
Download Visual Desainer Disini
Download Video panduan Disini
Download Program Disini
Download Rangkaian proteus Disini
Download video alat Disini

Tidak ada komentar:

Posting Komentar