Anda di halaman 1dari 6

LAPORAN PROJECT 1

“MENGATUR PERPUTARAN KECEPATAN MOTOR”


Disusun untuk Memenuhi Mata Kuliah Sistem Kendali Tertanam
yang Dibimbing oleh Dyah Lestari, S.T ., M.Eng.

Disusun Oleh:
Reka Sabrina 160536612018
Tri Setyo Adi N 160536612036
Wildan Ahmad 160536612055

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 TEKNIK ELEKTRO
Maret 2019
LAPORAN PROJECT 1

MENGATUR PERPUTARAN KECEPATAN MOTOR

A. Alat dan Bahan


Alat dan Bahan yang digunakan pada project ini yaitu :
a. Arduino Uno + kabel USB 1 buah
b. Driver motor L298N 1 buah
c. LCD 16x2 1 buah
d. Project board 2 buah
e. Gearbox 1 buah
f. Modul Optocoupler 1 buah
g. Potensiometer 50K 1 buah
h. IC 7805 1 buah
i. Kapasitor 100 uf 1 buah
j. Kapasitor 10 uf 1 buah
k. Socket DC 1 buah
l. Kabel jumper secukupnya
m. Papan Triplek 1 buah
n. Double tip 1 buah

B. Desain Mekanik

C. Blok Diagram

Driver motor
GearBox
L298N
Sensor
Arduino UNO
Optokopler
LCD 16X2
D. Algoritma Pengukuran Kecepatan

• Sensor optokopler aktif


• Sensor akan membaca 1 putaran pada piringan yang terdapat 8 gerigi
• Arduino akan membaca sensor setiap 1 kali putaran
• Setelah data didapat, maka dapat diketahui nilai RPM dengan menggunakan rumus :

(𝟔𝟎 𝐝𝐞𝐭𝐢𝐤 𝐱 𝟏𝟎𝟎𝟎 𝐦𝐢𝐥𝐥𝐢𝐬)


𝐣𝐮𝐦𝐥𝐚𝐡 𝐠𝐞𝐫𝐢𝐠𝐢
𝐑𝐏𝐌 = ∗ 𝐛𝐚𝐧𝐲𝐚𝐤 𝐩𝐮𝐥𝐬𝐚
𝒎𝒊𝒍𝒍𝒊𝒔( ) − 𝒕𝒊𝒎𝒆𝒐𝒍𝒅

𝟔𝟎 𝐝𝐞𝐭𝐢𝐤
𝐤𝐞𝐜𝐞𝐩𝐚𝐭𝐚𝐧 = 𝐑𝐏𝐌 𝐱 𝐤𝐞𝐥𝐢𝐥𝐢𝐧𝐠 𝐠𝐞𝐫𝐢𝐠𝐢 𝐱
𝟏𝟎𝟔 𝒌𝒎/𝒉

E. Listing Program

#include <LiquidCrystal.h>//library lcd


#include <Wire.h>

const int rs = 12, en = 11, d4 = 10, d5 = 9, d6 = 8, d7 =


7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

int encoder_pin = 2; // Pin D0 FC-03


unsigned int rpm = 0; // Rotasi per menit
float velocity = 0; // Kecepatan dlm (km/h)
volatile byte pulses = 0; // Jumlah pulsa yang
dibaca oleh Arduino dalam 1 detik
unsigned long timeold = 0; // Waktu dlm (s)
unsigned int pulsesperturn = 8; // Jumlah gerigi pada
disk encoder.
const int wheel_diameter = 25; // Diameter roda dlm[mm]
static volatile unsigned long debounce = 0; // Waktu
rebounce (sinyal melambung)

/*Control Motor*/
#define dirR 7 //mendefinisikan pin untuk driver motor
bagian kanan
#define pwmR 6 //mendefinisikan pin untuk input pwm ke
motor

void motion() //
{
digitalWrite(dirR, LOW); //menjadikan dirR berlogika
LOW
analogWrite (pwmR, 100); //pin pwmR diberi pwm sebesar
100
}
void setup(){
lcd.begin(16, 2); //definisi lcd 16x2
Serial.begin(9600); // Konfigurasi
port serial
pinMode(encoder_pin, INPUT); // Konfigurasi
pin sbg input
pinMode (5, OUTPUT); //pin 5 sebagai output
pinMode (6, OUTPUT);//pin 6 sebagai output
attachInterrupt(0, counter, RISING); // Konfigurasi
interrupt 0, saat terhubung.
pulses = 0;//nilai awal dari pulses = 0
rpm = 0;//nilai awal dari rpm = 0
timeold = 0;//nilai awal dari timeold = 0
Serial.println("Time(s) RPM Pulses Velocity(km/h)");
//menampilkan tulisan pada serial monitor

}
void loop(){
motion();//memanggil program motor berjalan
if (millis() - timeold >= 1000){ //bila kondisi if
terpenuhi maka akan menjalankan program di bawahnya
noInterrupts();
rpm = ((60 * 1000 / pulsesperturn )/ (millis() -
timeold))* pulses; //menghitung nilai rpm
velocity = rpm * 3.14 * wheel_diameter * 60 /
1000000; //menghitung nilai kecepatan
timeold = millis(); //waktu milisecond = koefisien
timeold
Serial.print(" ");
Serial.print(millis()/1000);//menampilan nilai waktu
sekarang di serial monitor
Serial.print(" ");
Serial.print(rpm,DEC); Serial.print("
");//menampilan nilai rpm sekarang di serial monitor
Serial.print(pulses,DEC); Serial.print(" ");
Serial.println(velocity,2); //menampilan nilai
kecepatan sekarang di serial monitor
lcd.clear();
lcd.print("R=");
lcd.print(rpm);
lcd.setCursor (8,0);//menampilkan nilai rpm di lcd
lcd.print("P=");
lcd.print(pulses);
lcd.setCursor (0,1);//menampilkan nilai pulsa di
lcd
lcd.print("T=");
lcd.print(millis()/1000);
lcd.print("s");
lcd.setCursor (8,1);
lcd.print("V=");
lcd.print(velocity);//menampilkan nilai kecepanatan
pada lcd
pulses = 0;
interrupts();
}
}

// Program rebounce
void counter(){//untuk mengcounter nilai pulsa
if( digitalRead (encoder_pin) && (micros()-debounce >
500) && digitalRead (encoder_pin) ) {
debounce = micros();
pulses++;}
else ; }

F. Hasil Pengujian

Kecepatan Putaran Motor (RPM)

Tachometer Pengujian Alat Tachometer Pengujian Alat

675,2 63 677.4 70

678.2 77 593.5 77

593 84 525.4 77

677.9 77 676.6 77

672 77 675.2 77

671 77 678.2 77

689.9 84 593 84

570.4 77 677 77

675.7 77 672 77

385.6 84 689.9 77

422.6 63 570.4 77

675.7 77 385.6 77

610 77 422 84

675.4 77 675 77

Anda mungkin juga menyukai