Laporan Akhir Percobaan 5

 

Laporan Akhir 1




Percobaan 5
Kontrol Putaran Motor DC

1. Prosedur
 [Kembali]

1. Rangkai semua komponen sesuai kondisi yang dipilih
2. Buat program di aplikasi arduino IDE
3. Setelah selesai masukkan program ke arduino di proteus
4. Jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
5. Selesai

2. Hardware dan diagram blok [Kembali]
      1. Hardware

      2. Diagram Blok



3. Rangkaian Simulasi dan Prinsip kerja [Kembali]

PRINSIP KERJA
    

4. FlowChart [Kembali]

a. Listing Program 
#include <LedControl.h>
// Inisialisasi modul MAX7219
LedControl lc = LedControl(5,6,7,1); // Pin DIN, CLK, LOAD (CS) dihubungkan ke Arduino
byte patterns[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Pola LED untuk ditampilkan
// Pengaturan pin untuk dipswitch dan motor
const int potensio = A0;
const int infrared = 8;
const int enable = 4;
const int motor1Pin1 = 2;
const int motor1Pin2 = 3;
void setup() {
 // Set up dot matrix module
 lc.shutdown(0, false); // Mengaktifkan modul
  lc.setIntensity(0, 8); // Mengatur kecerahan (0-15)
 lc.clearDisplay(0); // Membersihkan tampilan
 // Mengatur pin-pin sebagai output untuk motor
 pinMode(enable, OUTPUT);
 pinMode(infrared, INPUT);
 pinMode(motor1Pin1, OUTPUT);
 pinMode(motor1Pin2, OUTPUT);
 Serial.begin(9600);
}
void loop() {
 // Membaca nilai dari lm35
 float adc = analogRead(potensio);
 Serial.println(adc);
 // Membaca nilai dari infrared
 int infrarednya = digitalRead(infrared);
 // Mengendalikan arah motor berdasarkan nilai dipswitch
 if(infrarednya == HIGH){
 digitalWrite(enable, HIGH);
 if (adc <= 256) {
 // Maju
 digitalWrite(motor1Pin1, HIGH);
 digitalWrite(motor1Pin2, LOW);
 displayArrowRight();
 }
 else if (adc >= 768) {
 // Mundur
 digitalWrite(motor1Pin1, LOW);
 digitalWrite(motor1Pin2, HIGH);
 displayArrowLeft();
 }
 else {
 // Berhenti
 digitalWrite(motor1Pin1, LOW);
 digitalWrite(motor1Pin2, LOW);
 displayLetterX();
 }
 }
 else{
 digitalWrite(enable, LOW);
 }
}
// Fungsi untuk menampilkan panah pada dot matrix
void displayArrow(byte pattern) {
 for (int row = 0; row < 8; row++) {
 lc.setRow(0, row, pattern);
 }
 delay(500); // Mengatur kecepatan animasi
 lc.clearDisplay(0);
 delay(500); // Jeda sebelum membaca input lagi
}
// Menampilkan panah ke kanan
void displayArrowRight() {
 byte arrowRight[8] = {
 B00011000,
 B00001100,
 B00000110,
 B11111111,
 B00000110,
 B00001100,
 B00011000,
 B00000000
 };
 for (int row = 0; row < 8; row++) {
 lc.setRow(0, row, arrowRight[row]);
 }
}
// Menampilkan panah ke kiri
void displayArrowLeft() {
 byte arrowLeft[8] = {
 B00011000,
 B00110000,
 B01100000,
 B11111111,
 B01100000,
 B00110000,
 B00011000,
 B00000000
 };
 for (int row = 0; row < 8; row++) {
 lc.setRow(0, row, arrowLeft[row]);
 }
}
// Menampilkan huruf "X"
void displayLetterX() {
 byte letterX[8] = {
 B10000001,
 B01000010,
 B00100100,
 B00011000,
 B00011000,
 B00100100,
 B01000010,
 B10000001
 };
 for (int row = 0; row < 8; row++) {
 lc.setRow(0, row, letterX[row]);
 }
}

b. Flowchart

5. Kondisi [Kembali]
Kondisi  : Percobaan 5 Sesuai modul

6. Video Simulasi [Kembali]


7. Analisa dan Pembahasan [Kembali]

A. Analisa
1. Pada pemakaian sensor infrared, sebutkan dan jelaskan kegunaan Trim Potensiometer pada sensor infrared serta jelaskan cara kerja dari sensor infrared itu sendiri.

Sensor infrared obstacle digunakan untuk mendeteksi keberadaan rintangan atau hambatan di depannya dengan memanfaatkan sinyal inframerah. Sensor ini memiliki rentang deteksi mulai dari 2 cm hingga 30 cm. Salah satu komponen penting pada sensor ini adalah Trim Potensiometer yang memainkan peran krusial dalam pengaturan sensitivitas dan jarak deteksi sensor.

Berikut penjelasan lebih lanjut:

  1. Kegunaan Trim Potensiometer pada Sensor Infrared Obstacle:

    • Pengaturan Ambang Batas: Trim potensiometer digunakan untuk mengatur ambang batas deteksi pada sensor inframerah. Dengan mengubah nilai resistansinya, kita dapat menyesuaikan sensitivitas sensor terhadap radiasi inframerah yang diterima.
    • Kalibrasi: Trim potensiometer juga berfungsi untuk kalibrasi sensor. Dengan mengatur resistansinya, kita memastikan bahwa sensor memberikan respons yang akurat dan sesuai dengan kondisi lingkungan.
  2. Cara Kerja Sensor Infrared Obstacle:

    • Sensor ini terdiri dari dua komponen utama: IR transmitter (pemancar inframerah) dan IR receiver (penerima inframerah).
    • IR transmitter memancarkan sinyal inframerah ke arah objek atau rintangan di depannya.
    • IR receiver menangkap sinyal inframerah yang dipantulkan oleh objek. Jika ada rintangan, sinyal inframerah akan dipantulkan kembali ke receiver.
    • OUT pin pada sensor mengindikasikan keberadaan rintangan:
      • Jika ada rintangan di depan sensor, pin OUT akan berada pada LOW.
      • Jika tidak ada rintangan, pin OUT akan berada pada HIGH.

2. Pada interrupt kenapa ketika dipasang delay 100.000 ms program langsung berpindah ke kondisi utama tanpa menunggu 100.000 ms

Interrupt adalah mekanisme yang memungkinkan mikrokontroler untuk merespons peristiwa eksternal secara cepat. Ketika delay digunakan dalam kode, itu akan memblokir eksekusi program selama periode waktu tertentu sebelum melanjutkan ke instruksi berikutnya.

Namun, ada beberapa hal yang perlu diperhatikan:

  1. Blocking Delay:

    • Delay adalah fungsi yang memblokir eksekusi program selama periode waktu tertentu.
    • Selama delay, mikrokontroler tidak dapat melakukan tugas lain.
    • Jika ada interrupt yang terjadi selama delay, mikrokontroler akan langsung beralih ke penanganan interrupt tanpa menunggu delay selesai.
  2. Prioritas Interrupt:

    • Setiap interrupt memiliki prioritas tertentu.
    • Jika interrupt dengan prioritas lebih tinggi terjadi selama delay, maka mikrokontroler akan langsung beralih ke penanganan interrupt tersebut.
  3. Penanganan Interrupt:

    • Setelah penanganan interrupt selesai, mikrokontroler akan kembali ke instruksi berikutnya setelah delay.
    • Jadi, jika interrupt terjadi selama delay, program akan melanjutkan eksekusi setelah penanganan interrupt selesai.
3. sebutkan dan jelaskan pemakaian potensiometer serta bagaimana bisa mendeteksi nilai ADC pada arduino uno (jelaskan proses konversinya, rangkaian yang dilewatinya dan jelaskan output dari arduino)

Potensiometer adalah komponen elektronika yang memiliki resistansi yang dapat diatur sesuai kebutuhan. Pada Arduino Uno, potensiometer sering digunakan untuk mengatur nilai analog, seperti kecerahan LED atau posisi servo motor. Mari kita jelaskan lebih lanjut:

  1. Pemakaian Potensiometer pada Arduino:

    • Kontrol Analog: Potensiometer digunakan sebagai input analog. Nilai resistansinya dapat diubah dengan memutar wiper (bagian tengah) sehingga menghasilkan tegangan analog yang berbeda.
    • Sensor: Potensiometer juga dapat berfungsi sebagai sensor. Misalnya, potensiometer geser digunakan pada sound mixer untuk mengatur volume.
  2. Proses Konversi Nilai ADC pada Arduino Uno:

    • Analog-to-Digital Converter (ADC) pada Arduino Uno mengubah tegangan analog menjadi nilai digital.
    • Berikut langkah-langkahnya:
      1. Sampling: ADC mengambil sampel tegangan analog dari pin A0 hingga A5.
      2. Quantization: Nilai tegangan analog dipecah menjadi 1024 level (10-bit ADC).
      3. Conversion: Nilai tegangan diubah menjadi bilangan desimal antara 0 hingga 1023.
      4. Output: Nilai ini dapat digunakan dalam program Arduino.
  3. Rangkaian yang Dilewati:

    • Potensiometer terhubung dengan 3 terminal:
      • Terminal positif dan negatif: Terhubung dengan sumber listrik untuk mengaliri elemen resistif.
      • Terminal analog (wiper): Terhubung dengan pin A0 pada Arduino.
    • Rangkaian:
      • Terminal positif dan negatif terhubung ke 5V dan GND.
      • Terminal analog terhubung ke A0.
      • Tegangan output dari potensiometer akan diteruskan ke ADC.
  4. Output dari Arduino:

    • Nilai yang diperoleh dari ADC (0 hingga 1023) dapat digunakan dalam program.
    • Contoh: Jika potensiometer digunakan untuk mengatur kecerahan LED, nilai ADC akan mengendalikan intensitas cahaya LED.
    • Nilai ini dapat diolah lebih lanjut, seperti menggerakkan servo motor atau mengambil keputusan berdasarkan ambang batas tertentu.

B. Tugas Khusus
Apa yang dimaksud dengan tegangan ripple dan kaitannya dengan quartz crystal oscillator pada arduino uni yang menghasilkan PWM?

Tegangan Ripple, Quartz Crystal Oscillator, dan PWM (Pulse Width Modulation) memiliki kaitan yang menarik dalam dunia elektronika. Mari kita perpanjang penjelasan:

  1. Tegangan Ripple:

    • Definisi: Tegangan ripple adalah variasi tegangan yang terjadi pada sinyal listrik seiring dengan perubahan arus atau frekuensi.
    • Penyebab: Tegangan ripple biasanya muncul pada sumber daya listrik yang tidak sempurna, seperti catu daya switching atau catu daya yang mengalami fluktuasi.
    • Dampak: Tegangan ripple dapat menyebabkan ketidakstabilan pada rangkaian elektronik. Misalnya, pada rangkaian audio, tegangan ripple dapat mengganggu kualitas suara.
  2. Quartz Crystal Oscillator:

    • Definisi: Kristal osilator adalah komponen yang menghasilkan sinyal osilasi berfrekuensi tetap.
    • Fungsi: Pada Arduino Uno, kristal osilator beroperasi pada frekuensi 16 MHz. Kristal ini berfungsi sebagai “jantung” Arduino, mengirimkan detak ke mikrokontroler agar beroperasi pada setiap detaknya.
    • Stabilitas: Kristal osilator memiliki stabilitas frekuensi yang tinggi dan digunakan untuk mengatur waktu, sinkronisasi, dan pengukuran.
  3. PWM (Pulse Width Modulation):

    • Definisi: PWM adalah teknik yang digunakan pada Arduino untuk menghasilkan sinyal analog secara simulasi menggunakan sinyal digital.
    • Cara Kerja: Dalam PWM, mikrokontroler mengatur output digital antara HIGH dan LOW dengan porsi waktu tertentu untuk setiap nilai keluarannya.
    • Contoh Penggunaan: PWM sering digunakan untuk mengontrol kecerahan LED, kecepatan motor DC, atau posisi servo motor.
  4. Kaitan Ketiganya:

    • PWM dan Quartz Crystal: Kristal osilator memberikan referensi waktu yang stabil untuk operasi PWM. Frekuensi kristal memastikan akurasi perhitungan panjang pulsa dalam PWM.
    • Tegangan Ripple dan Quartz Crystal: Jika tegangan catu daya mengalami ripple, ini dapat mempengaruhi stabilitas kristal osilator. Oleh karena itu, pemilihan catu daya yang baik sangat penting.

Jadi, tegangan ripple memengaruhi stabilitas kristal osilator, dan kristal osilator digunakan dalam PWM untuk menghasilkan sinyal analog. 


8. Download File [Kembali]
Download HTML Klik disini
Download Video Simulasi Klik disini

Komentar

Postingan populer dari blog ini

Cover

Cover uP dan uC