Kamis, 17 Februari 2011

Mengenal PWM

   Pulse Width Modulation (PWM) adalah suatu metode pengontrolan daya yang digunakan pada kebanyakan piranti elektronika, contoh pada Power Supply pada PC, UPS atau power supply2 pada perangkat elektronik lainnya. selain digunakan untuk mengontrol daya, PWM juga bisa digunakan untuk mengatur piranti elektronik seperti motor servo.
   Seperti namanya Pulse Width Modulation atau bahasa indonesianya Pulsa dengan lebar modulasi merupakan suatu bentuk sinyal tegangan yang diubah ubah lebar pulsanya untuk lebih jelasnya bisa dilihat digambar bawah ini. 

 

Dalam gambar diatas terlihat terdapat lima buah PWM dengan 5 macam Duty Cycle yang bernilai 0%, 25%, 50%, 75% dan 100%. Duty Cycle adalah suatu parameter dari PWM yang menunjukkan perbandingan sinyal logika 1 (5 volt) dan sinyal logika 0 (0 volt), misalnya :

PWM dengan Duty Cycle 25% dengan periode katakanlah 100ms maka berarti sinyal logika 1 pada PWM tersebut adalah 25% dari keseluruhan periode sinyal  atau 25% dari 100ms = 25ms, sedangkan untuk sinyal logika 0 pada PWM tersebut adalah sisanya atau 75 ms.

Penggunaan PWM dalam pengontrolan daya ini lebih efisien jika dibandingkan dengan pengontrolan daya dengan cara konvensional (rangkaian resistif), karena tidak ada daya yang terbuang menjadi panas.

PWM dapat dibangkitkan dengan beberapa cara salah duanya adalah dengan Mikrokontroler dan menggunakan Timer IC 555.

jika ada yang kurang atau salah silahkan sampaikan melalui komen
wasalam

Senin, 14 Februari 2011

Aplikasi Seven Segmen ATMega16 dengan CVAVR

Seperti kita ketahui Seven segmen adalah suatu komponen elektronika yang digunakan untuk penampil angka. Dalam Post sebelumnya sudah dijelaskan cara menampilkan seven segmen dengan menggunakanBahasa Basic Compiler atau BasCom AVR. Dalam Post ini akan dijelaskan cara menampilkan seven segmen tetapi dengan bahasa pemrograman yang berbeda yaitu dengan menggunakan bahasa pemrograman CVAVR atau Code Vision AVR.

Hardware
Hardware penampil seven segmen adalah sebagai berikut.

Program CodeVisionAVR

#include (mega16.h)
#include (delay.h)
void main(void)
{
unsigned char seven[10]={0b11000000,0b11001111,0b10100100,0b10110000,0b10011001,0b10010010,0b10000010,0b11111000,0b10000000,0b10010000};
unsigned int n=0;

DDRC=0xFF;


while (1)
      {
      PORTC=seven[n];
      delay_ms(100);
      n=n+1;
      if (n>9){
      n=0;
      }; 
      };
}

Penjelasan

Program diatas menggunakan dua macam librari yaitu
#include (mega16.h) dan #include (delay.h) . Librari mega16.h untuk menunjukkan pada program bahwa menggunakan mikrokontroler ATMega16 sedangkan librari delay.h digunakan untuk mengakses fungsi delay. Program ini menggunakan dua macam variabel yaitu  Seven[10] yang bertipe unsigned char dan  n yang bertipe unsigned integer. Pada variable Seven[10] berisi 10 macam data yang nantinya data data ini digunakan untuk menampilkan angka 0  sampai 9 pada seven segmen. Setelah mendeklarasikan variable terdapat sintak DDRC=0xFF yang artinya menjadikan Portc semuanya sebagai output. Pada program utamanya terdapat sintak

PORTC=seven[n];
      delay_ms(100);
      n=n+1;
      if (n>9){
      n=0;

Maksud dari sintak terssebut  adalah mengeluarkan data yang terdapat pada variabel "seven" melalui portc . Nah data pada variabel seven dapat berubah ubah sesuai nilai variabel "n" jadi variabel n disini berfungsi sebagai pointer. Supaya nilai pada variabel seven dapat berubah ubah maka variabel n di-incremen-kan hingga nilai n menunjukkan nilai 9. dengan demikian maka angka yang ditampilkan pada seven segmen adalah angka 0 dampai 9.

Berikut merupakan simulasi dan program CVAVR nya
Download Simulasi klik disini
Download Program CVAVR klik disini

NB: Pada #include tanda "(" diganti tanda "lebih besar" sedangkan tanda ")" diganti tanda "lebih kecil"
wasalam