Memprogram STM32 Nucleo dengan STM32CubeIDE Bagian 3: ADC Single Mode

Kembali lagi, di tutorial kali ini saya ingin menulis bagaimana menggunakan peripheral ADC pada mikrokontroller STM32, baik itu konfigurasi single mode atau multi mode. Untuk penjelasan ADC sendiri mungkin di lain waktu untuk penulis menjelaskan, atau kalian bisa cari sendiri, banyak tulisan tentang ADC dari yang sederhana hingga rumit, hehe

Berbeda dengan board Arduino, pada STM32 Nucleo-F446RE dengan menggunakan CubeIDE ini mungkin sedikit rumit, karena kita mengkonfigurasikan sendiri beberapa pengaturan agar fitur ADC dapat berjalan.

Pada STM32, resolusi ADC dapat diatur (sama seperti arduino, dengan mengakses AVR register) dengan pilihan 6-bit, 8-bit, 10-bit, dan 12-bit. Saat ADC memiliki output 8-bit, berarti sinyal input dapat dinyatakan sebesar 256 nilai diskrit, sedangkan ketika resolusi ADC diset sebesar 12-bit, nilai maksimalnya pembacaannya sebesar 4096.

ADC pada STM32 mempunyai tegangan referensi sebesar 3.3V, ini berarti ketika input tegangan analog sebesar 3.3V maka mikrokontroller akan membaca nilai dengan besar 4096 (ADC 12-bit). sehingga 1 nilai diskrit/resolusinya sebesar

resolusiADC = 3.3 \times \tfrac{1}{4096}

resolusi ADC = 0.805 mV

berdasarkan hasil perhitungan diatas, ADC 12 bit resolusinya sebesar 0.805 mV, sehingga 1 diskritnya mewakili tegangan sebesar 0.805 mV. Jika kita ubah ADC menjadi 8 bit (256) maka

resolusiADC = 3.3 \times \tfrac{1}{256}

resolusiADC = 12.89mV

Terlihat perbedaan resolusinya, pada ADC 8 bit resoulsi per 1 diskritnya sebesar 12.89mV dibanding ketika ADC 12 bit sebesar 0.805mV. Kelebihannya ADC 12 bit pembacaan nilai tegangannya lebih akurat. Namun kekurangannya membutuhkan waktu lebih lama (+4 cycle) dalam membaca dan memproses sinyal analog.

Konfigurasi Single Mode

Kembali ke bahasan utama, kita buat project baru kemudian beri nama sesuai keinginan, akan munculcul konfigurasi pin, pada kategori pilih ANALOG, kemudian ADC1, pada adc mode pilih IN0, secara otomatis akan dipilih pin yang digunakan adalah PA0, seperti gambar dibawah

Generate code dengan menekan icon gear pada toolbar diatas, lalu masuk ke file main.c

Untuk memulai menggunakan periferal ADC, kita harus memulai mengaktifkan fitur agar melakukan konversi dengan menggunakan fungsi berikut :

Sedangkan untuk membaca nilai ADC, menggunakan fungsi berikut :

Disini hal yang perlu diingat, karena kita men disable fitur Continuous Conversion Mode (dapat dilihat pada gambar pertama bagian configuration), maka ADC hanya akan melakukan konversi sekali saja, untuk melakukan konversi kembali, harus memanggil fungsi HAL_ADC_Start(). Contohnya seperti berikut :

Program diatas memperlihatkan fungsi HAL_ADC_Start() berada diluar while loop yang berarti hanya dieksekusi sekali tiap mikrokontroller dihidupkan, yang terjadi adalah nilai HAL_ADC_GetValue() akan tetap tidak berubah karena ADC tidak melakukan konversi dan yang muncul adalah nilai terakhir konversi. Dibandingkan program dibawah :

Diperlihatkan bahwa fungsi HAL_ADC_Start() berada di dalam while loop sehingga nilai dari HAL_ADC_GetValue() akan terus di update sesuai tegangan yang diterima pin PA0.

3 thoughts on “Memprogram STM32 Nucleo dengan STM32CubeIDE Bagian 3: ADC Single Mode

  • 07/06/2021 at 10:05
    Permalink

    I manage a vape shop web directory and we have had a posting from a vape shop in the USA that also advertises CBD items. A Month later on, PayPal has written to use to claim that our account has been restricted and have asked us to get rid of PayPal as a payment solution from our vape shop web directory. We do not offer CBD items such as CBD oil. We merely offer advertising and marketing solutions to CBD firms. I have had a look at Holland & Barrett– the UK’s Major Health and wellness Retailer and if you take a close look, you will witness that they offer for sale a relatively substantial range of CBD product lines, primarily CBD oil and they also happen to accept PayPal as a payment solution. It emerges that PayPal is applying contradictory standards to different firms. As a result of this limitation, I can no longer accept PayPal on my CBD-related online site. This has constricted my payment possibilities and presently, I am seriously reliant on Cryptocurrency payments and straightforward bank transfers. I have consulted with a barrister from a Magic Circle law office in London and they stated that what PayPal is doing is definitely illegal and inequitable as it ought to be applying an uniform criterion to all companies. I am still to consult with one more lawyer from a US law firm in London to see what PayPal’s legal position is in the United States. Meanwhile, I would be very appreciative if anybody here at targetdomain could offer me with alternative payment processors/merchants that deal with CBD companies.

    Reply

Leave a Reply

Your email address will not be published.