MEKATRONIKA

Foto kawan-kawan seperjuangan dalam menempuh pendidikan Di Politeknik Negeri Batam

FERI FEBRIANSYAH

Itu adalah saya , Keren kan !!!

Kembar

Editan Sedikit hehehe

Keren Ui

Line Follower

Karya Anak Bangsa

Rabu, 04 Desember 2013

PWM dengan Adjustable Frekwensi dan duty Cycle ( 7 kHz sampai 300 khz)

Hy Sobat , berjumpa kembali dengan saya Feri Febriansyah , mudahan kawan-kawan dalam keadaan sehat selalu .
Tidak bosan-bosannya saya menyampaikan sebuah materi , agar materi ini dapat bermanfaat kepada kawan-kawan !!!
Pada Post ini saya akan membahas PWM dengan Adjustable Frekwnsi dan duty Cycle ( 7 kHz sampai 300 khz) . Langsung saja ke MAteri , Check This Out kawan !!!

PWM dengan Adjustable Frekwnsi dan duty Cycle ( 7 kHz sampai 300 khz)
       Pada percobaan kali ini gelombang yang akan dikeluarkan pada pin 9 adalah gelombang berbentuk kotak dengan duty cycle dan frekwensi yang dapat berubah-ubah . Perubahan frekwensi akan diatur oleh potensiometer yang terhubung pada pin A0. Perubahan duty cycle akan diatur oleh potensiometer yang terhubung pada pin A1. Program pada percobaan kali ini akan menggunakan konfigurasi register  untuk mengeluarkan sinyal gelombang pada pin PWM.
  • Rangkaian lah gambar dibawah ini menggunakan Proteus.
  • Tuliskan sintaks program berikut , kemudian lakukan kompilasi dan uploud program.
int setCycles;
int setDuty;

void set (int cycles, float duty){
  char oldSREG;
  int dutyCycle = cycles * duty ;
  if ( dutyCycle < 6 ){
    dutyCycle = 6 ;
  }
    if ( dutyCycle > 1015 ){
    dutyCycle = 1015 ;
  }
    if ( cycles < 50 ){
    cycles = 50 ;
  }
  oldSREG = SREG ;
  cli();
  ICR1 = cycles;
  OCR1A = dutyCycle;
  SREG = oldSREG;
}
void setup ()
{
 TCCR1A = 0 ;
 TCCR1B =_BV(WGM13);
 TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12));
 TCCR1B |= _BV(CS10);
 DDRB |= _BV(PORTB1);
 TCCR1A |= _BV(COM1A1);
}

void loop ()
{
 int temp_cycles = analogRead(A0);
 int temp_duty = analogRead(A1);
if (temp_cycles != setCycles || temp_duty != setDuty){
 setCycles = temp_cycles;
 setDuty= temp_duty;
set(setCycles, setDuty / 1024.0);
}
 
}
  • Setelah itu , uploud program ini di simulasi proteus .
Sebagai Referensi kawan-kawan , ini saya sertakan video tentang percobaan ini , Mudahan kawan-kawan dapat mudah mengerti !!!
Mudahan dapat bermanfaat ya info ini !!

Terima kasih kunjungannya !!!