Anda di halaman 1dari 8

MATA KULIAH SISTEM MIKROPROSESOR 2

PRAKTIKUM 1

Disusun oleh :

Muhammad Shihab Aulia (C020319022) Angkatan 2019 (Kelas 4A)

DOSEN PENGAMPU : ZAIYAN AHYADI, ST, M.SC

PROGRAM STUDI TEKNIK ELEKTRONIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI BANJARMASIN
BANJARMASIN
2021
Langkah Kerja
Aktifitas 1 : Memahami cara kerja modul L298N driver Bridge motor DC
1. Buat rangkaian seperti gambar 1 berikut pada Proteus
2. Setting input LOGICTOGGLE yang terhubung ke IN1 dan IN2 sebagai berikut

3. Jalankan simulasi dan ubahlah input LOGICTOGGLE berdasarkan tabel berikut

EnA In 1 In 2 Putaran Motor


0 x x Tak Berputar
1 0 0 Tak Berputar
1 1 0 Putar Kanan
1 0 1 Putar Kiri
1 1 1 Tak Berputar

Aktifitas 2 : Mengatur kecepatan motor dengan Potensiometer


1. Buat rangkaian seperti gambar 2 (gambar 3) berikut pada Proteus
2. Setting input LOGICTOGGLE yang terhubung ke IN1 dan IN2 sebagai berikut
3. Tuliskan program berikut pada IDE Arduino
#define enA 9
#define in1 6
#define in2 7
#define button 4
bool b1, b1old;
bool putarCW = 1;

void setup()
{
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(button, INPUT_PULLUP);

digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogReference(DEFAULT);
}

void loop()
{
int potValue = analogRead(A0);
int pwmOutput = map(potValue, 0, 1023, 0, 255);
analogWrite(enA, pwmOutput);
b1old = b1;
b1 = !digitalRead(button);
if(b1 and not not b1old)
{
putarCW = not putarCW;
if(putarCW)
{
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
}
else
{
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
}
}
}

Aktifitas 3 : Start motor secara perlahan


Pada aktifitas ini bayangkan sistem seperti sebuah robot kecil beroda dengan penggerak 2
motor, dan mempunyai 3 tombol untuk belok kiri, maju dan belok kanan.
Agar ketika memulia pergerakan maju, robot tidak tersentak maka perlu diatur kecepatannya
agar naik secara bertahap dari pwm = 0 sampai pwm terbesar (250);

1. Buat rangkaian berikut pada Proteus


2. Tuliskan program pada Arduino
3. Lengkapi program untuk belok kiri dan belok kanan.
Petunjuk : untuk belok kiri maka motor kiri akan diam sedangkan motor kanan yang
berputar. Demikian juga sebaliknya unutk belok kanan.
#define buttonKiri A0
#define buttonMaju A1
#define buttonKanan A2
#define buttonMundur A3
#define enA 9
#define in1 6
#define in2 7
#define enB 10
#define in3 4
#define in4 5
int pwmOutA, pwmOutB, counter;
bool b1,b2,b3,b4;

void setup()
{
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(buttonKiri, INPUT_PULLUP);
pinMode(buttonMaju, INPUT_PULLUP);
pinMode(buttonKanan, INPUT_PULLUP);
pinMode(buttonMundur, INPUT_PULLUP);
}

void loop()
{
b1=!digitalRead(buttonKiri);
b2=!digitalRead(buttonMaju);
b3=!digitalRead(buttonKanan);
b4=!digitalRead(buttonMundur);
if(b1) belokKiri();
else if(b2) maju();
else if(b3) belokKanan();
else if(b4) mundur();
else stopp();

counter++;
if(counter==250) counter=0;

analogWrite(enA, pwmOutA);
analogWrite(enB, pwmOutB);
}

void belokKiri()
{
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
if(pwmOutA<240)
{
if(counter==0)
{
pwmOutA=pwmOutA+1;
pwmOutB=pwmOutA;
}
}
}

void belokKanan()
{
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
if(pwmOutA<240)
{
if(counter==0)
{
pwmOutA=pwmOutA+1;
pwmOutB=pwmOutA;
}
}
}

void mundur()
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
if(pwmOutA<240)
{
if(counter==0)
{
pwmOutA=pwmOutA+1;
pwmOutB=pwmOutA;
}
}
}

void maju()
{
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
if(pwmOutA<240)
{
if(counter==0)
{
pwmOutA=pwmOutA+1;
pwmOutB=pwmOutA;
}
}
}
void stopp()
{
pwmOutA=0;
pwmOutB=0;
}

Aktifitas 4 : Implementasi Hardware


Impelemntasikanlah Aktifitas 2 dan aktifitas 3 pada hardware. Menggunakan modul L298N
dan motor listrik DC kecil.

Anda mungkin juga menyukai