Mahir Arduino Sketch dan Elektro secara praktek

17 - Simple Motor Control

Proyek sederhana untuk mengatur kecepatan Motor DC, hanya 1 arah, menggunakan komponen power transistor, diode dan eksternal power supply (untuk memberi daya pada motor) dan  potentiometer untuk mengatur kecepatan motor.

Transistor TIP120 dapat digantikan dengan transistor namun pastikan menggunakan transistor untuk beban arus tinggi. Sesuaikan dengan voltage dan arus  yang digunakan motor. Disarankan menggunakan heat sink pada transistor jika arus yang digunakan >= 1 amp.

External power supply bisa berupa baterai atau external DC power supply yang dapat kamu beli di toko-toko penyedia elektronik. Pastikan cukup voltage dan ampere untuk menjalankan motor namun tidak melebihi spek motor.

Pada proyek ini digunakan DC power supply dengan spek 5V dan 500mA. Bila volt lebih besar akan berisiko merusak motor.

Komponen yang digunakan

  • DC Motor
  • 10kΩ Potentiometer
  • TIP120 Transistor*
  • 1N4001 Diode*
  • Jack Plug
  • External Power Supply
  • 1K Resistor

Skema
Pertama, pastikan Arduino tidak terhubung dengan arus listrik. Baru rangkai seperti gambar dibawah.
Pastikan terhubung dengan benar. Salah rangkaian dapat menyebabkan kerusakan pada komponen bahkan pada Arduino board.

Diode penting untuk menjaga Arduino dari  EMF.




Sketch

!!! Perhatian: Sebelum upload code, matikan eksternal power supply ke motor dan pastikan potentiometer mentok di 0 (putar habis kearah sebalik jarum jam hingga mentok)


Setelah upload, hubungkan eksternal power supply. Sekarang potentiometer dapat kamu putar untuk mengatur kecepatan motor.

// Project 15 - Simple Motor Control
int potPin = 0; // Analog in 0 connected to the potentiometer
int transistorPin = 9; // PWM Pin 9 connected to the base of the transistor
int potValue = 0; // value returned from the potentiometer

void setup() {
// set the transistor pin as output:
pinMode(transistorPin, OUTPUT);
}

void loop() {
// read the potentiometer, convert it to 0 - 255:
potValue = analogRead(potPin) / 4;
// use that to control the transistor:
analogWrite(transistorPin, potValue);
}


Penjelasan Kode

Pertama-tama, kita deklarasikan 3 variable untuk menyimpan nilai dari analog pin yang terhubung dengan potentiometer, PWM pin yang terhubung dengan kaki base transistor dan variable untuk menyimpan value yang dibaca dari potentiometer

int potPin = 0; // Analog in 0 connected to the potentiometer
int transistorPin = 9; // PWM Pin 9 connected to the base of the transistor
int potValue = 0; // value returned from the potentiometer
.
Pada setup( ) function  kita atur pin mode transistor sebagai output.
void setup() {
// set the transistor pin as output:
pinMode(transistorPin, OUTPUT);
}

Pada main loop potValue diisi oleh nilai yang dibaca dari analog pin 0 (the potPin) kemudian dibagi 4.

analogWrite(transistorPin, potValue);

Kita perlu membagi dengan 4  karena range nilai analog ada diantara 0 (0 volts) hingga 1023 (5 volts) sedangkan range nilai yang akan kita tulis pada pin transistor (digital pin 9) adalah 0 - 255.

Selanjutnya, program akan menulis nilai dari potentiometer.

analogWrite(transistorPin, potValue);

Jadi, saat kita memutar potentiometer, nilai antara 0 -1023 akan terbaca, kemudian diconvert menjadi 0-255 kemudian nilai tersebut kita gunakan untuk mengubah kecepatan motor.

Putar arah balik jarum jam akan memperlambat motor, putar searah jarum jam akan menambah kecepatan motor.

Related Article
Proyek Sebelumnya - 16 - Proyek Light Sensor
Proyek Berikutnya - 18 - IC L293D

No comments:

Post a Comment