Selasa, 19 Maret 2024

Laporan Akhir 2 Modul 2 (Percobaan 2)



Modul 2 Percobaan 4
Kontrol Motor Servo dengan PWM

1. Prosedur [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan dengan modul
  • Lihat hasil pada 7-Segment

  • Hardware


  • Diagram Blok


  • Rangkaian 

  • Prinsip Kerja
Servo.h adalah untuk mengontrol motor servo dan Keypad.h untuk mengontrol keypad. 

bagian-bagian program ini diantaranya:

1.Mendefinisikan Variabel:
servoPin: Menentukan pin PWM untuk motor servo.
numRows dan numCols: Menentukan jumlah baris dan kolom pada keypad.
keys: Array karakter untuk menyimpan layout keypad.
rowPins dan colPins: Menentukan pin pada Arduino yang terhubung dengan baris dan kolom keypad.
keypad: Menginisialisasi keypad.

2.Setup:
Program menginisialisasi motor servo.
Menentukan posisi awal motor servo (biasanya 90 derajat).
Mengatur komunikasi serial dengan kecepatan 9600 baud.


3.Loop Utama:
Program memeriksa apakah ada tombol keypad yang ditekan menggunakan fungsi keypad.getKey().
Jika ada tombol yang ditekan (key != NO_KEY), program mencetak tombol tersebut ke Serial Monitor dan melakukan aksi sesuai dengan tombol yang ditekan menggunakan struktur switch-case.

4.Aksi Motor Servo:
Setiap case dalam switch-case mengatur posisi motor servo sesuai dengan tombol yang ditekan pada keypad. Misalnya, jika tombol ‘1’ ditekan, motor servo akan diposisikan pada 0 derajat, jika tombol ‘2’ ditekan, motor servo akan diposisikan pada 45 derajat, dan seterusnya.

5.Loop Berlanjut:
Setelah menjalankan aksi yang sesuai dengan tombol yang ditekan, program kembali ke awal loop untuk terus memonitor input dari keypad dan mengontrol motor servo.


  • Flowchart


  • Listing Program
//M2P4 #include <Servo.h> #include <Keypad.h> Servo servoMotor; const int servoPin = 11; // PWM pin for servo const int numRows = 4; // Number of rows in keypad const int numCols = 3; // Number of columns in keypad char keys[numRows][numCols] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; byte rowPins[numRows] = {9, 8, 7, 6}; // Rows 0 to 3 byte colPins[numCols] = {5, 4, 3}; // Columns 0 to 2 Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, numRows, numCols); void setup() { servoMotor.attach(servoPin); servoMotor.write(90); // Initial position Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key != NO_KEY) { Serial.println(key); // Perform actions based on the key pressed switch (key) { case '1': // Move servo to position 0 degrees servoMotor.write(0); break; case '2': // Move servo to position 45 degrees servoMotor.write(45); break; case '3': // Move servo to position 90 degrees servoMotor.write(90); break; case '4': // Move servo to position 135 degrees servoMotor.write(135); break; case '5': // Move servo to position 180 degrees servoMotor.write(180); break; case '6': // Move servo to position 135 degrees servoMotor.write(135); break; case '7': // Move servo to position 90 degrees servoMotor.write(90); break; case '8': // Move servo to position 45 degrees servoMotor.write(45); break; case '9': // Move servo to position 0 degrees servoMotor.write(0); break; default: break; } } }

6. Kondisi [Kembali]

 Percobaan 4 Kontrol Motor Servo dengan PWM.

7. Download File [Kembali]

- HTML klik disini

- Gambar Hardware  klik disini

- Gambar Simulasi  klik disini

- Video Demo  klik disini

- Listring Program  klik disini















Laporan Akhir 1 Modul 2 (Percobaan 1)



Modul 2 Percobaan 6 
Kontrol Putaran Motor Stepper

1. Prosedur [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan dengan modul
  • Lihat hasil pada 7-Segment

  • Hardware

  • Diagram Blok



  • Rangkaian 


  • Prinsip Kerja
Cara kerja  motor stepper berbeda beda, tergantung pada konstruksi rotor dan stator serta sistem lilitan pada statornya. Namun setiap stepper digerakkan oleh pulsa digital yang diubah setiap waktu.

Kecepatan sinyal pulsa digital atau lebih tepatnya frekuensi sinyal mempengaruhi kecepatannya. Semakin cepat frekuensi sinyal, maka semakin cepat pula RPM pada stepper.

Sinyal digital ini dapat pula digunakan untuk menentukan posisi pada motor stepper. Misalnya saja, stepper dengan sudut step 1.8° maka untuk satu putaran penuh diperlukan 200 step, sehingga untuk setengah putaran stepper memerlukan 100 step dan untuk satu setengah putaran diperlukan 300 step. Hal inilah yang mejadikan stepper banyak dipakai pada mesin printer 3D dan CNC Engraving.

Sinyal digital yang diberikan pada rotor menghasilkan medan magnetik yang berinteraksi dengan rotor pada motor stepper. Hal ini menyebabkan motor bergerak dalam satu sudut stepnya, dan  bertahan sampai sinyal digital berikutnya.

  • Flowchart

  • Listing Program
//M2P6
#define A 8 
#define B 9 
#define C 10 
#define D 11 
#define PB1 2 
#define PB2 3 
#define PB3 4 
#define PB4 5 
 
void setup() { 
  // put your setup code here, to run once: 
  Serial.begin(9600); 
  pinMode(A, OUTPUT); 
  pinMode(B, OUTPUT); 
  pinMode(C, OUTPUT); 
  pinMode(D, OUTPUT); 
  pinMode(PB1, INPUT); 
  pinMode(PB2, INPUT); 
  pinMode(PB3, INPUT); 
  pinMode(PB4, INPUT); 
 
void pergerakan_1(){ 
  digitalWrite(A,0); 
  digitalWrite(D,1); 
  digitalWrite(B,0); 

 digitalWrite(C,1); 
 
void pergerakan_2(){ 
  digitalWrite(A,1); 
  digitalWrite(D,1); 
  digitalWrite(B,0); 
  digitalWrite(C,0); 
 
void pergerakan_3(){ 
  digitalWrite(A,1); 
  digitalWrite(D,0); 
  digitalWrite(B,1); 
  digitalWrite(C,0); 
 
void pergerakan_4(){ 
  digitalWrite(A,0); 
  digitalWrite(D,0); 
  digitalWrite(B,1); 
  digitalWrite(C,1); 
 
void nonpergerakan(){ 
  digitalWrite(A,0); 
  digitalWrite(D,0); 
  digitalWrite(B,0); 
  digitalWrite(C,0); 
 
void loop() { 
  int b4 = digitalRead(PB4); 
  int b3 = digitalRead(PB3); 
  int b2 = digitalRead(PB2); 
  int b1 = digitalRead(PB1); 
   
if (b4 == HIGH) 
    { 
     pergerakan_4(); // Pindahkan servo ke 45 derajat 
    } 
  else if (b3 == HIGH) 
    { 
      pergerakan_3(); // Pindahkan servo ke 45 derajat 
    } 
  else if (b2 == HIGH) 
    { 
      pergerakan_2(); // Pindahkan servo ke 45 derajat 
else if (b1 == HIGH) 
pergerakan_1(); // Pindahkan servo ke 45 derajat 
else {       
nonpergerakan(); 
delay(100); 

6. Kondisi [Kembali]

Percobaan 6 Kontrol Putaran Motor Stepper

7. Download File [Kembali]

- HTML klik disini

- Gambar Hardware  klik disini

- Gambar Simulasi  klik disini

- Video Demo  klik disini

- Listring Program  klik disini















Tugas Pendahuluan 2



Modul II PWM, ADC dan INTERUPT


PERCOBAAN 6 ( Kontrol Putaran Motor Stepper)

1. Prosedur[Kembali]

    • Rangkailah seperti rangkaian berikut 
    • Buka Arduino IDE dan masukan listing program Upload program ke arduino 
    • Variasikan tombol yang ditekan dan amati keluarannya pada LCD









Prinsip Kerja

Rangkaian ini berfungsi sebagai berikut:
Mendefinisikan pin dan variabel:

Mendefinisikan pin yang dapat digunakan dengan nama standar menggunakan #define.
Misalnya, A sebagai pin 8, B sebagai pin 9, dan seterusnya untuk mempermudah pin . untuk mengidentifikasi

Pada fungsi setup(), inisialisasi koneksi serial pada 9600 baud.
Atur pin sebagai input atau output sesuai kebutuhan, beberapa pin menggunakan resistor pull-up internal.

Fungsi pemindahan:
Ada beberapa fungsi yang mengontrol pergerakan motor stepper berdasarkan urutan kumparan motor.
n nFungsi diam:
Fungsi statis () menonaktifkan semua kumparan motor stepper sehingga motor tidak bergerak.
Sirkuit utama:

Dalam fungsi Loop()
nSelain itu, nilai sensor LDR (Lum Dependent Resistor) dibaca untuk menentukan apakah motor harus beroperasi dalam mode normal atau mundur tergantung pada kondisi cahaya yang terdeteksi. .

Logika kontrol:
Jika nilai LDR rendah (kurang dari 2,5), motor akan bergerak searah jarum jam
Jika nilai LDR tinggi (lebih besar atau sama dengan 10), motor akan bergerak berlawanan arah.
Jika tidak Saat Anda menekan tombol atau nilai LDR tidak memenuhi ketentuan, maka motor tidak akan bergerak (tidak bergerak()).
Delay:
Referensinya adalah 100 milidetik (delay(100)) di akhir loop untuk memeriksa kecepatan pemutaran dan memberi waktu pada motor untuk bergerak..
    





Listing Program

// Mendefinisikan konstanta untuk pin Arduino
#define A 8
#define B 9
#define C 10
#define D 11
#define LDR A0

void setup() {
  Serial.begin(9600);
  // Mulai komunikasi serial pada kecepatan 9600 baud
  // Menetapkan mode pin sebagai OUTPUT atau INPUT_PULLUP
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(LDR, INPUT);
}

void pergerakan_1() {
  digitalWrite(A, LOW);
  digitalWrite(D, HIGH);
  digitalWrite(B, LOW);
  digitalWrite(C, HIGH);
}

void pergerakan_2() {
  digitalWrite(A, HIGH);
  digitalWrite(D, HIGH);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
}

void pergerakan_3() {
  digitalWrite(A, HIGH);
  digitalWrite(D, LOW);
  digitalWrite(B, HIGH);
  digitalWrite(C, LOW);
}

void pergerakan_4() {
  digitalWrite(A, LOW);
  digitalWrite(D, LOW);
  digitalWrite(B, HIGH);
  digitalWrite(C, HIGH);
}

void nonpergerakan() {
  digitalWrite(A, LOW);
  digitalWrite(D, LOW);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
}

void loop() {
  int ldrValue = analogRead(LDR);
  float ldrVoltage = ldrValue * (5.0 / 1023.0); // Ubah nilai ADC ke tegangan (5V sebagai referensi)
  
  // Menampilkan nilai tegangan LDR ke serial monitor
  Serial.print("LDR Voltage: ");
  Serial.println(ldrVoltage);

  if (ldrVoltage < 2.5) {
    pergerakan_1();
    delay(100);
    pergerakan_2();
    delay(100);
    pergerakan_3();
    delay(100);
    pergerakan_4();
    delay(100);
  } else {
    pergerakan_4();
    delay(100);
    pergerakan_3();
    delay(100);
    pergerakan_2();
    delay(100);
    pergerakan_1();
    delay(100);
  }
}


Saat Praktikum

   
 P6K5 (Sertakan dengan LDR ketika bernilai <2.50 putaran motor searah jarum jam )





Download File HTML klik disini
Download Rangkaian Simulasi Proteus klik disini
Download File Video Rangkaian klik disini
Download File Arduino klik disini
Download Datasheet Komponen klik disini
 






Tugas Pendahuluan 1






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]

Hardware

1. Arduino Uno


2. Infrared Sensor


3. Driver Motor L293D


4. Max7219

5. Dot Matrix
6. Motor DC

Diagram Blok

3. Rangkaian simulasi dan prinsip kerja [Kembali]

Rangkaian percobaan sebelum disimulasi


Rangkaian percobaan setelah disimulasi


Prinsip Kerja

Prinsip kerja rangkaian ini adalah ketika  logika tinggi disuplai ke sensor inframerah, ia  memberi daya  pada driver motor L293D, yang menghasilkan masukan. Karena adanya masukan ke penggerak motor  maka dihasilkan pula keluaran berupa motor. Dot matrik tersebut dihubungkan ke arduino sesuai dengan pinnya sehingga dot matrik tersebut menyala. Menghidupkan saklar DIP 1 dan 3 akan menggerakkan motor  ke kiri dan tanda panah kiri juga akan muncul pada dot matrik. Jika saklar DIP 2 dan 4 hidup maka motor akan bergerak ke kanan dan  akan muncul tanda panah ke kanan pada dot matrik. Jika tidak ada kondisi di antara kedua kondisi di atas, maka mesin akan mati dan akan muncul tanda silang pada dot matriks.



4. Flowchart dan listing program [Kembali]

Flowchart



Listing Program

#include <LedControl.h> // Mengimpor pustaka LedControl untuk mengontrol modul MAX7219 yang terhubung dengan dot matrix LED.

// Inisialisasi objek LedControl dengan pin DIN, CLK, LOAD (CS) yang terhubung ke Arduino.
LedControl lc = LedControl(5,6,7,1);

// Array untuk menyimpan pola LED yang akan ditampilkan.
byte patterns[8] = {0, 0, 0, 0, 0, 0, 0, 0};

// Pengaturan pin untuk dipswitch dan motor.
const int in1 = A0;
const int in2 = A1;
const int in3 = A2;
const int in4 = A3;
const int infrared = A4;
const int enable = 4;
const int motor1Pin1 = 2;
const int motor1Pin2 = 3;

void setup() {
  // Konfigurasi modul dot matrix.
  lc.shutdown(0, false); // Mengaktifkan modul
  lc.setIntensity(0, 8); // Mengatur kecerahan (0-15)
  lc.clearDisplay(0); // Membersihkan tampilan
  
  // Mengatur pin-pin sebagai input atau output.
  pinMode(enable, OUTPUT);
  pinMode(in1, INPUT);
  pinMode(in2, INPUT);
  pinMode(in3, INPUT);
  pinMode(in4, INPUT);
  pinMode(infrared, INPUT);
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);

  // Memulai komunikasi serial.
  Serial.begin(9600);
}

void loop() {
  // Membaca nilai dari sensor infrared.
  int infrarednya = digitalRead(infrared);
  
  // Mengendalikan arah motor berdasarkan nilai dipswitch.
  if(infrarednya == HIGH) {
    digitalWrite(enable, HIGH); // Mengaktifkan motor jika sensor infrared aktif.
    
    // Mengecek kondisi dipswitch dan mengatur arah motor serta menampilkan pola pada dot matrix sesuai kondisi.
    if (digitalRead(in1) == HIGH && digitalRead(in2) == LOW && digitalRead(in3) == HIGH  && digitalRead(in4) == LOW) {
      // Jika dipswitch menunjuk ke kiri.
      digitalWrite(motor1Pin1, LOW); // Mengatur output motor untuk bergerak ke kiri.
      digitalWrite(motor1Pin2, HIGH);
      displayArrowLeft(); // Menampilkan panah ke kiri di dot matrix.
    } 
    else if (digitalRead(in1) == LOW && digitalRead(in2) == HIGH && digitalRead(in3) == LOW  && digitalRead(in4) == HIGH) {
      // Jika dipswitch menunjuk ke kanan.
      digitalWrite(motor1Pin1, HIGH); // Mengatur output motor untuk bergerak ke kanan.
      digitalWrite(motor1Pin2, LOW);
      displayArrowRight(); // Menampilkan panah ke kanan di dot matrix.
    } 
    else {
      // Jika tidak ada pergerakan dipswitch, motor berhenti.
      digitalWrite(motor1Pin1, LOW);
      digitalWrite(motor1Pin2, LOW);
      displayLetterX(); // Menampilkan huruf "X" di dot matrix.
    }
  } 
  else {
    digitalWrite(enable, LOW); // Menonaktifkan motor jika sensor infrared tidak aktif.
  }
}

// Fungsi untuk menampilkan pola pada dot matrix.
void displayArrow(byte pattern) {
  // Menetapkan pola pada setiap baris dot matrix.
  for (int row = 0; row < 8; row++) {
    lc.setRow(0, row, pattern);
  }
  delay(500); // Mengatur kecepatan animasi
  lc.clearDisplay(0); // Membersihkan tampilan setelah menampilkan pola.
  delay(500); // Jeda sebelum membaca input lagi.
}

// Menampilkan panah ke kanan di dot matrix.
void displayArrowRight() {
  byte arrowRight[8] = {
    B00011000,
    B00001100,
    B00000110,
    B11111111,
    B11111111,
    B00000110,
    B00001100,
    B00011000
  };
  // Menetapkan pola panah ke kanan pada setiap baris dot matrix.
  for (int row = 0; row < 8; row++) {
    lc.setRow(0, row, arrowRight[row]);
  }
}

// Menampilkan panah ke kiri di dot matrix.
void displayArrowLeft() {
  byte arrowLeft[8] = {
    B00011000,
    B00110000,
    B01100000,
    B11111111,
    B01100000,
    B00110000,
    B00011000,
    B00000000
  };
  // Menetapkan pola panah ke kiri pada setiap baris dot matrix.
  for (int row = 0; row < 8; row++) {
    lc.setRow(0, row, arrowLeft[row]);
  }
}

// Menampilkan huruf "X" di dot matrix.
void displayLetterX() {
  byte letterX[8] = {
    B10000001,
    B01000010,
    B00100100,
    B00011000,
    B00011000,
    B00100100,
    B01000010,
    B10000001
  };
  // Menetapkan pola huruf "X" pada setiap baris dot matrix.
  for (int row = 0; row < 8; row++) {
    lc.setRow(0, row, letterX[row]);
  }
}

5. Kondisi [Kembali]

Percobaan 5 kondisi 3 : Semua Switch pull-down, switch 1 dan 3 motor ke kiri, switch 2 dan 4 panah ke kanan dan motor  ke kanan

6. Video simulasi [Kembali]




7. Link Download [Kembali]

Download HTML klik disini
Download Simulasi Rangkaian klik disini
Download Video Praktikum klik disini
Download Listing Program klik disini
Download Library Arduino Uno klik disini
Download Library Infrared Sensor klik disini
Donwload Datasheet Arduino Uno klik disini
Donwload Datasheet L293D klik disini
Donwload Datasheet Max7219 klik disini
Donwload Datasheet Dot Matrix klik disini
Donwload Datasheet Infrared Sensor klik disini













Modul 2




MODUL 2
PWM & ADC
Pendahuluan

Asistensi dilakukan 1x
- Praktikum dilakukan 1x

1. Tujuan
[Kembali]

  1. Memahami prinsip kerja PWM pada mikrokontroler
  2. Memahami prinsip kerja ADC pada mikrokontroler
  3. Menggunakan PWM dan ADC pada Arduino

2. Alat dan Bahan [Kembali]

A. Alat

a.) Instrument

1. Power Supply


Gambar 1. Power Supply


B. Bahan

1. Potensiometer




Gambar 2. Potensiometer

a.) Komponen Input 

1. LM 35
Gambar 4. LCD 

b) Komponen Output
 
1. LCD

Gambar 4. LCD 
2. Motor DC
Gambar 5. Motor DC


c) Komponen Lainnya 
 
1. Mikrokontroler
Gamabar 7. Arduino Uno

2. Driver Motor

Gambar 8. Driver Motor L293D

3. Dasar Teori [Kembali]

A. Potensiometer
 Potensiometer (POT) adalah salah satu jenis Resistor yang Nilai Resistansinya dapat diatur sesuai dengan kebutuhan rangkaian elektronika ataupun kebutuhan pemakainya. Sebuah Potensiometer (POT) terdiri dari sebuah elemen resistif yang membentuk jalur (track) dengan terminal di kedua ujungnya. Sedangkan terminal lainnya (biasanya berada di tengah) adalah Penyapu (Wiper) yang dipergunakan untuk menentukan pergerakan pada jalur elemen resistif (Resistive). Pergerakan Penyapu (Wiper) pada Jalur Elemen Resistif inilah yang mengatur naik-turunnya Nilai Resistansi sebuah Potensiometer. 
Simbol dan bentuk Potensiometer dapat dilihat pada gambar 9 berikut.
Gambar 9. Bentuk dan Simbol Potensiometer 

Jenis Potensiometer: 
1.      Potensiometer Slider
Potensiometer geser, atau pot geser, dirancang untuk mengubah nilai resistansi kontaknya dengan gerakan linier dan dengan demikian terdapat hubungan linier antara posisi kontak penggeser dan resistansi output.
Mengenal Potensiometer dan Rheostat 
Gambar 10. Potensiometer Geser
2.      Potensiometer Rotary 
Potensiometer putar (tipe yang paling umum) memvariasikan nilai resistifnya sebagai hasil dari pergerakan sudut. Memutar kenop atau dial yang terpasang pada poros menyebabkan penyeka internal menyapu sekitar elemen resistif melengkung. Penggunaan potensiometer putar yang paling umum adalah pot kontrol volume.

Mengenal Potensiometer dan Rheostat 
Gambar 11. Potensiometer Rotary
3.      Potensiometer Trimmer
Potensiometer preset atau trimmer adalah potensiometer tipe "set-and-forget" kecil yang memungkinkan penyesuaian yang sangat halus atau sesekali mudah dilakukan ke rangkaian, (misalnya untuk kalibrasi). Potensiometer preset putar satu putaran adalah versi mini dari variabel resistor standar yang dirancang untuk dipasang langsung pada papan rangkaian tercetak dan disesuaikan dengan menggunakan obeng berbilah kecil atau alat plastik serupa.

Mengenal Potensiometer dan Rheostat 
Gambar 12. Potensiometer Trimmer atau Preset
B. Komponen Input
 
a) LM 35 
Sensor suhu IC LM 35 merupkan chip IC produksi Natioanal Semiconductor yang berfungsi untuk mengetahui temperature suatu objek atau ruangan dalam bentuk besaran elektrik, atau dapat juga di definisikan sebagai komponen elektronika yang berfungsi untuk mengubah perubahan temperature yang diterima dalam perubahan besaran elektrik. Sensor suhu IC LM35 dapat mengubah perubahan temperature menjadi perubahan tegangan pada bagian outputnya. Sensor suhu IC LM35 membutuhkan sumber tegangan DC +5 volt dan konsumsi arus DC sebesar 60 µA dalam beroperasi. Bentuk fisik sensor suhu LM 35 merupakan chip IC dengan kemasan yang berfariasi, pada umumnya kemasan sensor suhu LM35 adalah kemasan TO-92 seperti terlihat pada gambar dibawah.  

Gambar 13. LM 35

Dari gambar diatas dapat diketahui bahwa sensor suhu IC LM35 pada dasarnya memiliki 3 pin yang berfungsi sebagai sumber supply tegangan DC +5 volt, sebagai pin output hasil penginderaan dalam bentuk perubahan tegangan DC pada Vout dan pin untuk Ground.
 
    Karakteristik Sensor suhu IC LM35 adalah : 
  1.  Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius.
  2.   Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC.
  3.  Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC. 
  4.  Bekerja pada tegangan 4 sampai 30 volt. 
  5. Memiliki arus rendah yaitu kurang dari 60 µA.
  6. Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam. 
  7.  Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA. 
  8. Memiliki ketidaklinieran hanya sekitar ± ¼ ºC. 
  9. Tegangan output sensor suhu IC LM35 dapat diformulasikan sebagai berikut :

 Vout LM35 = Temperature º x 10 mV

 
C. Komponen Output
 
a) LCD
Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untukmenampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter). Struktur LCD dapat dilihat pada gambar berikut.
Gambar 14. Struktur LCD

Keterangan:

1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.

2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).

3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).

