Tugas Pendahuluan M2 1(Percobaan 1 Kondisi 6)

Tugas Pendahuluan M2 1(Percobaan 1 Kondisi 6)



1. Kondisi
[Kembali]
Kondisi yang didapat pada percobaan 1 adalah kondisi 6, yakni:
Buatlah motor/vehicle maju diperlambat dengan kecepatan maksimum hingga berhenti.

2. Gambar rangkaian simulasi [Kembali]
Gambar rangkaian percobaan adalah sebagai berikut

Gambar rangkaian percobaan pada saat keadaan "OFF"

Gambar 1. Rangkaian ketika berada pada kondisi "OFF"


Gambar rangkaian percobaan pada saat keadaan "ON"

Gambar 2. Rangkaian ketika berada pada kondisi "ON"

Gambar virtual terminal saat rangkaian disimulasikan

Gambar 3. Virtual terminal ketika rangkaian disimulasikan

3. Video simulasi [Kembali]
Video simulasi penjelasan dari rangkaian dapat dilihat dibawah ini:



4. Prinsip kerja Rangkaian [Kembali]
A. Cara kerja rangkaian
Rangkaian terdiri dari arduino, L293D motor driver, dan 1 buah DC motor sebagai output. Untuk mengetahui bagaimana cara kerja dari rangkaian tersebut, harus diketahui terlebih dahulu mengapa pin - pin terhubung ke bagian - bagian yang telah ditentukan.

IC L293D merupakan motor driver dengan menggunakan konsep H-Bridge, untuk pinOut nya sendiri adalah sebagai berikut:
gambar 4.  Pinout dari IC l293D

pada rangkaian diatas, pin EN1,2 dihubungkan tegangan 5V, perlu diketahui bahwa pin EN ini berfungsi untuk mengaktifkan pin IN1 dan IN2, apabila pin EN1,2 ini tidak diberikan logika HIGH, maka IN1, dan IN2 tidak akan bisa aktif (berapapun logika inputnya).

Gambar 5. Truth table untuk pin EN dan IN

Dan dari rangkaian dapat dilihat bahwa pin Vss juga terhubung dengan tegangan 5V HIGH. Selanjutnya pada rangkaian pin Vs dari L293D terhubung ke baterai. Perbedaan dari pin power Vs dan Vss adalah pin Vss adalah pin yang digunakan untuk memberi daya ke IC L293D sementara pin Vs adalah pin yang digunakan untuk memberi daya ke motor yang akan dijalankan. Dan pin OUT 1 dan OUT 2 terhubung langsung ke pin motor tersebut. 
Satu lagi adalah penggunaan virtual terminal di proteus, virtual terminal di proteus digunkan untuk melihat hasil dari serial monitor pada kodingan arduino tanpa perlu memakai arduinonya secara langsung (hanya sebatas simulasi saja). Untuk pinnya sendiri bagian RX dari virtual terminal dihubungkan dengan pin digital 1 (TX), dan pin TX pada virtual terminal dihubungkan dengan pin digital 0 (RX) pada arduino.


B. Alur kerja kodingan
CODINGAN:
/*
 * Nama       : Muhamamd Rizieq Rizaldi
 * NIM        : 2010952031
 * MK         : Prak uP & uC
 * Kelompok   : 3
 * Percobaan  : 1 Kondisi 6 (Buatlah vechile maju diperlambant dengan 
 * kecepatan maksimum hingga berhenti
 */

//mendefinisikan pin serta delay

#define in1 10
#define in2 9
const int d = 1000;
const int d_short = 100;

void setup() {
  // put your setup code here, to run once:
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  Serial.begin(9600);

}

void loop() {
  // put your main code here, to run repeatedly:
  //maksimum pertama kali
  for (float a = 255; a > 0; a-=10)
  {
    float nilai_pwm = ((a/255) * 100);
    analogWrite(in1, a);
    digitalWrite(in2, LOW);
    Serial.print("Nilai PWM nya adalah "); Serial.print(nilai_pwm); Serial.println(" % ");
    delay(d_short); // delay sebentar
    
  }
  Serial.println(); //memformat output menjadi lebih bagus
  delay(d); // delay sebelum program diulang
}

Untuk penjelasan kodingannya sendiri yang pertama adalah mendeklarasikan pin - pin yang akan digunakan, yakni pin 10 dan 9. Pin ini digunakan karena merupakan pin digital yang memiliki fungsi PWM. Selanjutnya adalah menentukan konsta yang akan digunakan untuk delay pada bagian kodingan selanjutnya, nilai yang digunakan ialah 100ms untuk delay singkat dan 1000ms untuk delay lama.

Prorgam kemudian akan masuk kedalam bagian void setup(), pada bagian ini pin - pin serta fungsi - fungsi yang akan diaktifkan/digunakan di bagian void loop akan diinisiasi terlebih dahulu. Pertama adalah inisiasi pin in1 dan in2 sebagai pin OUTPUT, kemudian untuk mengaktifkan serial monitor diinisiasikan dengan baud rate 9600.

Selanjutnya adalah bagian inti dari program yakni didalam void loop(), instruksi yang diberikan untuk kondidsi 6 ialah "buatlah kecepatan vehicle maju dari kecepatan maksimal kemudian diperlambat sampai berhenti". Untuk melakukan hal tersebut yang diperlukan ialah sebuah loop yang akan mengendalikan output PWM dan kemudian berkurang dari nilai maksimum ke nilai yang paling kecil. maka dibuat for loop dengan variabel iterasi a jenis float yang diinisiasikan dengan nilai 255. Pertimbangan menggunakan jenis variabel float untuk ini ialah dikerankana variabel ini juga akan digunakan untuk melakukan operasi matematika yang memerlukan pembagian berkoma, dan untuk nilai 255 sendiri dikarenakan kapabilitas penggunaan PWM pada arduino memiliki interval dari 0 - 255, lalu konidisnya adalah a>0, dan setiap iterasi nilai a akan berkuang sebanyak 10. 

Didalam loop sendiri  didefinisikan sebuah variabel yang akan menampilkan nilai pwm tersebut, lalu terdapat fungsi analogWrite untuk memberikan ouput digital pada IN1 dengan nilai pemberiannya berdasarkan iterasi variabel iterasi a, dan untuk IN2 itu konstan diberi input digital LOW. selanjutnya ialah menampilkan hasil PWM tersebut di serial monitor, stelah itu terdapat delay singkat. hal ini akan berulang sampai batas kondisi loop tidak terpenuhi lagi. Terakhir ditambah delay panjang sebelum mengulangi program dari atas lagi.

5. Link download [Kembali]

Tidak ada komentar:

Posting Komentar

Mata kuliah Elektronika Kelas A  Semester Genap Th.2021   DISUSUN OLEH :   MUHAMMAD RIZIEQ RIZALDI   2010952031     DO...