Membuat PWM dengan Timer 1

          Alhamdulillah, pada kesempatan ini saya akan share ilmu kembali tentang bagaimana cara menseting Timer 1 menjadi penghasil PWM ( Pulse Width Modulation ) yang saya pakai di robot Line Follower Saya. Postingan ini sebenarnya jawaban dari temen temen yang bertanya di post Robot Line follower dengan alogaritma PID. Saya ucapkan terima kasih atas kunjungan temen temen, semoga ilmu yang saya dapat bermanfaat bagi  teman teman. Ok, tidak usah terlalu panjang lebar . Kita langsung saja ke pokok permasalahan.

  1. Perlu diketahui terlebih dahulu, bahwa Timer 1 di uC AVR adalah timer 16 bit. Timer ini diseting melibatkan 2 buah register, yaitu register TCCR1A dan TCCR1B
  2. Untuk menseting Timer 1 di uC AVR, kita harus mengisi register TCCR1A dan TCCR1B.
  3. Bagaimana mengisinya? kita langsung saja mengisinya dengan perintah TCCR1A=0xA1;TCCR1B=0x0c; . Perintah di samping, adalah perintah menseting Timer 1 sebagai Mode Fast PWM 8 bit dengan TOP 255 dan menggunakan prescaler/pembagi 256.

Penjelasan :

Untuk melihat lebih jelas, click aja gambar di atas…!!

          Gambar di atas adalah register TCCR1A, lebar  datanya adalah 8 bit. Di dalam register tersebut ada bit-bit penseting seperti ( dari bit ke 0 sampai ke bit ke 7 ) WGM10,WGM11,FOC1B,FOC1A,COM1B0,COM1B1,COM1A0,Com1A1

Karena TCCR1A berisi nilai 0xA1 , maka kalau dilihat dalam biner akan menjadi seperti ini :  1010 0001 .

Berarti nilai WGM10, Com1A1,Com1B1 adalah ’1′ dan yang lain bernilai ’0′

Kemudian kita lihat tabel berikut :

Untuk melihat lebih jelas, click aja gambar di atas…!!

          Pada tabel terlihat jelas, kalau bit Com1A1/Com1B1 = 1 dan Com1A0/Com1B0=0 maka, pola keluaran OC1A dan OC1B akan bernilai ’0′ setelah TCNT1 =OCR1A/OCR1B  dan bernilai ’1′ setelah mencapai TOP.

Note_1 : Jadi, OC1A dan OC1B adalah kaki keluaran PWMnya, kalo di uC ya kaki 18 dan kaki 19.

Untuk melihat lebih jelas, click aja gambar di atas…!!

TCCR1B terdiri dari bit-bit : CS10,CS10,CS10,WGM12,WGM13,kosong,ICES1,ICNC1

TCCR1B tadi nilainya adalah ox0C , kalau dibenerkan menjadi 0b0000 1100

berarti, bit CS12 dan WGM12 bernilai ’1′. dan bit yang lain pastinya bernilai ’0′.

Mari lanjutkan analisa kita, Kita lihat tabel berikut :

Untuk melihat lebih jelas, click aja gambar di atas…!!

          Jjika TCCR1A=0xA1, maka WGM10=1 dan WGM11=0. dan jika TCCR1B=0xoC , maka WGM12,WGM13=0. Berarti, jika dilihat dari tabel tadi mode yang dipakai adalah mode Fast PWM 8 bit dan dengan nilai TOP 0x00ff  atau jika ditulis dalam desimal adalah  255.

          Cukup Mudah bukan cara seting Timer 1 di uC AVr…!??? untuk menseting fitur fitur yang lain ( UART, SPI, Counter, Timer, dll )pada uC avr juga sama saja. yang kita butuhkan hanya data sheet microcontroller tersebut..!!

Menghitung Frekwensi PWmnya : karena modenya Fast PWM, maka dapat dihitung frekwensinya dengan rumus:

Fpwm=Fosc/N*(1+TOP)

Ket:

Fosc adalah cristal yang kita pakai.

N adalah faktor pembaginya

TOP adalah nilai tertinggi dari counting TCNT1

berarti, dari setingan kita tadi didapat: N=256 dan TOP=255 maka jika crystal yang kita pakai 8Mhz dapat dihitung frekwensinya yaitu:

Fpwm = 8000000/256*(1+255)

                 = 8000000/256*256

                 = 8000000/65536

                 = 122 Hz atau Periodenya adalah 8,1 ms

By: KoeRa

Semoga Kau di Neraka Bersamanya

Chord Endank Soekamti Semoga Kau di Neraka Bersamanya :

Intro: B…
E B A E E B A B
[*]
E                       G#m
saat itu aku siap memburu
A                   G#m
dan takkan ragu ragu mengakhiri hidupmu
A                  E
ku pikir bijaksana sangat luar biasa
F#                 B
ternyata itu salahku takut masuk penjara

[**]
E                        G#m
dan ketika mulut telah berbusa
A                      G#m
mengucap kata kata murka pada dirinya
A                             E
yang membuatku cemburu hancur tak menentu
F#                         B
ketika itu juga aku telah bersumpah

Reff:
E            B            C#m
dan tak ada air mata yang tersisa
G#m            A              E
semua sirna semoga kau di neraka bersamanya
E               B              C#m         G#m
semua harus kurelakan untuk apa kusesalkan
A              E                B
putus tiga cintaku tumbuh sejuta

Interlude: Intro
Back to [*],Reff

Interlude: D A E B D A B (2X)
Ooo…
Back to Reff:2x
oooo…
oooo…
Back to Reff 2x

Mencoba nulis blog lewat Hp

Wuih.. Sangar..! Nggak nyangka teknologi sudah semakin canggih..! Ni hari ini ane lagi nyoba ngeblog lewat hp ane. Waktu nyari di market ada wordpress portable. Jadi pengen nyoba ni aplikasi. Lumayan keren.. Bisa liat blog wordpress ane sertiap saat.. Oh ya,  tulisan ini juga ane tulis lewat hp ane.. Keren juga ya..brarti skarang bisa ngeblog dimana aja ya..!! Sip sip…