4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).

5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.

6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.

Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.
Module circuit dari LCD dan kaki-kakinya dapat dilihat melalui gambar berikut.

Gambar 15. TEXT LCD Module Circuit
 
  
Gambar 16. Kaki-kaki yang Terdapat pada LCD
b) Motor DC
Motor  DC adalah motor  listrik yan memerluka supla teganga arus searah pada kumparan medan untuk diubah menjadi energi gerak mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Motor arus searah, sebagaimana namanya, menggunakan arus langsung yang tidak langsung/direct- unidirectional. Motor DC adalah piranti elektronik yang mengubah energi listrik menjadi energi mekanik berupa gerak rotasi. Pada motor DC terdapat jangkadengan satu atau lebih kumparan terpisah. Tiap kumparan berujung pada cincin belah (komutator). Dengaadanya insulator antara komutator, cincin belah dapat berperan sebagai saklar kutub ganda (double pole, double throw switch). Motor DC bekerja berdasarkan prinsip gaya Lorentzyang menyatakan ketika sebuah konduktor beraliran  arus diletakkan dalam medan magnet,  maka sebuah gay(yang dikenal dengan gaya Lorentz) akan tercipta secara ortogonal diantara arah medan magnet dan arah aliran arus. Kecepatan putar motor DC (N) dirumuskadengaPersamaan berikut.

 

