Nuvoton Learning Board Nu-LB-NUC140

Nuvoton NUC140
Nuvoton Nu-LB-NUC140

Power Supply

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

  • Penjelasan singkat [2]
  • Datasheet [3]
  • Datasheet [4]

I2C EEPROM

Ada 1 buah EEPROM dari tipe 24LC64

  • Penjelasan singkat [5]
  • Datasheet [6]

LCD

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.

Skema kabel konektor serial:

DB9 female <-> DB9 female
pin 2 <-> pin 2
pin 3 <-> pin 3
pin 5 <-> pin 5

Buzzer

Buzzer mempunyai frekuensi fix 2400 Hz Dapat dinyalakan dengan pin GPB11 (active low)

Berikut ini kode untuk menyalakan Buzzer:

DrvGPIO_ClrBit(E_GPB,11);

Berikut ini kode untuk mematikan Buzzer:

DrvGPIO_SetBit(E_GPB,11);

Potensiometer

Potensiometer dipakai sebagai input analog untuk ADC pada pin GPA7

Tombol Reset

Berfungsi mereset mikroprosesor

Tombol Interupsi

Tombol SW_INT memberikan interupsi jika ditekan. Contoh penggunaan ada di Percobaan Software Sample dari Nu-LB-NUC140

Codec WAU8822

Codec WAU8822 berfungsi menjalankan input output analog

  • Informasi tentang chip ini [1]
  • Datasheet File: “WAU8822 Data Sheet rev 0.86.pdf” WAU8822_Data_Sheet_rev_0.86
  • 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”

Alokasi Pin Mikroprosesor

Percobaan

Beberapa percobaan yang telah dilakukan dengan board ini

Online Resources

  • Membeli board online [8]
  • Application Notes [9]
  • Nuvoton Product Page [10]
  • Schematic [11]
  • Device Driver and Support Library [12] Board Support Package terakhir adalah NUC100Series BSP_CMSIS V1.05.001.zip
  • Official Forum [13]
  • Development tools dari CooCox [14]. Di DVD Nuvoton yang baru sudah disertakan Coocox tersebut.
  • Datasheet Audio Codec WAU8822 [15]
  • Forum diskusi resmi Nuvoton http://www.nuvoton-m0.com/

Programmer MCS 51

Mikrokontroler MCS-51 dapat diprogram melalui ISP (In System Programming) dan melalui parallel Programming.

Berbagai rangkaian programmer MCS-51

Programmer ISP melalui Port Paralel

Programmer yang dihubungkan dengan port parallel di desktop PC.

Contoh:

  • Rangkaian sederhana dengan buffer 74HC541 [1], sudah ada softwarenya juga
  • Rangkaian sederhana dengan buffer 74HCT367 [2]
  • Rangkaian sederhana tanpa buffer [3] . Kurang dianjurkan, karena mudah merusak port parallel desktop PC
  • Easy-Downloader V2.0 [4]
  • Programmer tanpa buffer, hanya pakai resistor untuk pembatas arus [5]
Programmer MCS51 dengan buffer 74LS244
Programmer MCS51 dengan buffer 74LS244

Programmer ISP melalui USB dengan bit banging

Programmer ini menggunakan interface USB yang langsung dimasukkan ke sebuah mikrokontroler.

Contoh:

  • USB 8051/AVR programmer [6] , rangkaian ini aslinya dari USBasp [7]. Rangkaian ini ada yang sudah menjual sudah jadi [8]

Programmer ISP melalui USB dengan chip USB

Contoh

  • USB 51 ISP Downloader buatan Prasimax [9]

Parallel Programming

Programmer Parallel melalui port paralel PC

Contoh:

  • Programmer AT89C2051 dengan port parallel PC [10]

Programmer AVR

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
pin ISP pada ATMega8535

Berikut ini rangkaian dasar pemrograman ISP pada ATMega8535

Rangkaian ISP 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
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
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
Programmer port paralel

Blok diagram rangkaian dengan buffer adalah sebagai berikut:

 

Programmer paralel dengan buffer
Programmer paralel dengan buffer

Contoh hardware rangkaian programer jenis ini adalah sebagai berikut:

Sebagai pasangan hardware programmer, diperlukan juga software di PC untuk melakukan programming. Contohnya adalah sebagai berikut:

