Rabu, 04 Desember 2013

TIMER SEBAGAI GENERATOR GELOMBANG

PERCOBAAN I

GENERATOR GELOMBANG DENGAN ADJUSTABLE DUTY CYCLE

        Pada percobaan kali ini akan dibuat program untuk mengeluarkan gelombang kotak pada pada pin 9 (OC1A) . Gelombang yang akan dikeluarkan pada pin 9 adalah gelombang berbentuk kotak dengan duty cycle dapat diatur gelombangnya. Lebar duty cycle akan diatur oleh potensiometer yang terhubung pada pin A0. akan digunakan fungsi analogWrite yang berfungsi untuk mengeluarkan sinyal gelombang pada pin Pulse Width Modulation (PWM)

Buatlah rangkaian seperti gambar dibawah ini



Buatlah program seperti dibawah ini dengan menggunakan software Arduino


Hasil dari percobaan I

 


PERCOBAAN II

GENERATOR GELOMBANG DENGAN ADJUSTABLE FREKUENSI

       Pada percobaan kali ini gelombang yang dikeluarkan pada pin 9 adalah gelombang berbentuk kotak dengan duty cycle yang besarnya tetap yaitu 50 %,  namun besarnya frekuensi dapat berubah - ubah. Perubahan frekuensi akan diatur oleh  potensiometer yang terhubung pada pin A0. Program pada percobaan kali ini akan menggunakan konfigurasi register untuk mengeluarkan sinyal gelombang pada pin PWM. 

Buatlah rangkaian seperti dibawah ini pada software ISIS



 Buatlah program seperti dibawah ini dengan menggunakan software Arduino

int setCycles;

void set(int cycles){
  char oldSREG;
  int dutyCycle = cycles*0.5;
  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);
  if (temp_cycles != setCycles ) {
    setCycles = temp_cycles;
    set(setCycles);
  }
}


Hasil dari percobaan II
 



PERCOBAAN I

PWM DENGAN ADJUSTABLE FREKUENSI DAN DUTY CYCLE
 (70 KHZ sampai 300 KHZ)

      Pada percobaan kali ini gelombang yang akan dikeluarkan pada pin 9 adalah gelombang berbentuk kotak dengan duty cycle dan frekuensi yang dapat berubah - ubah Perubahan frekuensi 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.

Buatlah rangkaian seperti dibawah ini pada software ISIS

 

  Buatlah program seperti dibawah ini dengan menggunakan software Arduino

int setCycles;
int setDuty;
void set(int cycles, float duty){
  char oldSREG;
  int dutyCycle = cycles
  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);
  }
}

Hasil dari percobaan III


 

Tidak ada komentar:

Posting Komentar