Gambar 17. Rumus Kecepatan Putar Motor DC

 

 Simbol Motor DC

 



 

Gambar 18. Simbol Motor DC

Motor DC tersusun dari dua bagian yaitu bagian diam (stator) dan bagian bergerak (rotor). Stator motor arus searah adalah badan motor atau kutub magnet (sikat-sikat), sedangkan yang termasuk rotor adalah jangkar lilitanya. Pada motor, kawat penghantar listrik yang bergerak tersebut pada dasarnya merupakan lilitan yang berbentuk persegpanjang yang disebut kumparan.

 
Prinsip Kerja Motor DC

 

Gambar 19. Prinsip Kerja Motor DC

Kumparan ABCD terletak dalam medan magnet serba sama dengan keduduka sis akti A da CB  yang  terleta tepa lurus  arah fluks magnet. Sedangkan sisi AB dan DC ditahan pada bagian tengahnya, sehingga apabila sisi AD dan CB berputar karena adanya gaya lorentz, maka kumparan ABCD akan berputar. 
Hasil perkalian gaya dengan jarak pada suatu titik tertentu disebut momen, sisi aktif AD dan CB akan berputar pada porosnya karena pengaruh momen putar (T). Setiap sisi kumparan aktif AD dan CB pada gambar diatas akan mengalami momen putar sebesar :

 

