Pada percobaan ini yaitu tentang GPIO (General-Purpose Input Output ) dimana kita
akan mempelajari bagaimana menentukan pin-pin pada mikrokontroller menjadi output atau
input, langkah pertama yang harus dilakukan adalah dengan mengkonfigurasi software yang
disesuaikan dengan hardware yang kita pakai. Karena chip yang kita pakai adalah
stm32f407vgtx maka yang perlu kita lakukan adalah membuka software stm32CubeMX, setelah
terbuka klik New Project
On/off relay adalah dimana ketika push botton tertentu ditekan maka lampu led akan
menyala sesuai relay mana yang kita inginkan, untuk programnya sendiri adalah sebagai berikut :
while (1)
{
if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_8)==1)
{
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,1);
}
else
{
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,0);
}
}
Arti dari program tersebut Readpin berarti adalah apa yang akan terjadi dibagian input apakah itu
on atau off, dan ini tidak bisa kita tentukan karena itu tergantung dari inputnya namun bisa kita
tentukan outputnya (on atau off) yaitu dengan perintah if,
if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_8)==1); artinya jika input pin 8 di port E berlogic 1,
perintah selanjutnya adalah kondisi yang akan terjadi pada bagian output apabila input pin 8 di
port E bernilai satu adalah HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,1); yang artinya maka
sisi output pin 0 di port E akan bernilai 1 sehingga apabila push botton 8 ditekan maka pin 0
akan aktif dan relay 0 (relay nomer 1) akan menyala, namun apabila input pin 8 di port E tidak
berlogic 1 ( berlogic 0) maka apakah yang terjadi, maka dari itu kita butuh perintah else yang
artinya jika tidak atau (HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_8)==0)
sehingga kita tambahkan perintah HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,0); yang artinya
sisi output pin 0 di port E berlogic 0 sehingga apabila push botton 8 tidak kita tekan (berlogic 0)
maka relay 0 ( relay nomer 1) akan off/tidak menyala
yang kedua adalah menggunakan perintah delay() dimana ketika push botton ditekan
maka led akan menyala namun setelah push botton dilepas lampu led masih mendelay untuk
offnya untk programnya sendiri adalah sebagai berikut :
if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_8)==1)
{
HAL_Delay(350);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,1);
}
Artinya jika pin 8 di port E bernilai satu maka output pin 3 di port E akan bernilai satu namun
dengan delay 350 ms yaitu ketika push botton dilepas maka led di relay pin 3 tidak langsung off
atau masih delay 350 ms.
Untuk menjalankan program pada mikro maka harus dilakukan proses downloading
terlebih dahulu agar program dapat tersimpan pada mikro
KESIMPULAN
- Untuk memprogram mikrokontroller harus dikonfigurasi sesuai dengan chip yang
digunakan
- GPIO mengatur bagaimana pin dari suatu chip menjadi input ataukah output dengan
kondisi logic yang kita inginkan pada sisi output
- Pemrograman yang digunakan adalah bahasa C namun di setiap statement ditambahkan
HAL_
General-purpose input/output (GPIO)
Tujuan
Dasar teori
General-purpose input/output (GPIO) adalah pin generik pada sirkuit terpadu atau
papan komputer yang perilakunya termasuk apakah itu input atau output pin yang dikontrol oleh
pengguna pada saat dijalankan
Pin GPIO tidak memiliki tujuan yang ditetapkan, dan tidak terpakai secara default. Yaitu
kadang-kadang sistem integrator yang membangun full system perlu beberapa baris dan kontrol
digital tambahan yang tersedia dari sebuah chip dan harus mengatur sirkuit tambahan untuk
menyediakannya. Sebagai contoh, Realtek chip ALC260 ( audio codec ) memiliki 8 GPIO pin,
yang tidak digunakan secara default. Beberapa sistem integrator ( Acer Inc. laptop)
menggunakan GPIO pertama (GPIO0) dari ALC260 untuk menghidupkan amplifier untuk
speaker internal laptop dan eksternal headphone jack
Port GPIO adalah sekelompok pin GPIO (biasanya 8 GPIO pin) diatur dalam kelompok
dan dikendalikan sebagai sebuah kelompok.
NRP : 1310151013
TAHUN 2017