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
electrooper
Kamis, 17 Februari 2011
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
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
Label:
atmega16,
CVAVR,
display,
microcontroler,
seven segmen
Kamis, 16 Desember 2010
H Bridge
H Bridge atau jembatan H adalah adalah salah satu rangkaian yang digunakan untuk mengendalikan motor DC. Pada dasarnya rangkaian ini tersusun atas empat saklar yang berbentuk seperti rangkaian dibawah ini:
Dari gambar tersebut terlihat bahwa keempat saklar disusun sedemikian rupa sehingga membentuk huruf H, dari bentuk inilah mengapa rangkaian ini disebut jembatan H. Cara kerja saklar diatas adalah jika saklar satu dan saklar tiga ditekan maka motor akan berputar kearah kanan, begitu juga sebaliknya jika saklar dua dan saklar empat ditekan maka motor akan berputar kearah kiri.
Jembatan H seperti pada gambar diatas tentu saja nelum dapat dikontrol secara digital (karena masih menggunakan saklar analog). Supaya rangkaian jembatan H dapan dikendalikan secara digital maka keempat saklar tersebut diganti menjadi transistor (bisa juga dengan MOSFET atau saklar elektronik lainnya,) sehingga rangkaian akan menjadi seperti dibawah ini :
Dengan rangkaian diatas maka driver motor dapat dikontrol secara digital, dapat juga dikontrol melalui mikrokontroler dengan menghubungkan push button dengan pin output mikrokontroler.
Download :
Simulasi H Bridge (proteus) --- klik disini
wasalam
Label:
driver motor,
H Bridge,
jembatan H,
Motor DC
Senin, 13 Desember 2010
Rangkaian Flip Flop Led
Rangkaian Flip Flop adalah rangkaian yang menghasilkan efek alternate atau on secara bergantian pada output nya. Rangkaian Flip Flop ini dibagi menjadi dua macam yaitu Flip Flop analog dan digital. Perbedaan dari kedua jenis Flip Flop tersebut adalah komponen penyusunannya, Flip Flop Digital tersusun atas gerbang gerbang logika. Sedangkan Flip Flop Analog tersusun atas komponen komponen analog . Komponen komponen analog tersebut adalah sebagai berikut:
- Transistor NPN 2 buah
- Resistor 330 Ohm 2 buah
- Resistor 10K Ohm 2 buah
- Capacitor Polar 22uF 2 buah
- Led 2 buah
- Power Supply 2 buah
Rangkaian tersebut akan menyalakan kedua led secara bergantian (alternate). Frekuensi detak nyala led ini dipengaruhi oleh nilai resistor dan kapasitor ( untuk rumus frekuensi penulis belum menemukan ). Rangkaian ini dapat digunakan sebagai pembangkit detak / clock sederhana ( bisa juga digunakan dalam beam robot).
Download :
Simulasi (Proteus) --- klik disini
Minggu, 12 Desember 2010
Aplikasi Shift Register Untuk Penampil Seven Segmen
Komponen
- 2 buah IC 4094
- 2 buah seven Segmen
- Mikrokontroler
Rangkaian
Program:
$regfile = "m16def.dat"
$crystal = 12000000
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Datain Alias Portb.0
Clock Alias Portb.1
Strobe Alias Portb.2
Dim Kodesat As Byte , Npul As Integer , Nsat As Integer , Kodepul As Byte
Mulai:
Npul = 3
Nsat = 0
Do
Gosub Tampil
If Nsat = 0 Then
Nsat = 9
Decr Npul
End If
If Npul = 0 And Nsat = 0 Then
Goto Mulai
End If
Gosub Tampil
Decr Nsat
Loop
Tampil:
Reset Strobe
Kodesat = Lookup(nsat , Kode)
Kodepul = Lookup(npul , Kode)
Shiftout Datain , Clock , Kodesat , 1
Shiftout Datain , Clock , Kodepul , 1
Waitms 500
Set Strobe
Return
Kode:
Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00 , &H10
$crystal = 12000000
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Datain Alias Portb.0
Clock Alias Portb.1
Strobe Alias Portb.2
Dim Kodesat As Byte , Npul As Integer , Nsat As Integer , Kodepul As Byte
Mulai:
Npul = 3
Nsat = 0
Do
Gosub Tampil
If Nsat = 0 Then
Nsat = 9
Decr Npul
End If
If Npul = 0 And Nsat = 0 Then
Goto Mulai
End If
Gosub Tampil
Decr Nsat
Loop
Tampil:
Reset Strobe
Kodesat = Lookup(nsat , Kode)
Kodepul = Lookup(npul , Kode)
Shiftout Datain , Clock , Kodesat , 1
Shiftout Datain , Clock , Kodepul , 1
Waitms 500
Set Strobe
Return
Kode:
Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00 , &H10
Download Link:
Simulasi Proteus --- klik disini
program ----------- klik disini
wasalam
Label:
atmega16,
bascomavr,
display,
seven segmen,
shift register
Langganan:
Postingan (Atom)