T = F.r

 Dimana :

T = momen putar (Nm) F = gaya tolak (newton)

r = jarak sisi kumparapada sumbu putar (meter)

Pada daerah dibawah kutub-kutub magnet besarnya momen putar tetap karena besarnya gaya lorentz. Hal ini berarti bahwa kedudukan garis netral sisi sisi kumparan akan berhenti berputar. Supaya motor dapat berputar terus dengan baik, maka perlu ditambah jumlah kumparan yang digunakan. Kumparan- kumparan harus diletakkan sedemikian rupa sehingga momen putar yang dialami setiap sisi kumparan akan saling membantu dan menghasilkan putaran yang baik. Dengan pertimbangan teknis, maka kumparan-kumparan yang berputar tersebut dililitkan pada suatu alat yang disebut jangkar, sehingga lilitan kumparan itupun disebut lilitan jangkar. Struktur Motor DC dapat dilihat pada gambar berikut ini.
Gambar 20. Struktur Motor DC
 
C. Komponen Lainnya 
 
a) Arduino Uno 
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain. 
 
Adapun spesifikasi dari Arduino Uno ini adalah sebagai berikut :

 

Arduino Uno

Bagian-bagian arduino uno:

-Power USB

Digunakan untuk menghubungkan Papan Arduino dengan komputer lewat koneksi USB.