Programmer AVR dengan ISP melalui port serial dengan bit banging

Blok diagram sederhana adalah sebagai berikut:

Programmer serial bit banging
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 .

Software di PC dapat menggunakan PonyProg [6]

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 serial dengan mikrokontroler
Programmer serial dengan mikrokontroler

 Programmer AVR dengan ISP melalui port USB dengan bit-banging

Port USB
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
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]
  • USB Tiny ISP [14]

Contoh produk jadi:

Beberapa software yang dapat dipakai:

  • 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
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
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
Memori bootloader di flash

 

Contoh software bootloader

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.

Contoh:

High Voltage Parallel Programmer

PROGRAMMER TEGANGAN TINGGI (HV PROGRAMMER)

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
Programmer high voltage

Terdapat beberapa rangkaian programmer yang berbasis berbasis dari board STK500 sebagai berikut:

Programmer paralel tegangan tinggi sederhana:

HVSP (High Voltage Serial Programming)

AVR HVSP
AVR HVSP [sumber]

Upload Program ke STM32F103 Blue Pill Melalui Port USB di Windows

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
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
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
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”.

 

Boot 0 pada posisi 1
Boot 0 pada posisi 1

 

Boot 0 pada posisi 0
Boot 0 pada posisi 0

Untuk percobaan ini digunakan bootloader USB yang kompatibel dengan Arduino (STM32duino-bootloader) , dapat diambil di situs https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries.

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.

Untuk pemrograman dengan Arduino, perlu beberapa tahap instalasi di Arduino, sesuai dengan petunjuk di https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation

Referensi

 

Perancangan Pengendali Motor Berbasis Mikrokontroler

Kit kendali motor digital
Kit kendali motor digital

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
Blok diagram pengendali motor berbasis mikrokontroler ATMega328

Analisis Kebutuhan Pin

ATMega328
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
Potensiometer sebagai pembagi tegangan

Vout dihubungkan ke salah satu pin analog input pada ATMega328.

Referensi:

Rangkaian Rotary Encoder

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
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
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

Motor driver TB6612FNG
H-Bridge Motor driver TB6612FNG

TLE 5025-2 kemasan TO-220
TLE 5025-2 H-Bridge dengan kemasan TO-220

Referensi

Rangkaian LED 7 Segment

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
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
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.

Referensi:

Rangkaian Sumber Daya

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
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
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:

Flowchart Kendali Digital Sederhana
Flowchart kendali digital sederhana

Tips Pengiriman Data Serial

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
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
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.

 

Solusi ground loop dengan coaxial dan optocoupler

Berikut ini teknik yang lebih kompleks, gabungan RS-485 , shielded cable dan optocoupler, seperti dijelaskan di dokumen The RS-485 Design Guide

Isolation transceiver
Isolation transceiver

#7 Memperkuat tegangan 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.

#11 Menggunakan teknik error correction, seperti Reed Solomon, Viterbi

Referensi

 

Kit Percobaan Kendali Motor Digital

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

    • Kit Kendali Motor Digital dalam keadaan terbuka

Penutup diperlukan agar melindungi kit praktikum dan memudahkan penyimpanan.

Kit Kendali Motor Digital dalam keadaan terbuka
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
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 pillow bearing timing belt
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
Timing belt dan pulley

 

Motor dihubungkan ke poros utama dengan flexible coupling. Nampak juga dudukan poros menggunakan pillow bearing.

Flexible Coupling
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 L298N
Motor driver L298N
Motor driver L298N
Motor driver L298N

 

Motor Driver L298N
20 unit Motor Driver L298N

 

Sebagai alternatif motor driver adalah IC TB6612FNG yang menggunakan teknologi MOSFET

Motor driver TB6612FNG
Motor driver TB6612FNG

 

Motor Driver TB6612FNG
20 unit Motor Driver TB6612FNG

 

Motor DC tipe 775
Motor DC tipe 775

 

Motor DC tipe 775
Motor DC tipe 775

Referensi

Board ARM STM32F103CBT6

Berikut ini beberapa foto terkait STM32F103. Nantinya akan dilengkapi dengan hasil-hasil percobaan dengan STM32F103

STM32F103
Board STM32F103 “Blue Pill”

Layout PCB STM32F103
Layout PCB STM32F103

