UglyDDS STM32 – Encoder EC16

Satu cara untuk menyadap signal encoder pada STM32 : TIMER mode Encoder+interupt. Dua jalur A & B encoder masuk ke TIM dan dideteksi arah putaran dan perubahan signal. Setiap perubahan akan membangkitkan interupt.

Encoder yang dipakai tipe EC16. Satu putaran penuh ada 24 klik. Encoder ini hanya punya 3 kaki saja. Signal A, B, dan C (common). Urutan kaki dari atas : A,B, dan C. Sedang C bisa dihubungkan jalur negatif supply board. Karena tidak ada pull up resistor, pada GPIO STM32 bisa dimode pull up.

Urutan dari atas : A, B, dan C.
Digunakan general purpose timer TIM3. Pin yang dipakai PA6 & PA7.
Combined Channels : Encoder Mode
Encoder Mode :  Encoder Mode T1 and T2. Polarity : Rising Edge. Sedang  Input Filter : 10.
Set Pull-up pada GPIO. Anda dapat mengabaikan hal ini jika menggunakan encoder yang sudah terdapat PCB plus resistor pull-up. Encoder jenis ini banyak dipakai di pasaran.
Bagian Init TIM3. Jika menggunakan STM32CubeMX/IDE bagian ini akan dihasilkan otomatis.
Interupt TIM untuk mendeteksi counter up atau down. Jika posisi encoder diam, maka tidak terjadi interupt. Saat diputar ke kiri atau kanan, maka interupt terjadi dan dideteksi apakah up atau down. DIR=0 encoder diputar ke kiri. Nilai CNT akan turun. Jika DIR=1 nilai CNT naik.
Encoder akan menaikkan/menurunkan nilai counter sebanyak 4 point dalam kasus ini.

Untuk mengetahui perubahan nilai variabel, digunakan mode debug. Tapi jangan lupa aktifkan bagian SYS saat set STM32CubeMX.

Debug : Serial Wire. Timebase Source : SysTick
Posisi awal nilai semua variabel =0.
Silahkan putar encoder dan amati perubahan nilai variabel. Saat terjadi interupt alias encoder diputar ke kiri, nilai counter akan turun 4 point dan DIR=0.
Saat diputar ke kanan, nilai counter akan naik dan DIR=1. Jika terbalik, tinggal balik kabel saja antara PA6 dan PA7.

Data lengkap bisa Anda akses di Github.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s