-Power jack

Supply atau sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V.

-Crystal Oscillator

Kristal ini digunakan sebagai layaknya detak jantung pada Arduino.  Jumlah cetak                                menunjukkan 16000 atau 16000 kHz, atau 16 MHz.

-Reset

Digunakan untuk mengulang program Arduino dari awal atau Reset.

-Digital Pins I / O

Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika (         0 atau 1 ). Pin berlabel " ~ " adalah pin-pin PWM ( Pulse Width Modulation ) yang dapat digunakan untuk menghasilkan PWM.

-Analog Pins

Papan Arduino UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk membaca sinyal atau sensor analog seperti sensor jarak, suhu dsb, dan mengubahnya menjadi nilai digital.

-LED Power Indicator

Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik dengan baik.

Bagian - bagian pendukung:

-RAM

RAM (Random Access Memory) adalah tempat penyimpanan sementara pada komputer yang isinya dapat diakses dalam waktu yang tetap, tidak memperdulikan letak data tersebut dalam memori atau acak. Secara umum ada 2 jenis RAM yaitu SRAM (Static Random Acces Memory) dan DRAM (Dynamic Random Acces Memory).

-ROM

ROM (Read-only Memory) adalah perangkat keras pada computer yang dapat menyimpan data secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM terdiri dari Mask ROM, PROM, EPROM, EEPROM.

