PRAKTIKUM 7
TIMER SEBAGAI GENERATOR GELOMBANG
VIDEO PRATIKUM
1.)http://www.youtube.com/watch?v=jPQp0piOTHw (timer overflow)
2.)http://www.youtube.com/watch?v=NEm5jClp51U&feature=youtu.be (jam digital)
3.)http://www.youtube.com/watch?v=aG_LKj26bh0&feature=youtu.be (falling)
4.)http://www.youtube.com/watch?v=hhOmfbCiV7s&feature=youtu.be (rising)
TUJUAN :
1. Mampu membuat program untuk memanfaatkan timer sebagai generator gelombang.
3. Mampu membuat program untun memanfaatkan timer sebagai generator gelombang dengan adjustable frekuensi.
Peralatan :
1. Komputer : 1set
2. Arduino Uno : 1 pcs
3. Project Board : 1 pcs
4. kabel Jumper : 1set
5. LCD : 1 pcs
6. Potensiometer : 3 pcs
7. LED : 1 pcs
8. Resistor 330 Ohm : 1 pcs
9. Transistor 2N2222 : 1 pcs
10. Resistor 2K2 : 1 pcs
Percobaan :
7.1 Generator Gelombang dengan Adjustable Duty cycle
Pada percobaan kali ini akan dibuat program untuk mengeluarkan gelombang kotak pada pin 9 (OC1A). Gelombang yang akan dikeluarkan pada pin 9 adalah gelombang berbentuk kotak dengan duty cycle dapat diatur lebarnya. Lebar duty cycle
akan diatur oleh potensiometer yang terhubung
pada pin A0. Pada percobaan kali ini akan digunakan fungsi analogWrite yang berfungsi untuk mengeluarkan
sinyal
gelombang pada pin Pulse
Width Modulation (PWM).
Prosedur :
1. Buatlah rangkaian seperti gambar 7.1
2. Tuliskan sintaks program berikut ini pada Arduino IDE, kemudian lakukan kompilasi dan upload program ke sistem minimum Arduino.
int val = 0;
void setup() { Serial.begin(9600); pinMode(9, OUTPUT);
val = analogRead(A0); analogWrite(9, val/4);
Serial.print("PWM Value = ");
Serial.println(val,DEC);
delay(500);
}
Tugas dan Pertanyaan :
1. Putarlah potensiometer
R3 dari
minimum
sampai maksimum, kemudian amati
intensitas
cahaya pada LED. Jika potensiometer diputar
pada posisi
minimum bagaimana kondisi intensitas cahaya LED ? semakin terang atau semakin redup ?
Jelaskan kenapa !
Jawab: Jika
potensiometer diputar pada posisi minimum maka intesitas cahaya pada LED akan
semakin redup.Karena nilai PWM yang didapat pada led sedikit
2. Jika potensiometer
diputar pada posisi maksimum bagaimana
kondisi intensitas
Jawab: Jika potensiometer diputar pada posisi maksimum maka intesitas cahaya pada LED akan semakin terang.Karena nilai PWM yang didapat pada led sangat besar sehingga PWM yang di dapat pada led bisa mendekati nilai maksimal pada pwm yatiu 255.
3. Lakukan simulasi
dengan aplikasi Proteus, kemudian amati bentuk gelombang pada
Test Point. Tampilkan gambar sinyal pada laporan !
4. Jelaskan sintaks program pada percobaan 7.1
int val = 0;// mendeklararasikan bahwa tipe data pada int val bernilai 0 //
void setup() // Berfungsi sebagai salah satu fungsi yang hanya di panggil sekali dan satu kali eksekusi ketika awal program berjalan //
{ Serial.begin(9600); // untuk menginisialisasikan bahwa serial yang di monitor menggunakan komunikasi serial dengan kecepatan 9600 bit per second//
pinMode(9, OUTPUT); // pinMode berfungsi untuk mendeklarasikan bahwa pin/kaki micro nomor urut 9 sebagai output //
}
void loop() {// berfungsi sebagai tempat kita menaruh source code yang akan diproses dan Fungsi loop akan dijalankan setelah fungsi setup dan akan dijalankan terus menerus selama board Arduino menyala (on) dan mengeksekusi program tersebut berulang ulang //
Serial.print("PWM Value = "); // Untuk menampilkan PWM Value //
Serial.println(val,DEC); // untuk mengnisialisasikan pada tipe data val bernilai decimal //
delay(500); // mendelay selama 500 ms //
}
7.2 Generator Gelombang dengan Adjustable Frekuensi
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 7.2
2. Tuliskan sintaks program berikut ini pada Arduino IDE, kemudian lakukan kompilasi dan upload program ke sistem minimum arduino.
int setCycles;
char oldSREG;
int dutyCycle = cycles * 0.5;
dutyCycle = 6;
if (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);
}
Tugas dan Pertanyaan :
Jawab : nilai frekuensi pada posisi maksimum yaitu 8333..33 hz dan nilai frekuensi pada posisi minimum yaitu 161290.32 hz.
2. Bagaimana dengan lebar pulsa (duty cycle), lebarnya berubah-ubah atau tetap ?
Jawab : lebar pulsanya (duty cycle) tetap.
7.3 PWM dengan Adjustable Frekuensi 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 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.
Prosedur :
1. Rangkailah rangkaian pada gambar 7.3
2. Tuliskan sintaks program berikut ini, kemudian lakukan kompilasi dan upload
program.
int setCycles;
int setDuty;
void set(int cycles, float duty) {
char oldSREG;
int dutyCycle =
if (dutyCycle <
cycles * duty;
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
int temp_duty =
if (temp_cycles
= analogRead(A0);
analogRead(A1);
!= setCycles || temp_duty != setDuty) {
setCycles = temp_cycles;
setDuty = temp_duty;
set(setCycles,
}
}
Tugas dan Pertanyaan :
1. Lakukan simulasi
dengan aplikasi Proteus, kemudian amati
bentuk gelombang, besarnya frekuensi,
dan
lebar pulsa pada Test Point. Jika potensiometer pada A0 diputar sampai
posisi minimum berapakah nilai frekuensi yang terukur ? Jika potensometer diputar sampai posisi maksimum berapakah nilai frekuensi yang terukur ?
2. Jika potensiometer pada A1 diputar dari posisi minimum sampai posisi maksimum apakah yang akan berubah ?
Jawab : Jika A1 di putar maka akan berubah dari pulsa lebarnya atau
duty cyclenya
Tidak ada komentar:
Posting Komentar