Anda di halaman 1dari 12

1. Buka program STM32Cube, lalu pilih New Project.

2. Jika kita akan menggunakan mikrokontroler ARM STM32F407 maka pada kolom
series pilih STM32F4, lalu pilih STM32F407/417 pada kolom lines kemudian pada kolom
package isikan LQFP100 bila kita menginginkan ARM STM32F407 dengan footprint
100 lalu tekan OK.

3. Setelah ditekan OK, maka akan muncul tampilan seperti di bawah ini.

4. Pada tab pinout, pilih RCC kemudian pilih Crystal / Ceramic Resonator lalu pilih TIM2 dan
atur clock source serta channelnya seperti berikut ini.

5. Kemudian set PORTB.12 s/d PORTB.15 sebagai GPIO_Output, PORTB.10 sebagai


TIM2_CH3 dan PORTB.11 sebagai TIM2_CH4.

6. Pada tab Clock Configuration, tentukan nilai frekuensi dan perhitungan clock yang
akan digunakan hingga tidak terdapat kolom yang berwarna merah, jika masih ada itu
menandakan masih ada perhitungan clock yang salah.

7. Pada tab Configuration, pilih TIM2 untuk mengatur konfigurasi dari Timer 2.

8. Setelah mengklik TIM2, pilih tab parameter settings kemudian atur masing-masing
konfigurasinya seperti di bawah ini.

9. Kemudian pilih tab NVIC settings lalu beri centang pada TIM2 global interrupt.

10. Setelah semua diatur sesuai yang dibutuhkan, maka pilih tab Project lalu klik settings.
Kemudian atur penempatan filenya dan pada kolom Toolchan / IDE pilih MDK-ARM V5.

11. Kemudian pilih Project lagi dan klik Generate Code untuk proses peluncuran
initialization C code nya.

12. Setelah proses generate selesai akan muncul tampilan seperti di bawah ini. Dan pilih Open
Project untuk mulai masuk di program ARM keil uVision5.

13. Setelah masuk program ARM Keil uVision5, pada Application/user klik main.c

14. Klik kanan pada Application/User kemudian pilih Add Existing files to group untuk
menambahkan file (library) lcd dan keypad.

15. Setelah muncul dialog box Add files to group maka pilih folder tempat lcd character.c
dan keypad.c berada. Pilih filenya kemudian klik Add untuk menambahkan dan klik close
untuk menutup dialog box.

16. Setelah menambahkan file .c nya, maka mulai lakukan proses pengenalan terhadap
software dengan menuliskan inisialisasi seperti pada contoh gambar di bawah ini.

17. Tuliskan program untuk PWM yang kemudian akan ditampilkan di lcd tepatnya pada bagian
while ( ) seperti pada gambar.

18. Setelah program ditulis, maka lakukan compiling program dengan cara klik build/rebuild.

19. Klik Option for Target untuk proses pendownloadan program ARM ke modul ARM.

20. Maka akan tampil seperti gambar berikut. Lalu klik tab Debug dan pilih settings.

21. Di sini program akan melakukan proses inisialisasi terhadap modul ARM.

22. Setelah modul ARM dikenali, pilih tab flash download lalu centang pada Reset and Run
dan klik Add untuk menambahkan mikrokontroler ARM yang kita gunakan lalu klik OK.
Setelah itu semua, klik Load untuk memulai proses download dari program ke modul.

Analisa
Pada praktikum kali ini dilakukan percobaan tentang pengaturan PWM. Di mana PWM
tersebut dapat diatur duty cyclenya berdasarkan input pada keypad dan kemudian akan
ditampilkan nilai duty cyclenya pada LCD.
Pada percobaan pengaturan PWM ini, kita dapat mengatur duty cyclenya melalui apa
yang kita tekan pada keypad. Dimana keypad tersebut diatur dengan pengaturan sebagai berikut.
1. Jika tombol 1 ditekan maka duty cycle = 10%
2. Jika tombol 2 ditekan maka duty cycle = 20%
3. Jika tombol 3 ditekan maka duty cycle = 30%
4. Jika tombol 4 ditekan maka duty cycle = 40%
5. Jika tombol 5 ditekan maka duty cycle = 50%
6. Jika tombol 6 ditekan maka duty cycle = 60%
7. Jika tombol 7 ditekan maka duty cycle = 70%
8. Jika tombol 8 ditekan maka duty cycle = 80%
9. Jika tombol 9 ditekan maka duty cycle = 90%
Oleh karena itu pada percobaan ini ditambahkan instruksi inisialisasi dari keypad terlebih
dahulu dan dituliskan pula instruksi key=keypad_get_key_value(); untuk memanggil apa yang
kita tekan pada keypad ke dalam program. Sedangkan untuk menampilkan duty cycle
ditambahkan lcd_init( ); sebagai inisialisasi programnya. Dan ditambahkan pula instruksi
lcd_puts(); dimana pada titik-titik tersebut dapat diisikan dengan apa yang akan kita
tampilkan di lcd. Sedangkan instruksi lcd_gotoxy(.. , ..); adalah untuk mengatur baris
kemunculan karakter pada lcd. Selain itu dituliskan pula instruksi D=(TIM2->CCR*0,01);
untuk perhitungan duty cycle pada channel yang telah ditentukan sebelumnya. Dimana instruksi
ini mengacu pada rumus secara teorinya yaitu duty cycle (D) = TON / T dengan nilai periode
yang telah ditentukan yaitu T = 10000. Namun pada program ini tidak dapat langsung dituliskan
instruksi seperti demikian. Mungkin program ARM Keil uVision5 tidak dapat mengenali operasi
pembagian (/) karena jika operasi tersebut digunakan maka nilai yang dihasilkan akan acak. Dan
untuk menampilkannya pada lcd dapat kita tuliskan instruksi sprintf(buffer,"Duty cycle=
%d",D); Dimana %d sebagai tempat untuk memanggil hasil perhitungan duty cycle tersebut.
Kesimpulan
Dari praktikum yang telah dilakukan dapat disimpulkan bahwa :
1. Untuk melakukan pemilihan dan eksekusi pada keypad, digunakan fungsi if dan else pada
program.
2. Untuk
melakukan
perhitungan
D=(TIM2->CCR*0,01);

duty

cycle

maka

dituliskan

instruksi