Kendali Elektronik Menjalankan Motor DC Berbasis Mikrokontroler Atmega16

Kompetensi Keahlian Teknik Elektronika Industri pada Uji Kompetensi Keahlian (UKK) tahun 2021 diberi 4 paket soal yang terdiri atas 2 paket soal menggunakan kendali mikrokontroler dan 2 paket soal menggunakan kendali Programmable Logic Controller (PLC).

Pada jejak kali ini akan membahas Kendali Elektronik Menjalankan Motor DC yang merupakan paket soal 1 yang diberikan oleh PSMK. Rangkaian pada paket soal 1 seperti pada gambar di bawah ini.

Rangkaian Kendali Motor DC

Dari rangkaian di atas diharapkan memiliki cara kerja seperti di bawah ini.

  • SW2 ditekan, motor berputar dengan kecepatan separuh kecepatan penuh ke kanan (searah jarum jam).
  • SW3 ditekan, motor berputar dengan kecepatan separuh kecepatan penuh ke kiri (berlawanan arah jarum jam).
  • SW4 ditekan, motor berputar ke kanan dengan kecepatan penuh selama 5 detik, kemudian berhenti 5 detik, kemudian berputar ke kiri dengan kecepatan penuh selama 5 detik lagi, kemudian berhenti 5 detik, dst.

Karena Downloader yang dimiliki khusus mikrokontroler Atmega16, maka rangkaian di atas dimodifikasi dengan menggunakan mikrokontroler Atmega16, tetapi memiliki cara kerja yang sama dengan yang diharapkan oleh paket soal tersebut. Berikut rangkaian modifikasi menggunakan mikrokonroler Atmega16.

Rangkaian Kendali Motor DC Berbasis Mikrokontroler Atmega16

Pada rangkaian di atas dilengkapi juga dengan LED sebagai indikator yang menyala sesuai dengan arah putaran motor DC

Dari rangkaian di atas dibuatlah algoritma pengendalian motor DC dengan menggunakan metode PWM (Pulse Width Modulation), jika tombol SW2 atau SW3 ditekan maka motor dc berputar dengan duty cycle 50% dan memiliki kecepatan putar yang tetap atau tidak berubah-ubah. Jika tombol SW4 ditekan, maka motor dc akan berputar dengan duty cyle 100% dan memiliki arah putaran yang bergantian, yaitu Clockwise (CW) dan Counter Clockwise (CCW).

Berikut bentuk algoritma yang dibuat menggunakan bahasa C dengan bantuan program CodeVisionAVR.

#include <mega16.h>
#include <delay.h>

int i=0;

#define SW2 PINA.0
#define SW3 PINA.1
#define SW4 PINA.2
#define LEDCW PORTC.0
#define LEDCCW PORTC.1
#define OUT1 PORTC.2
#define OUT2 PORTC.3

#define ON 1
#define OFF 0

void main(void)
{
DDRA = 0x00 ; /*Port A sebagai Input*/
PORTA = 0xff ;
DDRC = 0xff ; /*Port C sebagai Output*/
PORTC = 0x03 ;

while (1)
{ if ( SW2 == 0) /*Mode CW*/
{
while (i<1)
{
LEDCW = OFF;
LEDCCW = ON;
OUT1 = ON ;
OUT2 = OFF ;
delay_ms ( 50 ) ; /*Duty Cycle 50%*/
OUT1 = OFF ;
OUT2 = OFF ;
delay_ms ( 50 ) ; /*Duty Cycle 100%-100%*/
}
}

if ( SW3 == 0) /*Mode CCW*/
{
while (i<1)
{
LEDCW = ON;
LEDCCW = OFF;
OUT1 = OFF ;
OUT2 = ON ;
delay_ms ( 50 ) ; /*Duty Cycle 50%*/
OUT1 = OFF ;
OUT2 = OFF ;
delay_ms ( 50 ) ; /*Duty Cycle 100%-100%*/
}
}

if ( SW4 == 0) /*Mode Bolak Balik*/
{
while (i<1)
{
LEDCW = OFF;
LEDCCW = ON;
OUT1 = ON ;
OUT2 = OFF ;
delay_ms ( 5000 ) ; /*Duty Cycle 100%*/
LEDCW = ON;
LEDCCW = ON;
OUT1 = OFF ;
OUT2 = OFF ;
delay_ms ( 5000 ) ; /*Duty Cycle 100%-100%*/

LEDCW = ON;
LEDCCW = OFF;
OUT1 = OFF ;
OUT2 = ON ;
delay_ms ( 5000 ) ; /*Duty Cycle 100%*/
LEDCW = ON;
LEDCCW = ON;
OUT1 = OFF ;
OUT2 = OFF ;
delay_ms ( 5000 ) ; /*Duty Cycle 100%-100%*/
}
}
}
}

 

Untuk lebih jelasnya dapat dilihat dalam video di bawah ini.

Kalo tidak mau buat  Layout PCB sendiri bisa diunduh di link ini. Unduh

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *