Pada percobaan kali ini gelombang
yang akan 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.
Prosedur :
1.
Buatlah rangkaian seperti pada Gambar
Gambar 7.2 Rangkaian Percobaan 7.2
2.
Tuliskan sintaks program
berikut ini pada Arduino IDE,
kemudian lakukan
kompilasi dan upload program ke sistem
minimum 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);
}
}
Tidak ada komentar:
Posting Komentar