1. Rangkai rangkaian pada alat sesuai dengan modul.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.
2. Hardware dan Diagram Blok
[Kembali]
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Pada eksperimen kedua ini, Arduino berfungsi sebagai kontroler yang menerima input dari pin interrupt yang berasal dari dipswitch. Keluaran dari kontroler ini akan ditampilkan pada LCD, LED, dan buzzer. Dalam kode program Arduino, kondisi-kondisi telah diatur untuk memastikan agar rangkaian dapat beroperasi dengan lancar.
Ketika tidak ada input yang diterima oleh Arduino, atau dipswitch berada dalam keadaan logika rendah (low), LCD akan menampilkan angka counting dari 0 sampai tak hingga, dengan setiap digit ditampilkan dengan delay 1 detik.
Namun, ketika dipswitch ditekan (berlogika tinggi/1), inputan akan dikirimkan ke Arduino. Arduino akan membaca inputan tersebut dan mengkondisikannya sesuai dengan program yang telah disusun. Sesuai dengan algoritma, ketika dipswitch berada dalam keadaan tinggi, LCD akan menampilkan counting. Saat terjadi kondisi interrupt, LED akan menyala dan buzzer akan berbunyi selama beberapa saat. Setelah kondisi interrupt selesai, program akan kembali ke loop utama dan proses counting akan diulang dari 0.
4. Flowchart dan Listing Program
[Kembali]
Flowchart :
#include<LiquidCrystal_I2C.h>
#define LED 13 //pin 13 bernama LED
#define tombol 2 //pin 2 (pin interrupt) bernama tombol
#define buzzer 11
volatile byte led_nyala = LOW; //kondisi mula-mula LED mati
static int count = 0;
volatile byte buzzer_nyala = LOW;
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
lcd.init();
lcd.backlight();
pinMode(LED,OUTPUT);
pinMode(tombol,INPUT);
attachInterrupt(digitalPinToInterrupt(2),tombol_ditekan, FALLING); //pin 2 (interrupt 0) digunakan
sebagai interrupt eksternal
}
void loop() { //Main Program
digitalWrite(LED,HIGH);
digitalWrite(buzzer,LOW);
lcd.setCursor(0,0);
lcd.print("Count:");
lcd.setCursor(0,1);
lcd.print(count);
count += 1; // menambahkan integer count dengan angka 1
delay(1000);
}
//membuat fungsi bernama tombol_ditekan, fungsi ini (ISR) dieksekusi secara otomatis setelah arduino
memperoleh sinyal interrupt di pin 2
void tombol_ditekan()
{
digitalWrite(LED,LOW);
digitalWrite(buzzer,HIGH);
count = 0;
delay(100000);
}
Percobaan 2: Interrupt Arduino
6. Video Demo [Kembali]
7. Soal Analisa
[Kembali]
1. Jelaskan pada pemakaian sensor infrared, sebutkan dan jelaskan kegunaan trimpotensiometer pada sensor IR, serta jelaskan cara kerja dari sensor IR itu sendiri
Jawab:
Sebelumnya trimpotensiometer sendiri adalah komponen yang diatur nilainya secara manual. Dan dalam konteks ini kegunaan trimpotensiometer pada sensor infrared adalah untuk mengatur ambang batas atau treshold dari pembacaan sensor infrared. Nilai yang diatur oleh potensiometer akan mempengaruhi sensitivitas sensor, yaitu jarak maksimum dimana sensor akan memberikan sinyal high atau low.
Adapun prinsip kerjanya:
Sensor infrared digunakan untuk mendeteksi objek di depannya. Sinyal yang diberikan oleh sensor dipresentasikan dalam kode untuk menggerakan motor.
Trimpotensiometer digunakan untuk mengatur ambang batas dari pembacaan sensor. Dengan mengatur trimpotensiometer, kita dapat mengatur sensitivitas sensor yaitu jarak maksimum dimana sensor akan memberikan sinyal yang sesuai.
Dengan kombinasi antara sensor infrared dan trimpotensiometer ini, kita dapat mengatur dan mengontrol putaran motor berdasarkan kondisi yang dideteksi sensor.
Cara kerja sensor IR sendiri adalah dengan cara mengirimkan sinar inframerah yang tidak terlihat oleh mata manusia ke sekitar lingkungan. Ketika sinar inframerah bertemu dengan objek sebagian dari sinar tersebut akan dipantulkan kembali ke sensor, sensor kemudian mengubahnya menjadi sinyal listrik.
2. Pada interrupt kenapa ketika dipasang delay 100.000 ms program langsung berpindah ke kondisi utama tanpa menunggu 100.000 detik
Jawab:
Ketika interrupt diberikan pada program atau sistem fungsi tombol ditekan akan dijalankan dengan delai juga akan dijalankan, nah untuk delai diberikan 100 detik agar sistem tidak terganggu dibuat kondisi terakhir setelah interrupt diberikan, pada kondisi ini sebenarnya bukan program langsung berpndah ke kondisi utama tanpa menunggu 100 detik, sebenarnya dalam kondisi interrupt ada dipertahankan beberapa saat, namun tidak sampai 100 detik, karena interrupt sendiri memiliki waktu delay maksimumnya, jadi waktu diberi delay 100 detik, interrupt hanya mampu mempertahankan kondisinya hingga delay maksimum dari interrupt itu sendiri. Jadi, sebenarnya jika langsung dideklarasikan dengan delay maka tidak bisa berfungsi sesuai delay yang diminta, karena itu variabelnya harus dideklarasikan menggunakan volatile, baru bisa nantinya dimasukan ke fungsi interrupt.
3. Sebutkan dan jelaskan pemakaian potensiometer serta bagaimana bisa mendeteksi nilai adc pada arduino uno
Jawab:
Pada rangkaian potensiometer sederhana, disambungkan secara seri vcc, potensiometer dan ground. Pembacaan adc pada arduino sendiri adalah nilai tegangan yang diterima arduino, untuk mendapatkan hal tersebut dan bisa divariasikan, digunakan lah rangkaian seri potensiometer yang telah disebutkan sebelumnya, dimana kaki tengah dari potensiometer yang bisa diubah, itu bertujuan untuk mengambil sedikit dari resistansi pada potensiometer, anggaplah jika diambil setengah dari potensiometer maka tegangan disana adalah setengah dari tegangan vcc, dikarenakan tegangan yang diambil adalah hanya setengah dari potensiometer nya mengakibatkan tegangan terbagi setengah dan nilai tersebut sebagai inputan pada arduino, perubahan posisi kaki tengah pada potensiometer tersebut akan dapat memvariasikan hambatannya sehingga nilai tegangan pun dapat divariasikan. Perubahan nilai" tegangan tersebut akan mempengaruhi juga nilai adc pada arduino karena nilai adc itu didapatkan dari konversi nilai tegangan.
Tugas khusus:
1. Apa maksud tegangan rripple dan kaitannya dengan quart criystal ocillator pada arduino pada saat menghasilkan PWM
Jawab:
Tegangan ripple adalah fluktuasi tegangan AC yang terjadi pada sinyal DC. Ini biasanya muncul sebagai variasi kecil di atas atau di bawah tegangan DC yang diinginkan. Tegangan ripple dapat disebabkan oleh berbagai faktor, termasuk sumber daya yang tidak stabil, komponen filter yang tidak sempurna, atau perubahan beban.
Quartz crystal oscillator adalah rangkaian osilator elektronik yang menggunakan kristal kuarsa untuk menghasilkan sinyal osilasi dengan frekuensi yang sangat stabil. Kristal kuarsa memiliki sifat piezoelektrik, yang berarti ketika tekanan mekanis diterapkan pada permukaannya, tegangan yang sebanding muncul di kristal. Ini menyebabkan distorsi pada kristal dan menghasilkan osilasi pada frekuensi alami kristal.
Kaitannya dengan Arduino dan PWM (Pulse Width Modulation) adalah sebagai berikut:
Arduino menggunakan quartz crystal oscillator sebagai referensi waktu untuk mengatur kecepatan pemrosesan dan waktu eksekusi program.
PWM adalah teknik modulasi yang mengubah lebar pulsa dengan nilai frekuensi dan amplitudo yang tetap. Arduino menggunakan quartz crystal oscillator untuk menghasilkan sinyal PWM yang digunakan, misalnya, untuk mengendalikan kecepatan motor, intensitas cahaya LED, atau servomotor.
Jadi, kaitannya adalah bahwa osillator kristal kuarsa pada arduino memastikan stabilitas frekuensi yang diperlukan untuk menghasilkan sinyal PWM dengan presisi tinggi, terlepas dari fluktuasi tegangan ripple yang mungkin terjadi dalam sistem listrik.
8. Download File
[Kembali]
HTML klik disini
File Rangkaian klik disini
Video Percobaan klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Button klik disini
Datasheet Led klik disini
Datasheet Resistor klik disini
Tidak ada komentar:
Posting Komentar