Penyelesaian UKK Paket Soal 1 Teknik Elektronika Industri 2023

 


Pada rangkaian di atas digunakan metode PWM (Pulse Width Modulation) untuk mengatur kecepatan putaran motor DC. Bentuk PWM memiliki waktu tinggi dan rendah yang dapat diubah, perubahan lama sinyal tinggi dan lama sinyal rendah akan mempengaruhi besar tegangan rata-rata dari sinyal PWM tersebut.


Pada paket soal 1 ini dibuat PWM dengan duty cycle 50% dan 100%. Di samping besar duty cycle yang berubah pada soal ini untuk arah putaran motor dc juga berubah sehingga posisi tegangan tinggi dan rendah juga berubah.

Pada UKK ini diminta intruksi sebagai berikut :

  • 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.


Diagram blok rangkaian kontrol Motor DC



List Program :

#include <mega16.h>

#include <delay.h>


int i=0;


#define SW2  PINB.0

#define SW3  PINB.1

#define SW4  PINB.2

#define LED1  PORTC.0

#define LED2  PORTC.1

#define OUT1  PORTD.4

#define OUT2  PORTD.5


// Declare your global variables here


void main(void)

{


 DDRA=0x00;

 PORTA=0x00;

 DDRB=0x00;

 PORTB=0xFF;

 DDRC=0xFF;

 PORTC=0x00;

 DDRD=0xFF;

 PORTD=0x00;


while (1)

      {

      LED1=0;

      LED2=0;

      OUT1=0;

      OUT2=0;

      if (SW2==0)//Jika tombol SW2 ditekan

      { 

      while (i<1)

      {

      LED1=1;

      LED2=0;

      OUT1=1;

      OUT2=0;

      delay_ms(50);

      OUT1=0;

      OUT2=0;

      delay_ms(50);  

      }

      } 

      

      if (SW3==0)//Jika tombol SW3 ditekan

      { 

      while (i<1)

      {

      LED1=0;

      LED2=1;

      OUT1=0;

      OUT2=1;

      delay_ms(50);

      OUT1=0;

      OUT2=0;

      delay_ms(50); 

      }

      } 

      

      if (SW4==0)//Jika tombol SW4 ditekan

      { 

      while (i<1)

      {

      LED1=1;

      LED2=0;

      OUT1=1;

      OUT2=0;

      delay_ms(5000);  

      LED1=0;

      LED2=0;

      OUT1=0;

      OUT2=0;

      delay_ms(5000);

      LED1=0;

      LED2=1;

      OUT1=0;

      OUT2=1;

      delay_ms(5000);

      LED1=0;

      LED2=0;

      OUT1=0;

      OUT2=0;

      delay_ms(5000);   

      }

      } 

      }

}

Comments