STM32F103 Pinout Diagram

STM32F103 Pinout Diagram

Pemrograman

Upload program ke STM32F103 dapat dilakukan dengan 3 cara:

  • Menggunakan bootloader internal yang dapat diaktifkan dengan mengubah setting pin BOOT0 menjadi 1. Pada mode ini program dapat dimasukkan menggunakan port serial yang terhubung pada PA9 dan PA10. Port serial pada STM32F103 menggunakan level TTL 3.3 volt, sehingga perlu konverter USB to serial 3V3 supaya dapat dihubungkan ke PC/Laptop.
  • Menggunakan pin SWD (Serial Wire Debugging). Untuk programming cara ini mesti menggunakan modul ST LINK V2
  • Menggunakan bootloader USB. Bootloader dapat menggunakan port USB untuk memasukkan program sehingga lebih praktis dibandingkan bootloader internal. Bootloader USB ini mesti dimasukkan menggunakan bootloader internal ataupun SWD.
Upload program ke STM32F103
Upload program ke STM32F103

Bootloader

  • Serial (TX1/RX1, atau pin PA9 dan PA10) : Built in bootloader yang tersambung ke port serial 1 di STM32F103
  • SWD (DIO/DCLK, atau pin JT): STLink v2
  • USB (D+/D- atau pin PA11 dan PA12)Custom boot loader, yang dapat dihubungkan ke USB

Untuk memasukkan software dari Windows menggunakan bult in bootloader, dapat menggunakan software Flash Demonstrator dari STMicro http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html

Salah satu custom boot loader yang sering dipakai adalah STM32duino bootloader, yang memungkinkan pemrograman STM32F103 dengan menggunakan IDE Arduino. Petunjuk instalasinya ada di https://github.com/rogerclarkmelbourne/STM32duino-bootloader

Pengembangan

Pembuatan software untuk STM32 ini dapat dilakukan dengan berbagai cara:

Links:

Belajar Mikrokontroler ARM

Berikut ini beberapa bahan bacaan untuk belajar menggunakan prosesor ARM

 

 

STM32F103
Board STM32F103