Block Diagram Mikrokontroler ATMega 328P pada Arduino UNO

Adapun block diagram mikrokontroler ATMega 328P dapat dilihat pada gambar berikut:



Block diagram dapat digunakan untuk memudahkan / memahami bagaimana kinerja dari mikrokontroler ATMega 328P.

Pin-pin ATMega 328P:

            Rangkaian Mikrokontroler ATMega 328P pada Arduino UNO

 
b) Driver Motor L293D
 IC L293D adalah IC yang didesain khusus sebagai driver motor DC dan dapat dikendalikan dengan rangkaian TTL maupun mikrokontroler. Motor DC yang dikontrol dengan driver IC L293D dapat
 dihubungkan ke ground maupun ke sumber tegangan positif karena di dalam driver L293D sistem
 driver yang digunakan adalah totem pool. Dalam 1 unit chip IC L293D terdiri dari 4 buah driver motor DC yang berdiri sendiri sendiri dengan kemampuan mengalirkan arus 1 Ampere tiap drivernya.
 Sehingga dapat digunakan untuk membuat driver H-bridge untuk 2 buah motor DC. Konstruksi pin driver motor DC IC l293D adalah sebagai berikut.

Konstruksi Pin Driver Motor DC IC L293D



Fungsi Pin Driver Motor DC IC L293D

·   1. Pin EN (Enable, EN1.2, EN3.4) berfungsi untuk mengijinkan driver menerima perintah untuk menggerakan motor DC.

2. Pin In (Input, 1A, 2A, 3A, 4A) adalah pin input sinyal kendali motor DC 
3. Pin Out (Output, 1Y, 2Y, 3Y, 4Y) adalah jalur output masing-masing driver yang dihubungkan ke motor DC 
4. Pin VCC (VCC1, VCC2) adalah jalur input tegangan sumber driver motor DC, dimana VCC1 adalah jalur input sumber tegangan rangkaian kontrol dirver dan VCC2 adalah jalur input sumber tegangan untuk motor DC yang dikendalikan. 
5. Pin GND (Ground) adalah jalu yang harus dihubungkan ke ground, pin GND ini ada 4 buah yang berdekatan dan dapat dihubungkan ke sebuah pendingin kecil.

Feature Driver Motor DC IC L293D Driver motor DC IC L293D memiliki feature yang lengkap untuk sebuah driver motor DC sehingga dapat diaplikasikan dalam beberapa teknik driver motor DC dan dapat digunakan untuk mengendalikan beberapa jenis motor DC. Feature yang dimiliki driver motor DC IC L293D sesuai dengan datasheet adalah sebagai berikut :

