Gelombang Sinus?? Mungkin tidak asing lagi bagi kita yang sering berkecimpung di bidang elektronik analog. Isyarat analog biasanya dinyatakan dengan gelombang sinus, mengingat gelombang sinus merupakan dasar untuk semua bentuk isyarat analog.
Gambar 1. Gelombang Sinus
Langsung saja saya bahas mengenai skema rangkaiannya seperti gambar di bawah ini :
Gambar 2. Rangkaian AT-Mega 32
Pada Gambar diatas, ATMega-32 berfungsi untuk menghasilkan gelombang sinus menggunakan metode fast pwm timer0 16 MHz. Rangkaian ini tidak menggunakan rangkaian DAC, tetapi digantikan dengan metode fast pwm 8bit dan rangkaian filter low pass, sehingga lebih menghemat rangkaian. Disamping itu, frekuensi gelombang sinus yang kita buat berkisar diantara frekuensi 20-20KHz yang merupakan frekuensi audio yang berada pada frekuensi rendah, sehingga sudah cukup dengan menggunakan metode fast pwm 16 MHz ( Frekuensi maksimum yang dapat dihasilkan fast pwm 16 MHz adalah : 16MHz/255 = 62,725 KHz)(satu siklus pwm 8 bit = 0-255).
Output dari fast pwm OCR0 dihubungkan dengan rangkaian filter low pass, filter ini berfungsi untuk melewatkan frekuensi audio dan mengeblok frekuensi tinggi dari fast pwm. Sehingga dihasilkan suatu bentuk gelombang sinus yang kita inginkan.
Gambar 3. Listing Program
Keterangan Program :
#include <mega32.h> //library atmega32
#include <delay.h> //library delay
#include <stdio.h> //library stdio
#include <math.h> //library math( untuk memasukkan fungsi2 sinus)
double x,y,i; // variabel x(2phi*f*t), y(amplitudo sinyal), i(t/ time)
DDRB=0x08; //PORTB.3 diset sebagai output
TCCR0=0x69; // Fast PWM Timer0 8 bit, non inverted
for(i=0; i<0.5;i=i+0.005){ //perulangan dari i=0 sampai i=0,5 dengan pertambahan tiap 0,005
x=(2*3.14*8000*i); // rumus x= 2phi*f*t
y=(((sin(x))+1)/2)*255; //amplitudo y= (sin(x)+1/2) ==> menggeser hasil rumus sin(x) dari range -0,5
sampai 0,5 menjadi range 0 sampai 1 , kemudian dikalikan 255.
Jadi range tegangan negatif terendah=0, tegangan 0 volt= 127, tegangan positif tertinggi = 255
OCR0=y; //hasil y dikeluarkan melalui output OCR0
delay_us(100); // tunda 100us
}
Berikut hasil gelombang sinus yang dihasilkan dengan menggunakan simulasi ISIS Proteus:
Gambar 4. Hasil Gelombang Sinus (Biru) dan Gelombang PWM ( hijau)
Sekian sedikit tulisan dari saya, maaf bila masih banyak kata2 yang salah, maklum masih newbie.
semoga bermanfaat..
Comments on: "Membuat Gelombang Sinus dengan AT-Mega32 dan Simulasi ISIS Proteus" (6)
Menarik sekali…btw kalo gelombang gigi gergaji gmn ya Pak?
Owh, bisa mas Bantulnisti.. Tinggal rumusnya saja diganti
seriuuss nie tanpa DAC….? keren infonya…. thanks….
Serius mas, saya sudah mencoba sendiri.. DAC diganti dengan fast pwm.
silahkan dicoba
kalo untuk menaikkan frekuensi gelombang sinusnya gimana mas???
diganti bilangan 8000 nya mas, diganti frekuensi yang lebih besar