Berikut beberapa buku teks terkait prosesor ARM:

  • Carmine Noviello, Mastering STM32, Leanpub 2016
  • Geoffrey Brown, Discovering the STM32 Microcontroller, Indiana University, 2012 (https://www.cs.indiana.edu/~geobrown/book.pdf) , versi terakhir 5 Juni 2016
  • Jonathan Valvano, Embedded Systems: Introduction to ARM Cortex-M Microcontrollers, vol 1, 2013
  • Jonathan Valvano, Embedded Systems: Introduction to ARM Cortex-M Microcontrollers, vol 1 5th edition, 2014
  • Jonathan Valvano, Embedded Systems: Real-Time Interfacing to ARM Cortex-M Microcontrollers vol 2, 4th Edition,  July 2014
  • Jonathan Valvano, Embedded Systems: Real-Time Operating Systems for ARM Cortex-M Microcontrollers vol 3, 4th Edition,  January 2017
  • Trevor Martin, The Insider’s Guide to The STM32 ARM Based Microcontroller, Hitex (UK) Ltd., 2008
  • Ying Bai, Practical Microcontroller Engineering with ARM Technology, IEEE Press, Wiley 2016

 

 

 

Penggerak Motor Untuk Slider Varavon Slidecam Lite 1000

Slidecam Lite 1000 adalah slider buatan Varavon sepanjang 1 meter.

Varavon Lite 1000
Varavon Lite 1000

Slider ini dapat digerakkan secara manual dengan menggesernya dengan tangan. Untuk beberapa aplikasi seperti time lapse, lebih nyaman kalau kita menggunakan penggerak motor yang dapat menggerakkan slider ini secara otomatis.

Varavon mengeluarkan produk motor untuk slider ini yaitu  Motorroid Slider Motorized Kit. Namun demikian harga kit motor ini lumayan mahal, 4x harga slidernya sendiri. Untuk itu akan dicoba membuat penggerak motor sendiri untuk slider tersebut.

 

 

Varavon Motorroid L1000
Varavon Motorroid L1000

Berikut ini foto penggerak slider

Motorized Slider
Motorized Slider

Perangkat penggerak dibagi menjadi 2 bagian:

  • Bagian mekanikal : meliputi motor, belt, pulley serta dudukannya
  • Bagian elektrikal: mikrokontroler Arduino , penggerak motor dan user interface.

Bagian mekanikal dibagi 3:

  • Dudukan motor : berisi dudukan motor di salah satu ujung
  • Dudukan tanpa motor: berisi dudukan pulley di ujung yang lain
  • Dudukan kamera dan belt: di bagian kereta yang berisi kamera

Berikut ini detail dari bagian dudukan motor

Tampak atas dudukan motor
Tampak atas dudukan motor

 

Tampak samping dudukan motor
Tampak samping dudukan motor

 

Tampak samping dudukan motor
Tampak samping dudukan motor dengan motor stepper

Bagian selanjutnya adalah dudukan pulley tanpa motor

Dudukan pulley tanpa motor
Dudukan pulley tanpa motor
Dudukan pulley tanpa motor
Dudukan pulley tanpa motor

Berikutnya adalah belt tipe 2GT. Pada belt ini dipasang kepingan aluminium untuk trigger microswitch, sehingga mikrokontroler Arduino dapat menghentikan motor jika kamera sudah sampai di salah satu ujung.

Pada belt juga dipasang tensioner untuk menjaga agar belt tetap kencang, tidak kendor.

Belt dan tensioner untuk belt
Belt dan tensioner untuk belt

Kepingan logam tipis dipakai sebagai sangkutan belt ke dudukan kamera. Ide menggunakan kepingan logam ini meniru dari Motorized Varavon.

Dudukan kamera
Dudukan kamera

Berikut ini saddle asli buatan Varavon. Nampaknya dibuat dari stainless steel yang dipunch dan ditekuk. Bagian-bagiannya dibuat berlubang agar ringan. Berhubung sulit untuk dicopy paste 100%, akhirnya dibuat saja modifikasinya.

Saddle asli Varavon
Saddle asli Varavon

 

Untuk penggerak motor menggunakan mikrokontroler Arduino Nano Clone.

Komponen tambahan yang diperlukan adalah L293D sebagai penguat arus untuk motor stepper. Power supply menggunakan 5 volt dari USB dan 12 volt dari power supply terpisah.

Pengendali Arduino Nano
Pengendali Arduino Nano

Proses Pembuatan

Berikut ini beberapa foto proses pembuatan motorized slider ini.

Proses pengeboran dengan holesaw 20 mm
Proses pengeboran dengan holesaw 20 mm

 

Lubang untuk motor stepper NEMA 17 selesai
Lubang untuk motor stepper NEMA 17 selesai
Dudukan Motor
Dudukan Motor

Pembuatan Dudukan Tanpa Motor

Dudukan tanpa motor
Dudukan tanpa motor

 

Proses pembuatan dudukan kamera dan belt

Komponen yang dipakai adalah aluminium tipis dari heatsink bekas, mur baut 3 mm dan mur baut 4 mm.

Sangkutan belt
Sangkutan belt

Dudukan kamera dibuat dari besi bekas casing power supply.

Casing power supply
Casing power supply
Slider dan plat besi
Slider dan plat besi

Komponen

Berikut ini beberapa komponen yang dipakai untuk pembuatan penggerak slider ini:

  • Belt 2GT
  • Pulley idle tanpa gigi
  • Pulley idle dengan gigi
  • Pulley dengan lubang 5 mm
  • Motor stepper Casun NEMA 17 https://elektrologi.iptek.web.id/motor-stepper-42shd0001-24/
  • Aluminium siku heatsink panjang 20 cm
  • Besi ex casing power supply
  • Aluminium ex heatsink tipis
  • Mur baut 5 mm
  • Mur baut 3 mm
  • Microswitch
Heatsink bekas
Heatsink bekas
Microswitch
Microswitch

Perangkat / Tools

Berikut ini beberapa perangkat yang dipakai untuk pembuatan penggerak slider ini:

  • Bor duduk
  • Mata bor 5 mm
  • Mata bor 3 mm
  • Tap drill 5 mm
  • Tap drill 3 mm
  • Mata bor holesaw 20 mm
  • Step drill 4 mm ~ 22 mm

 

Step Drill

Step drill dipakai untuk membuat lubang untuk motor stepper. Pertama-tama menggunakan bor holesaw 20mm, kemudian lubang diperlebar sampai 22 mm dengan step drill ini. Setelah itu masih perlu digerinda dengan Dremel supaya casing motor stepper yang berukuran 22 mm dapat masuk ke lubang tersebut.

Step Drill 4 mm ~ 22 mm
Step Drill 4 mm ~ 22 mm
Step Drill 4 mm ~ 22 mm
Step Drill 4 mm ~ 22 mm

Save

Save

Rangkaian Penggerak Relay Untuk Mikroprosesor

Mikroprosesor/mikrokontroler perlu rangkaian tambahan untuk dapat mengendalikan relay. Relay sering digunakan untuk mengendalikan perangkat yang arusnya cukup besar, dengan hanya menggunakan arus kecil pada kumparannya. Namun demikian arus untuk mengendalikan kumparan dapat mencapai puluhan miliampere, sedangkan output dari rangkaian digital dan mikroprosesor umumnya hanya sanggup beberapa miliampere. Untuk itu diperlukan penguat agar output beberapa miliampere dapat mengendalikan relay yang beberapa puluh miliampere.

Berikut ini beberapa rangkaian yang diperlukan untuk mengendalikan relay.

Pertama-tama adalah pengendali relay yang menggunakan transistor tipe BJT (Bipolar Junction Transistor). BJT tetap memerlukan arus kecil untuk mengendalikannya.

Pada rangkaian-rangkaian ini, BJT hanya ada dalam 2 kondisi: OFF dan saturasi, tidak pernah dalam keadaan aktif. Hal ini untuk mengurangi disipasi daya pada BJT, karena pada kondisi OFF dan saturasi adalah keadaan di mana disipasi daya transistor minimal.

NPN Sederhana

Relay dengan transistor NPN
Relay dengan transistor NPN

NPN Darlington

Relay dengan NPN Darlington
Relay dengan NPN Darlington

PNP Sederhana

Relay dengan transistor PNP
Relay dengan transistor PNP

Berikut ini beberapa variasi menggunakan model emitter follower, di mana beban relay dipasang di emitter. Rangkaian-rangkaian ini dapat berfungsi, namun tidak praktis karena untuk NPN akan memerlukan tegangan basis yang lebih besar daripada VCC, sedangkan pada PNP akan memerlukan tegangan basisi yang lebih kecil dari GND, alias perlu tegangan negatif.

NPN Emitter Follower

Relay dengan NPN emitter follower
Relay dengan NPN emitter follower

NPN Emitter Follower Darlington

Relay dengan NPN Darlington emitter follower
Relay dengan NPN Darlington emitter follower

PNP Emitter Follower

Relay dengan NPN emitter follower
Relay dengan NPN emitter follower

PNP Emitter Follower

Relay dengan transistor PNP emitter follower
Relay dengan transistor PNP emitter follower

Berikut ini beberapa cara mengendalikan relay dengan MOSFET. Keuntungan MOSFET adalah dikendalikan tegangan berbeda dengan transistor BJT yang dikendalikan arus, sehingga praktis tidak memerlukan arus pada inputnya, cocok untuk komponen yang arusnya kecil.

Relay dengan MOSFET n-channel
Relay dengan MOSFET n-channel
Relay dengan MOSFET p-channel
Relay dengan MOSFET p-channel

Input pengendali rangkaian relay dapat berasal dari berbagai sumber. Pada contoh berikut ini sumbernya adalah gerbang logika AND. Pada prakteknya dapat diganti dengan gerbang logika apa saja. Yang perlu diperhatikan adalah berapa tegangan pada kondisi HIGH, berapa tegangan pada kondisi LOW, serta berapa arus maksimal yang diperbolehkan dari output gerbang logika tersebut.

Relay dengan input dari rangkaian logika digital
Relay dengan input dari rangkaian logika digital

Selain dari gerbang logika, dapat juga disambungkan dengan output dari mikroprosesor / mikrokontroler. Tekniknya sama dengan menyambungkan ke gerbang logika, karena prinsipnya mikroprosesor isinnya juga gerbang logika.

Relay dengan input dari mikrokontroler
Relay dengan input dari mikrokontroler

Jika tidak ingin repot dengan membuat rangkaian transistor, kita dapat memakai modul relay yang sudah jadi. Berikut ini contohnya. Detail di artikel “Modul Relay 5 volt

Modul relay HW-316

Referensi

ESP8266 Sebagai Pengendali Relay 5 V

Berikut ini diuraikan rancangan teoritis cara mengendalikan relay 5 volt dari mikroprosesor ESP8266.

Relay umumnya memerlukan arus beberapa puluh milliampere, sedangkan output dari mikrokontroler biasanya hanya beberapa miliampere, sehingga output mikrokontroler perlu diperkuat agar dapat mengendalikan relay.

Ada beberapa variasi rangkaian penguat tersebut yang populer, di antaranya sebagai berikut:

  • Rangkaian transistor BJT (Bipolar Junction Transistor)
  • Rangkaian MOSFET
  • Rangkaian dengan IC ULN2803

Pada tulisan ini diuraikan rangkaian dengan transistor BJT.

Berikut adalah ide dasar rangkaian penguat dengan 1 transistor [Sumber]

Kendali relay dengan transistor
Kendali relay dengan transistor

Cara Kerja Rangkaian

Chip Output pada gambar tersebut adalah output dari mikrokontroler. Pada kasus ini digunakan mikrokontroler ESP8266, sehingga kita perlu cek datasheet ESP8266 untuk mengetahui sifat tegangan dan arus pada pin output ESP8266 tersebut.

Data ESP8266 diambil dari https://nurdspace.nl/ESP8266#Digital_IO_pins.

Berikut ini tabel sifat pin digital IO tersebut:

Variables Symbol Min Max Units
Input Low Voltage Vil -0.3 0.25xV10 V
Input High Voltage Vih 0.75xV10 3.6 V
Input leakage current IIL 50 nA
Output Low Voltage VOL 0.1xV10 V
Output High Voltage VOH 0.8xV10 V
Input pin capacitance Cpad 2 pF
VDDIO V10 1.7 3.6 V
Current Imax 12 mA
Temperature Tamb -20 100 C

Tegangan power supply ESP8266 diasumsikan 3.3 volt, pada tabel tersebut tegangan ini adalah VDDIO atau V10.

Output HIGH pada pin output adalah VOH yaitu 0.8 x V10 = 0.8 x 3.3 volt = 2.64 volt

Output LOW pada pin output adalah VOL yaitu 0.1 x V10 = 0.1 x 3.3 volt = 0.33 volt

Transistor BJT pada sistem ini hanya punya 2 kondisi: Off dan saturasi. Jika output dari mikrokontroler LOW , maka transistor OFF. Jika output dari mikrokontroler HIGH , maka transistor akan saturasi.

Analisis Output LOW

Jika output LOW, maka tegangan pada transistor antara basis dan emitter (Vbe) adalah 0.33 volt. Tegangan ini kurang dari Vbe yang diperlukan untuk mengaktifkan transistor (0.6 volt), sehingga transistor akan berada dalam keadaan OFF.

Analisis Output HIGH

Jika output HIGH, maka tegangan pada transistor antara basis dan emitter (Vbe) adalah 2.64 volt dikurangi tegangan jatuh pada Rb. Tegangan jatuh pada Rb rumusnya adalah Rb x Ib. Pada tahap ini kita perlu menentukan berapa Ib yang kita inginkan.

Dari mikrokontroler ESP8266 disebutkan bahwa Imax adalah 12 miliampere, artinya arus maksimal pada port output adalah 12 miliampere. Untuk amannya kita pakai saja arus 1 miliampere, sehingga Ib = 1 miliampere. Sebaiknya kita ambil nilai yang di bawah 12 mA supaya Ib tidak melampaui 12 mA walaupun nilai komponen berbeda karena toleransi.

Vbe pada transistor diasumsikan 0.6 volt.

Dengan asumsi ini maka rangkaian pengganti pada output HIGH adalah sebagai berikut:

Rangkaian pengganti
Rangkaian pengganti

V2 adalah memodelkan output ESP8266 pada keadaan HIGH yaitu 2.64 volt

Rb adalah resistor antara output ESP8266 dan transistor.

Vbe adalah memodelkan tegangan antara pin basis dan emiter pada transistor.

Dari data tersebut maka dapat dihitung berapa nilai Rb yang diperlukan.

V2 = Ib x Rb + Vbe

Rb = (V2 – Vbe ) / 1 mA = (2.64-0.6) / 1 mA = 2040 ohm

Nilai Rb yang diperlukan adalah 2040 ohm. Resistor 2040 ohm tidak ada di deret E12 , jadi kita dapat dekati dengan 1800 ohm atau 2200 ohm. Namun kita mesti hitung ulang arus basis Ib pada kedua alternatif itu.

V2 = Ib x Rb + Vbe

Ib = (V2-Vbe)/Rb

Jika Rb=1800 maka Ib= (2.64-0.6)/1800 = 1.13 mA

Jika Rb=2200 maka Ib= (2.64-0.6)/2200 = 0.927 mA

Kita ambil saja Rb = 1800 ohm, dengan Ib = 1.13 mA. Lebih besar sedikit dari target 1 mA, tapi masih jauh di bawah batas 12 mA.

Memilih Transistor

Kita coba dulu menggunakan model transistor NPN yang umum di pasaran, misal 2N3904.

Transistor NPN 2N3904
Transistor NPN 2N3904

Sifat penting 2N3904 untuk aplikasi relay:

  • Arus kolektor maksimum 200 mA
  • Penguatan arus hfe=30 ~ 300. Nilai ini termasuk toleransi pabrik dan juga tergantung dari temperatur transistor.

Perhitungan arus kolektor maksimal:

Ic = hfe x Ib = 30 x 1.13 = 33.9 mA

Maka jika arus relay yang diperlukan kurang dari 33.9 mA, maka rangkaian ini dapat dipakai dengan Rb = 1800 mA.

Jika diperlukan arus relay lebih dari 33.9 mA, maka kita dapat melakukannya dengan memperbesar Ib dengan mengurangi nilai Rb.

Misal dengan Ib = 6 mA , maka Ic = 30 x 6 = 180 mA

Jika dengan memperbesar Ib arus kolektor masih di bawah yang diperlukan, maka kita perlu menggunakan 2 buah transistor supaya penguatan total dapat diperoleh.

Peranan Dioda

Pada rangkaian pengendali relay tersebut ada sebuah dioda yang arahnya ke atas. Dioda ini berfungsi agar ketika transistor dimatikan, arus dari kumparan relay akan masuk ke dioda tersebut, sehingga tidak menghantam transistor. Jika transistor dihantam arus dari kumparan, maka transistor dapat rusak. Tipe dioda yang dipakai tidak kritis asalkan dapat dilalui arus sebesar arus relay (asumsi puluhan mA), kita bisa pakai yang umum di pasaran seperti 1N4001.

Dioda silikon 1N4001
Dioda silikon 1N4001

Sumber

Display LED Matrix Bandara Hasanuddin Makassar

Foto berikut ini adalah Display LED Matrix di Bandara Hasanuddin Makassar
aFoto berikut ini adalah Display LED Matrix di Bandara Hasanuddin Makassar

Display LED Matrix
Display LED Matrix

Pertanyaan: perlu berapa port I/O pada mikrokontroler untuk mengendalikan display seperti ini?

Display LED Matrix
Display LED Matrix

Pertanyaan: perlu berapa port I/O pada mikrokontroler untuk mengendalikan display seperti ini?

Sistem Komputer

View Post

Definisi Sistem Komputer

Menurut Webopedia:

A complete, working computer. Computer systems will include the computer along with any software and peripheral devices that are necessary to make the computer function. Every computer system, for example, requires an operating system.

Menurut PC Magazine

The complete computer made up of the CPU, memory and related electronics (main cabinet), all the peripheral devices connected to it and its operating system.

Menurut The Free Dictionary

a system of one or more computers and associated software with common storage

Menurut Business Directory

A system of interconnected computers that share a central storage system and various peripheral devices such as a printers, scanners, or routers. Each computer connected to the system can operate independently, but has the ability to communicate with other external devices and computers

Sistem komputer terdiri dari hardware (perangkat keras) dan software (perangkat lunak). Ada juga yang memasukkan manusia sebagai bagian dari komputer, namun kebanyakan komputer dapat bekerja mandiri tanpa intervensi manusia jika hardware dan softwarenya sudah dipasang.

Perangkat keras komputer terdiri dari komponen utama berikut ini:

  • Central Processing Unit (CPU), berfungsi sebagai pengolah utama
  • Memori, yang berisi data dan program
  • Perangkat input untuk memasukkan informasi ke dalam komputer
  • Perangkat output untuk mengeluarkan informasi dari komputer

Selain komponen utama tersebut di atas, diperlukan juga komponen-komponen lain yang jarang disebut ketika membahas komputer:

  • Sumber daya / power supply, bisa dari jala-jala listrik PLN, ataupun dari batere dan lain sebagainya
  • Casing dan pendukung mekanik lainnya

Blok diagram perangkat keras suatu sistem komputer dapat dilihat pada gambar berikut:

Pada gambar tersebut perangkat sistem komputer terdiri dari CPU, memori, input-output yang secara internal terhubung oleh bus data, bus alamat dan bus kendali. Hubungan ke luar dilakukan oleh periferal input (sensor) dan periferal output (aktuator). Sistem di luar sistem komputer tersebut dinyatakan sebagai lingkungan (berwarna kuning).

Software yang dipakai dalam suatu sistem komputer antar lain adalah sebagai berikut:

  • Firmware : software yang sudah menempel di perangkat keras komputer. Pada komputer desktop biasa firmware ini dikenal sebagai software BIOS (Basic Input Output Software)
  • Sistem Operasi: Software pertama yang dijalankan setelah firmware, dan akan menjadi dasar dari software aplikasi. Contohnya adalah sistem operasi Windows, Linux, Ubuntu, MacOS, dan sebagainya.
  • Aplikasi: software yang melakukan fungsi yang kita inginkan. Misalkan aplikasi desktop seperti Microsoft Office, Web Browser, dan lain sebagainya.

Pada beberapa sistem komputer yang sederhana, pemisahan software seperti di atas tidak ada, jadi softwarenya hanyalah sebuah aplikasi tanpa firmware maupun sistem operasi.

Susunan software tersebut dapat dilihat pada gambar berikut.

Pada bagian paling bawah adalah hardware sistem komputer. Di atasnya adalah BIOS untuk komputer, dan ada juga firmware/BIOS untuk hard drive/hard disk. Ya, hard disk komputer pun di dalamnya ada softwarenya.

Di atas BIOS adalah software sistem operasi, seperti Windows, MacOS dan Linux. Baru di atasnya adalah aplikasi-aplikasi.

Contoh Sistem Komputer

Beberapa sistem komputer yang ada di sekitar kita dan mudah terlihat:

  • Komputer desktop
  • Komputer notebook / laptop

Beberapa sistem komputer yang ada di sekitar kita namuin agak susah terlihat

  • Komputer server yang umumnya ada di sebuah datacenter khusus
  • Sistem Embedded / Sistem benam, yaitu komputer yang sudah tergabung dengan sistem lain dan hanya melakukan 1 pekerjaan saja. Contohnya komputer yang dipakai dalam mesin cuci, telepon genggam, smartphone, printer, dan sebagainya
  • Mikrokomputer: komputer yang sederhana dan sangat kecil sehingga seluruh komponen dapat dimasukkan ke dalam 1 buah rangkaian terintegrasi.

Berikut ini contoh sistem komputer notebook (sumber)

Berikut ini contoh sistem komputer berupa sebuah smartphone Samsung Galaxy S4 . Detailnya dapat dibaca di artikel Samsung Galaxy S4.

Sistem komputer Samsung Galaxy S4
Sistem komputer Samsung Galaxy S4

Berikut ini contoh sistem komputer kecil yang umum dipakai sebagai sistem embedded. Penjelasan lebih detail tentang sistem komputer tersebut dapat dibaca di artikel “Perbandingan kecepatan IO Digital pada Arduino

Sistem komputer kecil Arduino dan Arduino kompatibel
Sistem komputer kecil Arduino dan Arduino kompatibel

Berikut ini komponen ATMEGA168 dari Atmel yang di dalamnya sudah berisi CPU, memori dan beberapa periferal. Untuk menjalankan komponen tersebut sebagai sistem komputer cukup dengan menambahkan sumber daya dan beberapa perangkat input output lagi di luarnya.

ATMega168 dari Atmel
ATMega168 dari Atmel