·         - Wide Supply-Voltage Range: 4.5 V to 36 V

·         - Separate Input-Logic Supply

·         - Internal ESD Protection

·         - Thermal Shutdown

·         -  High-Noise-Immunity Inputs

          - Functionally Similar to SGS L293 and SGS L293D

·         Output Current 1 A Per Channel (600 mA for L293D)

·         - Peak Output Current 2 A Per Channel (1.2 A for L293D)

·         - Output Clamp Diodes for Inductive Transient Suppression (L293D)

Rangkaian Aplikasi Driver Motor DC IC L293D


Pada gambar driver IC L293D diatas adalah contoh aplikasi dari keempat unit driver motor DC yang dihubungkan secar berbeda sesuai dengan keinginan dan kebutuhan.

  c) Pulse Width Modulation

PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi.

Pada board Arduino Uno, pin yang bisa dimanfaatkan untuk PWM adalah pin yang diberi tanda tilde (~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Pin-pin tersebut merupakan pin yang bisa difungsikan untuk input analog atau output analog. Oleh sebab itu, jika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite();


PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255.  Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 * 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik. 

  Siklus Sinyal PWM pada Arduino

  d) Analog to Digital Converter

 ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi.

Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam sample per second (SPS). Sementara Resolusi menyatakan tingkat ketelitian yang dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti ADC pada Arduino mampu menangani sinyal analog dengan tegangan 0 - 5 volt.

Pada Arduino, menggunakan pin analog input yang diawali dengan kode A( A0- A5 pada Arduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin);

Entri yang Diunggulkan

  [ MENUJU AKHIR ] [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Perc...