Board ini menggunakan power supply 5V, yang dapat diperoleh dari konektor USB ataupun melalui konektor power supply. Tegangan ini langsung menjadi VDD untuk chip NUC140, sehingga perlu diperhatikan tegangan input ini maksimal adalah 5.5V (menurut datasheet NUC140).
Pada board terdapat juga regulator supply 3.3V menggunakan chip LM1117 [1]. Tipe chip regulator ini tidak dinyatakan dalam skematik.
Tegangan dari Powerjack 3 pin dan konektor USB dilewatkan melalui dioda sehingga aman dari kesalahan polaritas pemasangan, namun tidak melindungi dari kerusakan jika tegangan masuk melebihi 5.5V.
Pada skematik power supply ada komponen JP3 yang tidak jelas keberadaannya
Periferal On Board
Pada board ini sudah terdapat berbagai periferal on-board
SPI Flash
Ada 2 buah SPI Flash tipe W25X16VSSIG buatan WinBond. Kode di skematik USPI3 dan U3
LCD menggunakan interface SPI. Software untuk mengaksesnya ada di contoh [7].
Backlight dikendalikan oleh GPD14
LED 7 Segment
LED 7 segmen dikendalikan secara multiplex. Software untuk mengaksesnya sudah ada di contoh.
Port Serial
Prosesor NUC140 memiliki 3 port serial, namun pada board ini hanya 1 port serial yang sudah disambung dengan konektor DB9. Konektor menggunakan DB9 male, sehingga untuk dihubungkan ke PC memerlukan kabel serial tipe female-female. Berbeda dengan board LPC-L2294 yang menggunakan konektor DB9 female, namun serupa dengan TS-7260 yang menggunakan konektor DB9 male.
Codec WAU8822 terhubung ke prosesor dengan protokol I2S [2]
Petunjuk penggunaan ada di file Training “AN1015EN How to use I2S with CODEC V1.00.pdf” [3]
Daftar Konektor
Berikut ini daftar konektor pada board
ICE_USB: konektor USB sebagai ICE (In Circuit Emulator)
CON5: konektor power 5V
J3: USB ke prosesor
CON3: sinyal SPL+ dan SPL- ke chip audio codec WAU8822
LIN-CAN
GND
VCC : tegangan VCC 3.3V
VCC5 : tegangan 5V dari port USB (terukur 4.68 V)
VCC33 : tegangan VCC 3.3V
PS1 : output ke PS2 keyboard. Terhubung langsung ke pin PS2 di mikroprosesor NUC140. Detail interkoneksi ada di “NUC130_140 Technical Reference Manual EN V2.00.pdf”
Pada tulisan ini diuraikan berbagai teknik untuk memasukkan firmware (program) yang sudah berupa binary (HEX) ke dalam Flash memory pada mikrokontroller keluarga AVR. Teknik tersebut secara garis besar adalah sebagai berikut:
ISP (In System Programming) atau disebut juga ICSIP (In Circuit System Programming) [1]. Pada teknik ini, firmware dimasukkan dengan protokol serial ke dalam chip mikrokontroler. Pada waktu pemrograman mikrokontroler tidak perlu dilepas dari rangkaiannya.
HVPP (High Voltage Parallel Programming). Pada teknik ini firmware dimasukkan dengan protokol paralel dengan menggunakan tegangan +12V yang lebih tinggi dari tegangan kerja (+5V).
HVSP (High Voltage Serial Programming). Pada teknik ini firmware dimasukkan dengan protokol serial dan dengan tegangan +12V. Teknik ini dipakai untuk menggantikan HVPP pada perangkat yang jumlah pinnya terbatas.
Bootloader. Pada teknik ini pada mikrokontroler diletakkan sebuah program bootloader yang dapat menerima firmware aplikasi dari luar dan kemudian memasukkan firmware itu ke flash memory. Jika menggunakan bootloader, flash memory dibagi sebagian menjadi bootloader, sebagian lagi menjadi aplikasi.
Berikut di bawah ini adalah uraian dari masing-masing teknik tersebut.
In System Programming
Pada programmer jenis ini, pemrograman dimasukkan melalui port SPI (Serial Peripheral Interface) di mikrokontroler AVR. Teknik ini dikenal juga dengan nama ISP (In System Programming), artinya mikrokontroler dapat diprogram pada sistem yang sudah tersolder, tanpa perlu mencopot mikrokontroler tersebut dari PCB.
Pin-pin yang dipakai pada metode ini adalah sebagai berikut
MOSI
MISO
SCK
Reset
Berikut ini pin ISP pada ATMega8535
pin ISP pada ATMega8535
Berikut ini rangkaian dasar pemrograman ISP pada ATMega8535
Rangkaian ISP ATMega8535
Atmel tidak menyatakan secara eksplisit bagaimana cara menyambungkan pin ISP antara mikrokontroler dengan programmer, namun salah satu konfigurasi yang sering dipakai orang adalah konfigurasi yang dipakai di STK200 (programmer ISP keluaran Atmel).
Konektor ISP standar STK200
Programmer AVR dengan ISP melalui Port Paralel
Pada teknik ini, pin-pin ISP di AVR langsung dikendalikan oleh port paralel dari PC.
Port paralel PC
Ada 2 varian rangkaian jenis ini, yaitu programmer tanpa buffer dan programmer dengan buffer. Blok diagram rangkaian tanpa buffer adalah sebagai berikut:
Programmer port paralel
Blok diagram rangkaian dengan buffer adalah sebagai berikut:
Programmer paralel dengan buffer
Contoh hardware rangkaian programer jenis ini adalah sebagai berikut:
Programmer AVR dengan ISP melalui port serial dengan bit banging
Blok diagram sederhana adalah sebagai berikut:
Programmer serial bit banging
Pin-pin ISP dikendalikan oleh port serial dari PC, . Pemrograman tidak menggunakan protokol komunikasi serial, melainkan menggunakan metode bit-banging[5]. Contoh rangkaian dapat dilihat di URL berikut. http://www.lancos.com/siprogsch.html .
Keunggulan programmer ini adalah sederhana dan cukup tangguh, jarang merusak port PC seperti yang menggunakan port parallel. Kelemahannya memerlukan port serial yang on board di desktop PC, jadi tidak dapat menggunakan port serial dari USB serial.
Programmer AVR dengan ISP melalui port serial dengan protokol serial
Pada programmer ini, PC berkomunikasi melalui protokol serial dengan sebuah mikroprosesor. Mikroprosesor ini kemudian mengendalikan pin-pin ISP pada mikrokontroler AVR yang akan diprogram. Contoh Rangkaian
Programmer AVR dengan ISP melalui port USB dengan bit-banging
Port USB
Pada programmer jenis ini, sebuah mikroprosesor (mikroprosesor programmer) dipakai untuk menerima sinyal USB langsung dari PC tanpa menggunakan chip khusus USB. Mikroprosesor programmer ini kemudian memprogram chip AVR melalui koneksi ISP. Biasanya teknik ini memanfaatkan library USB untuk AVR seperti V-USB [8] dan USBtiny [9].
Programmer USB dengan mikrokontroler
Contoh rangkaian open source:
AVR Doper [10] “AVR-Doper is an STK500 compatible In-System Programmer (ISP) and High Voltage Serial Programmer (HVSP). It comes with a built-in USB to Serial adaptor to connect directly to USB. “
USBprog “An open source all purpose tool (AVR ISP, ARM7/ARM9, AT89,JTAG, RS232, IO)” [11]
USBasp [12]. “USBasp is a USB in-circuit programmer for Atmel AVR controllers. It simply consists of an ATMega88 or an ATMega8 and a couple of passive components. The programmer uses a firmware-only USB driver, no special USB controller is needed.” Contoh implementasi USBAsp [13]
Software Khazama dapat dipakai sebagai front-end [16]
Programmer AVR dengan ISP melalui port USB dengan chip USB
Pada programmer jenis ini, sebuah mikroprosesor (mikroprosesor programmer) memberikan sinyal ISP ke mikrokontroler AVR, sedangkan sinyal USB diterima dengan chip khusus USB, biasanya IC dari keluarga FTDI.
Programmer dengan USB to serial
Contoh programmer
Bus Pirate, programmer serba guna untuk berbagai mikrokontroler [17] . Teknik pemrograman AVR dengan programmer ini dapat dibaca di [18]
Bootloader
Programmer AVR dengan bootloader melalui port serial
Pada programmer jenis ini, pada AVR yang akan diprogram diaktifkan dulu suatu program kecil bernama bootloader. PC mengirimkan software yang akan diprogramkan ke program bootloader ini , kemudian program bootloader akan memprogram memori Flash dengan program yang diinginkan tersebut.
Programmer dengan bootloader
Mikrokontroler ATMega yang baru tidak memiliki software bootloader. Untuk menjalankan bootloader, software bootloader mesti dimasukkan dulu ke dalam flash memory dengan ISP ataupun dengan paralel programmer. Sebagian memori flash akan dipakai untuk program bootloader, sehingga memori yang tersisa untuk program aplikasi akan berkurang.
Memori bootloader di flash
Contoh software bootloader
Bootloader dibahas di application note 109 [19], detail teknisnya diuraikan di sini [20]
Variasi programmer ini adalah dengan menggunakan perangkat USB to Serial, sehingga dapat dipakai pada Desktop/Laptop yang memiliki port USB namun tidak memiliki port serial.
Programmer ini mengakses flash di AVR melalui port paralel di AVR, bukan melalui port ISP Pada waktu pemrograman diperlukan tegangan +12V pada pin tertentu, oleh karena itu teknik ini disebut programmer tegangan tinggi. Tegangan tinggi di sini tidak mencapai puluhan ataupun ratusan volt, tapi hanya +12 V. Keunggulannya utama programmer adalah dapat dipakai untuk memprogram chip AVR yang sempat dimatikan SPI atau pin Resetnya. Kelemahannya adalah rangkaian programmernya cukup kompleks dan juga chip mikrokontroler yang diprogram harus dilepas dari PCB.
Programmer high voltage
Terdapat beberapa rangkaian programmer yang berbasis berbasis dari board STK500 sebagai berikut:
Berikut ini perangkat software defined radio RTL-SDR-V3.
Salah satu fungsinya adalah untuk membuat penerima ADSB.
RTL-SDR V3 menurut situs RTL-SDR.com
RTL SDR V3 yang dibongkar sendiri
RTL SDR V3 dan casing
Salah satu komponen utama RTL-SDR V3 adalah chip tuner R820T2. Di sebelahnya ada kristal 28.8 MHz jenis TCXO (Temperature Compensated Crystal Oscillator).
Mikrokontroler STM32F103 Blue Pill yang masih baru hanya dapat diprogram melalui bootloader USART, yaitu menggunakan port serial di pin A9 dan A10. Untuk dapat diprogram melalui USB, maka kita mesti memasang dulu bootloader yang dapat mengenali proses upload melalui port USB.
Berikut ini adalah konfigurasi port serial untuk melakukan pemrograman dengan bootloader USART:
konfigurasi port serial untuk pemrograman
Koneksi ke PC menggunakan modul USB to Serial dengan tegangan 3,3 volt. Modul USB to Serial ini banyak dijual dengan berbagai tipe. Untuk mudahnya, bisa pakai yang menggunakan chipset FTDI, karena driver FTDI sudah ada di Windows, jadi mudah dikenali. Konverter USB-Serial dengan chipset CH340 ataupun Prolific PL2303 biasanya lebih murah, namun agak sedikit kompleks karena perlu instalasi driver.
Berikut ini STM32F103 yang sudah terhubung dengan konverter USB-Serial.
Rangkaian pemrograman USART bootloader
Mesti dipastikan bahwa tegangan output TTLnya adalah 3.3 volt. Ada konverter USB Serial yang dapat diset di 5 volt maupun 3.3 volt. Mesti hati-hati jangan sampai salah, karena bisa rusak.
Konverter USB to Serial FTDI
Program yang dipakai untuk melakukan pemrograman adalah “Flash Loader Demonstrator”, yang dapat diunduh di situs ST Micro : STM32 Flash loader demonstrator.
Untuk melakukan pemrograman, jumper BOOT0 dipindah ke “1”, sedangkan jumper BOOT1 tetap di “0”.
Board Bluepill yang saya pakai menggunakan PC13 sebagai LED indikator, jadi binary yang diambil adalah generic_boot20_pc13.bin. Jika LED indikator menggunakan port lain, maka file binary yang diambil mesti disesuaikan.
Setelah file binary itu diupload dengan “Flash Loader Demonstrator”, kembalikan posisi jumper ke posisi 0, kemudian restart board tersebut. Jika sukses , mestinya akan muncul port serial baru di device manager.
Pada tulisan ini diuraikan contoh perancangan suatu sistem kendali motor dengan menggunakan mikrokontroler ATMega328 atau Arduino Nano.
Batasan masalahnya adalah sebagai berikut
Input kecepatan (set point) menggunakan potensiometer analog.
Kecepatan ditampilkan dengan 2 buah LED 7 segment. LED yang tersedia dalam konfigurasi common anode dan common cathode. Arus maksimum pada LED adalah 20 mA.
Motor menggunakan motor DC 12 volt.
Komponen yang tersedia:
mikrokontroler ATMega328 / Arduino Nano
transistor BJT (NPN, PNP) & MOSFET (kanal P, kanal N).
resistor, induktor, kapasitor , dioda, relay
regulator DC
batere 12 volt DC
motor DC 12 volt
rotary encoder 400 pulsa per putaran, output A dan B
LED 7 segmen common cathode dan common anode
Blok Diagram Sistem
Berikut ini adalah blok diagram sistem kendali secara keseluruhan.
Blok diagram pengendali motor berbasis mikrokontroler ATMega328
Analisis Kebutuhan Pin
Daftar pin pada mikrokontroler ATMega328
Pin pada mikrokontroler terbatas, jadi perlu dianalisis dulu apakah pin yang ada cukup. Jika tidak cukup, maka harus melakukan ekspansi port, atau menggunakan mikrokontroler lain yang pin lebih banyak.
Jumlah pin pada ATMega328 adalah 23 buah, jadi perlu dianalisis dulu apakah pin yang ada cukup untuk menyambungkan semua periferal. Dalam prakteknya, beberapa pin sudah dipakai untuk fungsi lain, jadi tidak tersedia, misalnya di Arduino Nano pin berikut sudah dipakai:
PB6 & PB7 untuk kristal osilator
PC6 untuk RESET
PD0 untuk serial RX
PD1 untuk serial TX
Jadi dalam praktisnya, yang tersedia adalah 18 pin.
Analisis alokasi pin:
Potensiometer memerlukan 1 input analog, untuk itu dapat menggunakan salah satu dari pin PC0 (ADC0) sampai PC5 (ADC5)
Rotary encoder memiliki 2 output, jadi perlu 2 pin digital untuk membaca data dari rotary encoder.
Motor agar dapat bergerak 2 arah memerlukan transistor yang dipasang dalam konfigurasi ‘H Bridge’. Pada sebuah H-Bridge terdapat 4 transistor, jadi memerlukan 4 pin digital untuk masing-masing transistor. Jumlah pin digital dapat dikurangi jika menggunakan rangkaian logika sehingga hanya diperlukan 2 pin saja: direction dan PWM. Namun pada soal hanya disediakan transistor, resistor dan sebagainya, jadi reduksi dari 4 pin menjadi 2 pin hanya boleh dilakukan dengan transistor.
LED 7 segment dapat menggunakan cara langsung: 1 pin ke 1 LED, atau bisa juga menggunakan multipleksing. Jika menggunakan cara langsung, maka diperlukan 14 pin digital untuk mengendalikan 2 buah LED 7 segment. Jika menggunakan multipleksing, maka diperlukan (7+2) pin digital.
Alternatif 1: motor dengan 4 pin, LED langsung
Alokasi pin:
Potensiometer: 1 pin analog
Rotary encoer: 2 pin digital
Motor: 4 pin digital
LED: 14 pin
Total pin: 21 , jadi konfigurasi ini dapat dibuat.
Alternatif 2: motor dengan 4 pin, LED dengan multipleksing.
Potensiometer: 1 pin analog
Rotary encoer: 2 pin digital
Motor: 4 pin digital
LED: 9 pin
Total pin: 16 , jadi konfigurasi ini dapat dibuat.
Alternatif 3: motor dengan 2 pin, LED dengan multipleksing.
Potensiometer: 1 pin analog
Rotary encoder: 2 pin digital
Motor: 2 pin digital
LED: 9 pin
Total pin: 14 , jadi konfigurasi ini dapat dibuat.
Rangkaian Potensiometer
Potensiometer dipakai sebagai pembagi tegangan. Tegangan output (Vout) akan dapat dipakai untuk mengetahui sudut putaran potensiometer. Perlu diperhatikan bahwa Vin harus <= 5 volt, supaya Vout juga <= 5 volt. Jika Vout melebihi 5 volt, maka dapat merusak mikrokontroler yang bekerja pada 5 volt.
Potensiometer sebagai pembagi tegangan
Vout dihubungkan ke salah satu pin analog input pada ATMega328.
Rotary encoder memerlukan koneksi ke GND , tegangan supply VCC, dan ada output A dan B. VCC dapat dihubungkan ke tegangan 5 volt. Detailnya disesuaikan dengan datasheet dari rotary encoder tersebut. Output A dan B dihubungkan ke input digital di mikrokontroler.
Rotary encoder
Pin yang dipilih di mikrokontroler tergantung dari metode pembacaan input yang dipakai, ada beberapa cara:
menggunakan interupsi eksternal, maka perlu menggunakan pin INT0 (PD2) dan INT1 (PD3)
menggunakan interupsi PCINT, maka dapat menggunakan input digital mana saja.
menggunakan sampling dengan timer, maka dapat menggunakan input digital mana saja.
Rangkaian Motor DC
Sinyal output dari mikrokontroler hanya maksimal arus 40 mA dengan tegangan 5 volt, jadi tidak cukup untuk menggerakkan motor. Cara yang paling umum untuk menyambungkan motor DC ke mikrokontroler adalah menggunakan rangkaian ‘H Bridge’, dengan rangkaian ini motor dapat dikendalikan maju mundur.
H Bridge
Pada H-Bridge juga dipasang dioda pengaman (D1 , D2, D3, D4) untuk mengamankan arus yang timbul karena induktansi motor. Rangkaian ini memerlukan 4 output digital dari mikrokontroler.
H-Bridge menggunakan teknik PWM (Pulse Width Modulation) untuk mengatur energi yang diberikan ke motor DC, dan dengan demikian dapat mengatur kecepatan motor. Arah putaran motor juga dapat diatur dengan mengatur kombinasi transistor yang aktif.
Selain menggunakan H-Bridge , antar muka ke motor DC dapat juga menggunakan teknik berikut:
Output analog dari mikrokontroler, diperkuat dengan penguat / amplifier. Cara ini secara teoritis dapat dilakukan, namun dalam praktek jarang digunakan karena efisiensi penguat analog tidak setinggi teknik PWM.
Relay, namun masalahnya relay mempunya kecepatan yang lambat, sehingga tidak cocok untuk teknik PWM.
H-Bridge tersedia dalam bentuk modul yang sudah jadi, di dalamnya sudah ada transistor power dan antar muka dari mikroprosesor (CMOS/TTL) ke transistor tersebut, sehingga sangat mudah dihubungkan ke mikroprosesor. Contoh modul tersebut adalah di antaranya Toshiba TB6612FNG dan Infineon TLE 5025-2
Cara 1: tanpa multipleksing. Setiap LED di 7 Segment dihubungkan ke output mikrokontroler. Cara ini memerlukan 14 pin output digital di mikrokontroler, namun memudahkan pemrograman karena tidak perlu melakukan update rutin.
LED 7 Segment tanpa multipleksing
Cara 2: dengan multipleksing. LED 7 Segment dapat dihubungkan dengan menggunakan multipleksing seperti rangkaian berikut ini:
LED 7 Segment common cathode
Teknik multipleksing ini hanya memerlukan 9 pin digital output, namun memerlukan software yang lebih kompleks.
Perhitungan nilai resistor seri LED
Asumsi tegangan drop pada LED adalah 2 volt.
Tegangan pada resistor adalah 3 volt.
Arus dibatasi di 20 mA
Nilai resistor = R = V/I = 3 volt / 20 mA = 150 ohm. Jadi nilai resistor sekurang-kurangnya adalah 150 ohm. Untuk itu resistor untuk LEd dapat menggunakan 220 ohm.
Perhitungan nilai resistor basis transistor (R1 dan R2)
Asumsi penguatan arus transistor = 100. Angka ini normal untuk transistor sinyal kecil.
Asumsi Vbe = 0.7 volt
Arus total LED 1 digit= 20 mA x 7 = 140 mA
Arus kolektor transistor = 140 mA
Arus basis minimal = 20 mA / 100 = 1,4 mA
Tegangan pada R1 = 5-0.7 = 4.3 volt
R = V/I = 4.3 / 1,4 mA = 3071 ohm. Jadi nilai R paling besar adalah 3071 ohm. Untuk itu R1 dan R2 bisa menggunakan nilai 1000 ohm yang mudah didapat.
Sumber daya yang tersedia hanya 12 volt, sedangkan rangkaian memerlukan 12 volt (motor) dan 5 volt (lainnya). Untuk itu diperlukan regulator yang sesuai, misal regulator 7805 yang dapat mengubah input 12 volt menjadi output 5 volt.
Potensiometer memerlukan tegangan 5 volt untuk Vin. Jika menggunakan 12 volt, maka Vout juga dapat mencapai 12 volt, sehingga dapat merusak mikrokontroler.
Motor DC memerlukan 12 volt, sehingga tegangan 12 volt dapat langsung disambung ke rangkaian motor driver.
Mikrokontroler ATMega328 memerlukan VCC 5 volt, sehingga memerlukan regulator 5 volt.
Rotary encoder memerlukan tegangan 5 volt, sehingga memerlukan regulator 5 volt.
LED 7 Segment jika common cathode tidak terhubung ke VCC, sehingga tidak perlu sambungan ke sumber daya. Jika menggunakan common anode, maka bagian common (anode) dihubungkan ke output regulator 5 volt. Perlu berhati-hati menghubungkan LED ke 12 volt, karena kalau salah , maka akan ada tegangan 12 volt masuk ke pin mikrokontroler, sehingga dapat merusak mikrokontroler.
Rangkaian power supply
Skema Rangkaian Lengkap
[under construction]
Penentuan Frekuensi Sampling
Frekuensi sampling ditentukan dari bandwidth sistem yang dikendalikan. Sesuai dengan kriteria Nyquist, frekuensi sampling adalah 2x frekuensi maksimum sistem. Pada persoalan ini nilai frekuensi sistem belum diketahui, namun dapat dihitung dengan mengetahui parameter sistem (Gc(s) dan Gp(s), ataupun dapat juga diukur dengan memperhatikan respon sistem terhadap sinyal input step.
Interupsi pada Perangkat Lunak
Berikut ini beberapa bagian pada sistem kendali ini yang memerlukan interupsi:
Algoritma sistem kendali digital memerlukan suatu frekuensi sampling tertentu. Untuk mendapatkan frekuensi sampling ini perlu interupsi TIMER.
Rotary encoder untuk pembacaan input menggunakan interupsi eksternal (INT0,INT1), atau PCINT, agar setiap transisi dari output rotary encoder menghasilkan interupsi pada mikrokontroler
Rotary encoder memerlukan interupsi TIMER, untuk dapat menghitung kecepatan, berdasarkan jumlah pulsa yang timbul dan waktu yang sudah berlalu.
LED 7 Segment memerlukan interupsi jika menggunakan konfigurasi multipleksing. Jika tidak menggunakan multipleksing, maka tidak memerlukan interupsi untuk update display.
Potensiometer tidak memerlukan interupsi secara langsung, namun perlu disampling sesuai dengan frekuensi sampling sistem kendali.
Diagram Alir Perangkat Lunak
Detail diagram alir (flowchart) tergantung dari konsep software yang dipakai. Berikut ini salah satu desain:
Diagram Alir Sistem Kendali
Penjelasan:
Rotary encoder menggunakan interupsi PCINT. Tiap kali ada transisi/perubahan di output A ataupun B, maka akan timbul interupsi. Dari sinyal ini dapat diketahui motor bergerak maju atau mundur. Angka posisi ini diakumulasikan oleh blok ‘Update counter posisi’
LED 7 Segment perlu update rutin jika menggunakan teknik multipleksing. Update ini ditangani oleh ‘Update Display LED’ yang dipanggil oleh interupsi TIMER.
Algoritma kendali digital memerlukan sampling secara rutin, untuk itu memerlukan interupsi TIMER secara teratur. Fungsi ini ditangani oleh blok ‘Sampling Kendali’.
Hal yang dikerjakan oleh blok ‘Sampling Kendali’ adalah sebagai berikut:
membaca posisi potensiometer berdasarkan tegangan analog yang masuk dari potensiometer ke ADC
menghitung posisi / kecepatan motor saat ini, berdasarkan angka counter posisi saat ini dan angka counter posisi sebelumnya.
melakukan perhitungan algoritma kendali, misalnya dengan menggunakan teknik PID (Proporsional, Integral, Derivative)
mengirimkan sinyal kendali hasil perhitungan dengan menggunakan output PWM dan Direction ke motor driver.
Jika display LED menggunakan teknik langsung tanpa multipleksing, maka flowchart dapat dimodifikasi sebagai berikut:
Kyoritsu KEW1018, multimeter kecil dengan kemampuan tinggi.
Kyoritsu KEW 1018
Kyoritsu KEW1021, multimeter dengan ukuran standar.
Kyoritsu KEW 1021R
Perbandingan ukuran antara KEW1018 dan KEW1021R. KEW1021 juga dilengkapi backlight berwarna oranye.
Kyoritsu KEW 1018 dan KEW 1021R
Berikut perbandingan ukuran probe. KEW1018 probenya sangat mungil.
Probe Kyoritsu KEW 1018 dan KEW 1021R
Berikut ini penampakan Kyoritsu KEW-1018 tanpa casing plastiknya.
Kyoritsu KEW 1018 tampak belakang
Nampak kecil sekali. 1 kotak di gambar berukuran 1 cm x 1 cm. Baterai menggunakan 2 buah baterai kancing lithium tipe SR-44
Kyoritsu KEW 1018 tampak depan
Kelebihan utama KEW 1021R dibandingkan KEW1018
Ada fitur pengukuran kapasitansi
ada fitur pengukuran arus listrik
Dimensi lebih besar, lebih enak di tangan terutama bagi yang bertangan besar. KEW1018 mungkin enak dipakai bagi anak-anak yang sedang belajar elektronika.
Tampak samping P3022Tampak depan P3022Terminal pada P3022P3022 dengan bracket terpasangP3022 dengan bracket
Sensor ini menggunakan konektor jenis ‘turret tag’, yang cara menyambungnya adalah dengan disolder, seperti berikut ini:
Turret terminal dengan solder
Informasi Teknis
P3022-V1-CW360 Deskripsi
The Hall Angle Sensor is a miniature 360 degree sensor which works based on the principle of the Hall effect. It is compatible with the DFRobot Gravity sensor interface, and works with a 5V DC power supply. The analog output is also 0~5V so it can work directly with Arduino.
The Hall angle sensor works by converting its angle information to an electrical signal. When the rotation angle of the object is passed to the axis of rotation sensors, it outputs an electrical signal that is proportional to the rotational angle.
The angular sensor shell is constructed from robust aluminum alloy, using Hall-type non-contact technology. It includes high-quality imported high-speed stainless steel bearings and other components for reduced frictional resistance when taking readings.
The unit offers a long service life and is compact, with a high resolution, smooth rotation and dynamic noise. This unit is guarantees performance in various harsh industrial environments and is protected from electromagnetic interference, water, oil, vibration and shock. A typical application is crank angle sensing and steering angle measurement.
Berikut ini rotary encoder yang sudah dibuka casingnya
Berikut ini detail close up rangkaian dalam dari rotary encoder.
Nampak ada komponen aktif berupa regulator LM7805 dan 2 buah transistor serta dioda. Isi dalamnya mirip dengan yang dibongkar di artikel https://wemakethings.net/2014/05/26/rotary-encoder-teardown/, namun tidak sama persis.
Berikut ini rangkaian versi lain dari https://wemakethings.net/2014/05/26/rotary-encoder-teardown/:
rotary encoder
Berikut ini keterangan menurut situs Aliexpress (https://www.aliexpress.com/item/lpd3806-600bm-g5-24c-AB-Two-Phase-5-24V-600-Pulses-Incremental-Optical-Rotary-Encoder/32857035640.html):
AB Two Phase 5-24V 600 Pulses Incremental Optical Rotary Encoder
Uses:
For measuring the rotational speed of the object, angle, acceleration, and length measurements.
Scope of use:
Suitable for intelligent control of various displacement measurement, automatic fixed-length leather automatic guillotine machine, steel fixed length cutting controller, civil measured height human scale, college game with robots.
Feature:
AB two-phase incremental optical rotary encoder 600 pulses, NPN open collector output . (We also have 360 pulses and 600 pulses in stock, including NPN open collector output and voltage output two kinds of output. If you need please leave message for which one, or we will send by default 600 pulses and NPN open collector output ).
Standard with 1.5 m cable
Performance: 400 pulses / rev.
Operating voltage: DC5-24V
Maximum mechanical speed: 5000 rev / min
The electrical response frequency: 20K / sec
Integrated speed: 2000 rev / min
Size: Encoder body size: φ38mm; shaft φ6 × 13mm; axis platform: High 5mm, φ20mm; fixing holes for: M3 screws
Three mounting holes on the circle 30, and the other three mounting holes on the 28 circle ; side qualify.
Output:
AB rectangular two-phase quadrature pulse output circuit output NPN open collector output type, this output type can and with internal pull-up resistor connected directly to the microcontroller or PLC, such as 51 single or Mitsubishi PLC (PLC’s input to switch connected to 0V should work), Note: If the encoder is not connected to the device can not be directly oscilloscope oscilloscope (open collector output when there is no pull-up resistor, there is no voltage output) to oscilloscope please plus two pull-up resistor AB two-phaseoutput;
Pengiriman data secara serial itu susah-susah gampang, terutama kalau pengiriman data tersebut mesti melalui daerah yang banyak noisenya.
Sumber permasalahan pengiriman data serial antara lain:
Noise yang masuk ke kabel data secara kapasitif maupun induktif
Perbedaan tegangan ground antara pengirim dan penerima, menyebabkan terjadinya ground loop. Perbedaan ini dapat terjadi karena memang sudah bawaan, karena ada perangkat tertentu, karena petir, dan juga karena ada induksi medan magnet ke dalam kabel komunikasi.
Berikut ini mekanisme ground loop. Medan magnet B (hijau) dari luar sistem menyebabkan arus noise I (merah). Arus noise ini akan menjadi sinyal tambahan bagi C2, sehingga sinyal yang diterima C2 tidak sama dengan sinyal dari C1, melainkan sudah ditambah dengan noise
Ground loop
Ground loop terjadi karena ada beda potensial antara ground di pengirim dan ground di penerima.
Masalah ground loop
Berikut beberapa solusi:
#1 Menggunakan kabel fiber optik, karena kabel fiber optik tidak terganggu oleh radiasi gelombang radio, dan juga tidak terpengaruh perbedaan tegangan ground antara pengirim maupun penerima
#2 Menggunakan kabel coaxial, karena kabel koaksial kebal terhadap gangguan radiasi. Dengan catatan kabel yang digunakan berkualitas baik, seperti misalnya menggunakan kabel koaksial yang menggunakan shield berupa tabung logam. Contoh di artikel https://elektrologi.iptek.web.id/perbandingan-kabel-50-ohm-coaxial-di-pasaran/
#3 Menggunakan pengiriman sinyal secara differensial, misalnya dengan protokol RS-485 dengan kabel twisted pair . Ada yang tanpa pelindung unshielded twisted pair (UTP), dan ada juga yang lebih baik shielded twister pair (STP). Kabel jenis ini umum dipakai untuk kabel ethernet, sehingga mudah dicari di pasaran. Sinyal pada kabel ini dikirim secara differensial, salah satu protokol yang umum dipakai adalah RS-422/RS-485, yang komponennya mudah dicari di pasaran.
#4 Menggunakan kabel triaxial, kabel ini mirip dengan coaxial, hanya saja menggunakan 2 lapis shield. Sulit dicari di pasaran Indonesia karena jarang yang pakai dan cukup mahal, serta konektornya khusus.
#5 Menggunakan filter analog untuk menghilangkan sinyal noise yang tidak diinginkan. Namun teknik ini hanya dapat dilakukan jika frekuensi noise berbeda dengan frekuensi sinyal kerja yang diinginkan.
Solusi ground loop dengan coaxial dan optocouplerMisalkan kecepatan transfer 2 Mbps dengan baseband tanpa modulasi, maka menurut teorema Nyquist minimal bandwidth yang diperlukan adalah 4 MHz, jadi sinyal dari 0Hz sampai 4Hz harus dapat lewat, jadi filter harus di atas 4 MHz. Masalah timbul jika ternyata noise yang terjadi ada di frekuensi 0 ~ 4 MHz. Hal ini dapat dicek menggunakan osiloskop, dengan mengamati bentuk sinyal yang timbul, apakah masih dalam rentang 0 ~ 4 MHz.
Filter low pass 4.5 MHz
Jika frekuensi noise ada di 0 ~ 4 MHz, maka filter low pass 4.5 MHz tidak bermanfaat mengurangi noise.
#6 Menggunakan optocoupler untuk memotong ground loop. Sinyal dari optocoupler dikirim dengan kabel coaxial supaya tidak terganggu noise. Pada contoh di bawah ini, optocoupler dipasang di sisi pengirim, namun dapat juga dipasang di sisi penerima.
Berikut ini teknik yang lebih kompleks, gabungan RS-485 , shielded cable dan optocoupler, seperti dijelaskan di dokumen The RS-485 Design Guide
Isolation transceiver
#7 Memperkuattegangan sinyal yang dikirim, dengan harapan memperbaiki Signal to Noise ratio (S/N)
#8 Memperkuat arus sinyal yang dikirim dengan mengurangi impedansi output supaya noise tidak mudah masuk.
#9 Menggunakan terminasi untuk menghindari pemantulan sinyal. Terminasi terutama diperlukan jika panjang kabel sudah lebih atau mendekati panjang gelombang pada frekuensi kerja sinyal.
#10 Menggunakan kabel yang redaman lebih kecil, sehingga sinyal yang sampai di penerima masih cukup kuat. Cuma kabel yang redaman kecil ini secara fisik lebih besar dan lebih mahal harganya.
Solusi di atas adalah solusi-solusi dari layer hardware, selain itu dapat juga dilakukan pengolahan sinyal digital.
#10 Menggunakan teknik error detection, seperti parity bit, checksum, cyclic redundancy check (CRC). Teknik ini dapat mendeteksi kesalahan, namun tidak dapat memperbaiki sinyal yang rusak.
Berikut ini beberapa foto pembukaan paket Mikrotik RB2011iLS-IN. Packing menggunakan kayu, sehingga agak sulit membukanya.
Mikrotik Routerboard RB2011iLS-IN
Kardus Mikrotik berhasil dibukaMembuka kardus mikrotik RB2011Kotak Mikrotik RB2011 siap dibuka dengan kekerasanPerbandingan kardus Mirotik RB2011 dengan kardus Mikrotik hAP
Berikut ini foto-foto prototipe kit untuk percobaan pengendalian posisi/kecepatan motor dengan menggunakan kendali digital berbasis sistem mikroprosesor.
Komponen utama adalah sebagai berikut
Motor DC 12 volt tipe 775
Poros utama 8 mm
Pillow bearing 8mm
Rotary Encoder 400 pulse , poros 6 mm
Dua buah Pelat Aluminium 5mm sebagai momen inersia
closed loop timing belt dengan panjang 160 mm
Pulley GT2 dengan poros 8 mm (untuk dipasang di poros utama)
Pulley GT2 dengan poros 6 mm (untuk rotary encoder)
Kit Kendali Motor Digital dalam keadaan terbuka
Penutup diperlukan agar melindungi kit praktikum dan memudahkan penyimpanan.
Kit Kendali Motor Digital dalam keadaan tertutup
Berikut ini komponen utama yaitu motor 12 volt tipe “775”, atau lengkapnya GRS-775-PH-3865DF-12,0VDC GT2017 C.
Motor tipe 775
Sebagai momen inersia menggunakan 2 buah pelat aluminium dengan tebal 5mm dengan diameter 12 cm.
Tepat di balik pelat aluminium dipasang sebuah pillow bearing sebagai dudukan poros.
Poros dan pillow bearing
Rotary encoder 400 pulsa sebagai sensor posisi dan kecepatan motor. Outputnya berupa sinyal digital yang dibaca oleh sistem mikroprosesor
Poros utama dihubungkan ke rotary encoder dengan closed loop timing belt dengan panjang 160 mm. Terdapat pulley di masing-masing poros.
Timing belt dan pulley
Motor dihubungkan ke poros utama dengan flexible coupling. Nampak juga dudukan poros menggunakan pillow bearing.
Flexible Coupling
Output dari sistem mikroprosesor (Arduino, ARM dan sebagainya) tidak cukup kuat untuk menggerakkan motor. Untuk itu perlu diperkuat dulu dengan motor driver.
Contoh pertama adalah motor driver yang populer: L298N yang menggunakan komponen aktif dengan teknolgi BJT (Bipolar Junction Transistor).
Motor driver L298NMotor driver L298N
20 unit Motor Driver L298N
Sebagai alternatif motor driver adalah IC TB6612FNG yang menggunakan teknologi MOSFET