Tugas UAS (Pintu Garasi Otomatis)
1. Tujuan [Kembali]
- Mengetahui prinsip kerja dari sensor ultrasonik dan motor dc
- Mengetahui pengaplikasian sensor ultrasonik dan motor dc di kehidupan sehari-hari
- Memenuhi tugas UAS dengan membuat alat gerbang 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
Mikrokontroler | ATmega328 |
---|---|
Tegangan pengoperasian | 5V |
Tegangan input yang disarankan | 7-12V |
Batas tegangan input | 6-20V |
Jumlah pin I/O digital | 14 (6 di antaranya menyediakan keluaran PWM) |
Jumlah pin input analog | 6 |
Arus DC tiap pin I/O | 40 mA |
Arus DC untuk pin 3.3V | 50 mA |
Memori Flash | 32 KB (ATmega328), sekitar 0.5 KB digunakan oleh bootloader |
SRAM | 2 KB (ATmega328) |
EEPROM | 1 KB (ATmega328) |
Clock Speed | 16 MHz |
- 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.
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.
Prinsip Kerja Motor DC
Terdapat dua bagian utama pada sebuah Motor Listrik DC, yaitu Stator dan Rotor. Stator 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 |
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 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 :
Sensor ultrasonic aktif bekrja ketika ketika mendapat input tegangan melalui pin vcc, lalu Arduino memberi perintah untuk memancarkan gelombang ultrasonic sebangyak 8 step sebesar 40kHz melalui pin triger,
Gelombang ultrasonic dipancarkan oleh transmiter ultrasonic, dan gelombang yang dipantulkan ditangkan oleh receiver ultrasonic. Data yang didapat oleh sensor ultrasonic melalui output echo diteruskan ke Arduino, sehingga data diproses oleh Arduino.
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); // pin tersebut sebagai output
pinMode(in2, OUTPUT); // pin tersebut sebagai output
pinMode(in3, OUTPUT); // pin tersebut sebagai output
pinMode(in4, OUTPUT); // pin tersebut sebagai 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); // delay 100 ms
lcd.clear(); // bersihkan 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); // pin tersebut sebagai output
pinMode(in2, OUTPUT); // pin tersebut sebagai output
pinMode(in3, OUTPUT); // pin tersebut sebagai output
pinMode(in4, OUTPUT); // pin tersebut sebagai 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); // delay 100 ms
lcd.clear(); // bersihkan lcd
}
void loop() {
// put your main code here, to run repeatedly:
// put your main code here, to run repeatedly:
//mengatur sensor ultrasonik
digitalWrite(trigPin, LOW); //mengatur pin trigger low
delayMicroseconds(2); //tunggu 2 mikrosekon
digitalWrite(trigPin, HIGH); //mengatur pin trigger high
delayMicroseconds(10); // tunggu 10 mikrosekon
digitalWrite(trigPin, LOW); //mengatur pin trigger low
duration = pulseIn(echoPin, HIGH); //kalibrasi sensor
jarak = (duration/2)/29.1; //nilai jarak
digitalWrite(trigPin, LOW); //mengatur pin trigger low
delayMicroseconds(2); //tunggu 2 mikrosekon
digitalWrite(trigPin, HIGH); //mengatur pin trigger high
delayMicroseconds(10); // tunggu 10 mikrosekon
digitalWrite(trigPin, LOW); //mengatur pin trigger low
duration = pulseIn(echoPin, HIGH); //kalibrasi sensor
jarak = (duration/2)/29.1; //nilai jarak
//pernyataan kondisi yang diinginkan
if (jarak <= 500)
{
digitalWrite(in1, HIGH); //mengatur pin in1 high
digitalWrite(in2, LOW); //mengatur pin in2 low
digitalWrite(in3, HIGH); //mengatur pin in3 high
digitalWrite(in4, LOW); //mengatur pin in4 low
lcd.setCursor(0,1); //tampilkan tulisan pada baris 2
lcd.print(jarak); //tampilkan jarak
delay(1000); //tunggu 1 detik
digitalWrite(in1, LOW); //mengatur pin in1 low
digitalWrite(in2, LOW); //mengatur pin in2 low
digitalWrite(in3, LOW); //mengatur pin in3 low
digitalWrite(in4, LOW); //mengatur pin in4 low
delay(1000); //tunggu 1 detik
digitalWrite(in1, LOW); //mengatur pin in1 low
digitalWrite(in2, HIGH); //mengatur pin in2 high
digitalWrite(in3, LOW); //mengatur pin in3 low
digitalWrite(in4, HIGH); //mengatur pin in4 high
delay(1000); //tunggu 1 detik
digitalWrite(in1, LOW); //mengatur pin in1 low
digitalWrite(in2, LOW); //mengatur pin in2 low
digitalWrite(in3, LOW); //mengatur pin in3 low
digitalWrite(in4, LOW); //mengatur pin in4 low
delay(1000); //tunggu 1 detik
}
else
{
digitalWrite(in1, LOW); //mengatur pin in1 low
digitalWrite(in2, LOW); //mengatur pin in2 low
digitalWrite(in3, LOW); //mengatur pin in3 low
digitalWrite(in4, LOW); //mengatur pin in4 low
lcd.setCursor(0,1); //tampilkan tulisan pada baris 2
lcd.print(jarak); //tampilkan 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