Display Untuk Mikroprosesor

Berikut ini beberapa jenis display yang sering dipakai untuk sistem mikroprosesor berbasis Arduino:

  • Dot matriks 16×2
  • Dot matriks 20×4
  • E Paper / E-Ink display
  • OLED
  • LCD TFT / IPS

Antar muka yang dipakai ke display antara lain:

  • komunikasi paralel
  • komunikasi serial I2C
  • komunikasi serial SPI

Komunikasi paralel menggunakan banyak pin, karena setiap bit menggunakan 1 jalur. Antar muka serial hanya memerlukan pin sedikit. Display keluaran baru umumnya sudah menggunakan komunikasi serial.

Berikut ini contoh antar muka ESP32 LOLIN32 Lite dengan display E-INK, menggunakan protokol SPI.

Antar muka LOLIN32 LITE dengan display E-INK Heltec
Antar muka LOLIN32 LITE dengan display E-INK Heltec

Literatur:

Berikut ini antar muka ESP32 Lolin32 Lite dengan display OLED 0.91″, menggunakan protokol I2C.

ESP32 Lolin32 Lite dengan OLED 91
ESP32 Lolin32 Lite dengan OLED 91

Referensi

  • https://github.com/adafruit/Adafruit_SSD1306/blob/master/examples/ssd1306_128x32_i2c/ssd1306_128x32_i2c.ino

 

 

Berikut ini ESP32 dengan display LCD TFT berbasis chip ST7789 dengan resolusi 240×240 RGB

ESP32 Dengan TFT ST7789
ESP32 Dengan TFT ST7789

Referensi

  • TFT ST7789 https://simple-circuit.com/arduino-st7789-ips-tft-display-example/

 

Enkripsi Data Antara ESP32 Dan Windows

Mikrokontroler ESP32 dapat berkirim data melalui jaringan dengan komputer lain. Untuk menjaga kerahasiaan data yang dikirim tersebut, maka perlu dilakukan enkripsi  data yang dikirim. Pada tulisan ringkas ini akan ditinjau library enkripsi data yang kompatibel antara ESP32 dan Windows, sehingga memungkinkan pertukaran data dengan enkripsi antara keduanya.

Contoh enkripsi data dengan AES-128 dapat diikuti di artikel berikut ini: https://everythingesp.com/esp32-arduino-tutorial-encryption-aes128-in-ecb-mode/

Enkripsi pada contoh tersebut sangat sederhana:

  • menggunakan AES-128 dengan mode ECB (Electronic Codebook). Seperti diketahui, mode ECB ini punya banyak kelemahan, sehingga kalau mau lebih profesional kita mesti menggunakan mode lain seperti CBC (Cipher Block Chaining).
  • ukuran data harus kelipatan 16 byte. Jika ukuran data lebih dari 16 byte, maka fungsi mesti dipanggil berulangkali, dan kalau ukuran data bukan kelipatan 16, perlu dilakukan padding (pengisian) supaya menjadi kelipatan 16.

Selanjutnya bagaimana supaya data yang dienkripsi di ESP32 dapat dibaca di Windows? Untuk itu perlu diinstall library yang sama / kompatibel di Windows. Untuk mudahnya, pada contoh ini akan digunakan library yang sama supaya tidak perlu mengubah source code.

Library yang dipakai pada ESP32 tersebut adalah Mbed TLS (https://tls.mbed.org/) . Library Mbed TLS tersedia dalam bentuk source code, jadi dapat juga dicompile sendiri untuk platform lain. Untuk Windows, sudah ada library yang sudah dicompile, jadi tinggal diinstall saja. Versi yang tersedia untuk compiler GNU based (Cygwin, MinGW) dan Visual Studio.

Pada contoh berikut ini akan dipakai IDE Netbeans 8.2 dengan compiler Cygwin. Netbeans terbaru adalah versi 11, namun Netbeans yang sudah support C/C++ baru sampai versi 8.2, jadi versi 11 belum mendukung bahasa C / C++.

Library perlu diinstall dari program Setup dari Cygwin. Jalankan program instalasi Cygwin (setup-x86_64.exe), kemudian masuk ke menu pemilihan packages. Pilih View “Full”, dan Search di “mbedtls”. Pilih untuk install library mbedtls dan mbedtls-devel.

Cygwin Mbed TLS library
Cygwin Mbed TLS library

Nama library untuk Mbed TLS adalah libmbedcrypto. Selanjutnya tambahkan library tersebut di setting project dari Netbeans

Berikut ini tampilan library di Netbeans. Lokasi library tersebut adalah di C:/cygwin64/lib/libmbedcrypto.dll.a

Library Mbed TLS di Netbeans 8.2
Library Mbed TLS di Netbeans 8.2

Setelah itu melakukan porting dari program AES-128 di ESP32 ke Netbeans. Hasilnya dapat dilihat di tautan berikut:  https://github.com/waskita/embedded/blob/master/win-crypto/main.c

Berikut ini source code program hasil porting:


/*
* enkripsi data dengan AES-CBC
* modifikasi dari https://everythingesp.com/esp32-arduino-tutorial-encryption-aes128-in-ecb-mode/
* menggunakan library mbedtls dari cygwin
*/
#include "mbedtls/aes.h"
#include "string.h"
#include "stdio.h"

void encrypt(char * plainText, char * key, unsigned char * outputBuffer) {

mbedtls_aes_context aes;

mbedtls_aes_init(&aes);
mbedtls_aes_setkey_enc(&aes, (const unsigned char*) key, strlen(key) * 8);
mbedtls_aes_crypt_ecb(&aes, MBEDTLS_AES_ENCRYPT, (const unsigned char*) plainText, outputBuffer);
mbedtls_aes_free(&aes);
}

void decrypt(unsigned char * chipherText, char * key, unsigned char * outputBuffer) {

mbedtls_aes_context aes;

mbedtls_aes_init(&aes);
mbedtls_aes_setkey_dec(&aes, (const unsigned char*) key, strlen(key) * 8);
mbedtls_aes_crypt_ecb(&aes, MBEDTLS_AES_DECRYPT, (const unsigned char*) chipherText, outputBuffer);
mbedtls_aes_free(&aes);
}

int main(void) {
char * key = "abcdefghijklmnop";

char *plainText = "Tech tutorials x";
unsigned char cipherTextOutput[16];
unsigned char decipheredTextOutput[16];

encrypt(plainText, key, cipherTextOutput);
decrypt(cipherTextOutput, key, decipheredTextOutput);

printf("Original plain text: %s\n", plainText);

printf("Ciphered text:\n");
for (int i = 0; i < 16; i++) {

char str[3];

sprintf(str, "%02x", (int) cipherTextOutput[i]);
printf("%s", str);
}

printf("\n\nDeciphered text:\n");
for (int i = 0; i < 16; i++) {
printf("%c", (char) decipheredTextOutput[i]);
//printf("%c", (char) decipheredTextOutput[i]);
}
return 0;
}

Perubahan yang dilakukan:

  • memindahkan isi setup() di Arduino ke main() di Netbeans
  • menambahkan header file stdio.h dan string.h
  • mengganti Serial.print() dengan printf()
Output di ESP32 ArduinoOutput Windows 32
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:928
ho 0 tail 12 room 4
load:0x40078000,len:8740
load:0x40080400,len:5788
entry 0x4008069c
Original plain text:
Tech tutorials x
Ciphered text:
567a3b23b683d8488d5d40d2a56e31d2
Deciphered text:
Tech tutorials x
Original plain text: Tech tutorials x
Ciphered text:
567a3b23b683d8488d5d40d2a56e31d2
Deciphered text:
Tech tutorials x
RUN SUCCESSFUL (total time: 70ms)

Dari hasil di atas, nampak bahwa ciphered text adalah identik, dan keduanya dapat melakukan proses dekripsi. Jadi dapat disimpulkan kedua program tersebut mempunyai fungsi yang sama, jadi data yang dienkripsi di ESP32 dapat dibaca di Windows dan sebaliknya.

Tahap selanjutnya adalah menambahkan proses komunikasi data dengan menggunakan UDP/TCP di ESP32 dan Windows, namun hal itu akan menjadi tulisan lain lagi.

Referensi

Cara Charger Ulang Baterai Kotak 9 volt

Batere kotakl 9 volt ada yang dapat diisi ulang, ada juga yang tidak dapat diisi ulang

Tipe batere kotak 9 volt yang dapat diisi ulang adalah tipe sebagai berikut

  • NiMh (Nickel Manganese Hybrid)
  • LiPo (Lithium Polymer)
  • NiCd (Nickel Cadmium)
  • Timbal

Batere jenis berikut ini tidak dapat diisi ulang:

  • Seng mangan
  • Alkaline
  • Lithium

Cara yang mudah untuk mengisi ulang adalah dengan menggunakan charger standar yang memang sudah dirancang khusus untuk batere isi ulang.

Berikut ini contoh charger batere CHCC-EU dari Energizer, yang sudah dilengkap dengan konektor untuk batere kotak 9 volt. Jadi tinggal sambungkan batere kotak ke konektor tersebut, sambungkan ke jala-jala listrik, dan tinggal menunggu sampai batere selesai diisi ulang. Charger CHCC-EU ini hanya dapat mengisi batere NiMH saja, jadi kalau mau mengisi tipe lain mesti cari charger tipe lain.

Charger batere energizer CHCC-E
Charger batere Energizer CHCC-E

Cara lain adalah menggunakan charger serbaguna, seperti IMAX-B6AC. Pengisian dengan charger ini agak sedikit repot, karena kita mesti menyambungkan kabel chargernya ke kutub yang benar pada batere, dan juga melakukan setting tipe batere yang benar pada charger tersebut. Mesti baca manualnya secara hati-hati. Namun enaknya dari charger ini adalah dapat mengisi segala macam tipe batere, seperti Pb (lead acid) untuk motor/mobil, NiMh, LiPo.

IMAX B6AC
IMAX B6AC

Tahap pengisian:

  • Sambungkan kabel charger merah ke kutub positif batere (+)
  • Sambungkan kabel charger hitam ke kutub negatif batere (-). Penyambungan dapat menggunakan jepit buaya yang sudah disediakan dari charger tersebut, bisa juga menggunakan konektor batere kotak 9 volt.
  • Atur tipe batere, sesuaikan dengan tipe batere yang dipakai
  • Atur jumlah sel pada batere.
  • Start

 

Percobaan Interupsi Timer1 pada ATmega328

Pada percobaan ini akan dibuat interupsi timer 1 pada ATmega328 dengan frekuensi 1 kHz, dan kemudian dilakukan pengukuran frekuensi yang dihasilkan.

Konfigurasi Timer 1 sebagai berikut

  • Frekuensi 1 kHz, atau perioda 1 ms
  • menggunakan Timer1
  • Clock Source: System Clock
  • Clock Value: 250 kHz (prescaler 64)
  • Mode: CTC top=OCR1A
  • Out A: Disconnected
  • Out B: Disconnected
  • Interrupt on: Compare A Match
  • tidak ada output langsung ke pin mikrokontroler

Frekuensi clock adalah 16 Mhz. Dengan prescaler 64, dihasilkan clock ke Timer1 sebesar 250 kHz. Untuk membuat frekuensi 1 kHz, perlu pembagi sebesar 250 (0xFA), untuk itu diperlukan angka 249 (0xF9) di register OCR1A. Mode timer1 menggunakan CTC (Clear Timer on Compare), jadi ketika angka counter mencapai 249, otomatis berikutnya menjadi 0, dibarengi dengan munculnya interupsi timer 1. Dengan demikian sinyal clock timer 1 250 kHz akan menghasilkan interupsi timer dengan frekuensi 1 kHz.

Kode dibuat dengan menggunakan CodeWizard pada compiler CodevisionAVR versi Evaluation. Berikut ini tampilan setting pada code wizard untuk Timer 1:

Konfigurasi Timer 1
Konfigurasi Timer 1

 

Untuk menghasilkan sinyal output, digunakan port C sebagai output. Output pada port C dikomplemen setiap interupsi, sehingga akan timbul sinyal dengan frekuensi 500 Hz pada port C. Berikut kode ISR (interrupt service routine) untuk Timer 1:

interrupt [TIM1_COMPA] void timer1_compa_isr(void)

{

PORTC=~PORTC;

}




Berikut ini sinyal yang dihasilkan, diukur dengan menggunakan osiloskop. Screen capture diambil langsung dari osiloskop (bukan difoto).

 

Hasil pengukuran port C

Frekuensi yang terukur adalah 500,026 Hz, sehingga frekuensi interupsi sebenarnya adalah 2 x 500,026 = 1000,052 Hz. Tidak sama persis dengan seharusnya (1 kHz), kemungkinannya antara frekuensi kristal yang tidak tepat, atau clock pada osiloskop yang tidak tepat.

Pengukuran frekuensi dengan osiloskop GDS 1042
Pengukuran frekuensi dengan osiloskop GDS 1042
Pengukuran sinyal pada Arduino nano (ATmega328)
Pengukuran sinyal pada Arduino nano (ATmega328)

Sensor Tekanan Air Untuk Mengukur Kompresi Mesin Motor

Salah satu parameter yang perlu diukur pada motor bakar adalah tekanan kompresi. Pertanyaan yang akan dicoba dijawab: apakah sensor tekanan air dapat dipakai mengukur tekanan kompresi , mengingat pengukur tekanan ini sangat berguna untuk dipakai di bengkel motor.

Pertama mari cek dulu apa yang terjadi pada kompresi motor bakar.

Ketika terjadi kompresi, maka tentu saja tekanan akan meningkat, dan juga temperatur ruang bakar meningkat. Peningkatannya dapat dihitung dengan rumus P.V = n.R.T , namun hasil pengukuran mungkin tidak tepat 100% dengan perhitungan karena ada ketidak idealan di sana-sini.

Tekanan awal ruang bakar adalah 1 atmosfer, ketika kompresi tekanan akan naik sesuai dengan rasio kompresi. Motor biasanya rasio kompresi antara 9,5 sampai 11,6, sehingga anggap saja tekanan akan naik dari 1 atmosfer menjadi 11,6 atmosfer. Temperatur juga akan naik, dari beberapa referensi angka temperatur sekitar 300 derajat Celcius.

Selanjutnya mari cek spesifikasi sensor tekanan air yang dimaksud. Datasheetnya kurang lebih seperti pada tautan berikut: https://media.digikey.com/pdf/Data%20Sheets/Seeed%20Technology/114991178_Web.pdf

 

Sensor tekanan air
Sensor tekanan air

Spesifikasi penting menurut datasheet  tersebut:

  • Wokring Voltage: DC 5±0.5V
  • Working Current: ≤10mA (DC 5V)
  • Working Voltage: DC 0.5~4.5V
  • Working Pressure Rate Range: 0~1.2Mpa
  • Max. Pressure: 2.4Mpa
  • Destructive pressure: 3.0Mpa
  • Working Temperature: -20~+ 105Ԩ
  • Storage Temperature: -20~+ 105Ԩ
  • Measurement Accuracy: ±1.5%FS
  • Response Time: ≤2.0ms
  • IP65
  • Cycle Life: 1,000,000 pcs

Batas tekanan adalah 1,2 Mpa, atau 1,2 x 9,86923 = 11.843976 Atmosphere , sedangkan tekanan kompresi adalah 11,6 atmosfer, jadi sensor ini masih memenuhi syarat dari sisi temperatur.

Batas temperatur adalah 105 derajat Celcius, jadi sensor ini tidak dapat dipakai karena temperatur ruang bakar dapat mencapai 300 derajat Celcius.

Percobaan Output PWM dari Timer 0 pada ATmega328

Pulse Width Modulation (PWM) atau modulasi lebar pulsa sangat bermanfaat pada sistem mikrokontroler, salah satunya adalah untuk mengendalikan motor DC. Pada chip ATmega328, sinyal PWM ini dapat dibangkitkan dengan perangkat lunak, ataupun dapat dibangkitkan dari perangkat keras dengan menggunakan periferal Timer internal. PWM dari perangkat keras cukup praktis karena tidak membebani perangkat lunak, namun ada keterbatasan karena pada ATmega328 hanya terdapat 3 buah timer internal, sehingga tidak bisa memiliki banyak output PWM dari perangkat keras.

Berikut ini ujicoba output PWM (Pulse Width Modulation) dari Timer 0 pada ATmega328. Modul yang digunakan adalah Arduino Nano clone.

Konfigurasi pengujian PWM ini adalah sebagai berikut:

  • Perangkat keras menggunakan Timer 0 (8 bit)
  • Clock Source: System Clock
  • Clock Value 2000.000 kHz
  • Mode: Fast PWM top=0xFF
  • Out A: Non-Inverted PWM
  • Out B: Disconnected
  • tidak ada interupsi dari Timer0
  • output pada pin OC0A (pin PD6 pada ATmega328, D6 pada Arduino Nano)

Pengaturan register menggunakan Code Wizard dari CodeVision AVR Evaluation dengan detail sebagai berikut ini:

Source code terkait dengan Timer 0 adalah sebagai berikut:

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 2000.000 kHz
// Mode: Fast PWM top=0xFF
// OC0A output: Non-Inverted PWM
// OC0B output: Disconnected
// Timer Period: 0.128 ms
// Output Pulse(s):
// OC0A Period: 0.128 ms Width: 0.016063 ms
TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (1<<WGM00);
TCCR0B=(0<<WGM02) | (0<<CS02) | (1<<CS01) | (0<<CS00);
TCNT0=0x00;
OCR0A=0x20;
OCR0B=0x00;

Source code lengkap dapat dilihat di https://github.com/waskita/embedded/blob/master/cv-kendali/cv-kendali-usart.c

Variable yang dapat diubah-ubah adalah OCR0A untuk mengatur duty-cycle dari PWM. Nilai register ini dapat diisi dari 0x00 sampai dengan 0xff (255)

Tahap selanjutnya adalah pengujian output PWM dengan cara melihat sinyal yang dihasilkan dengan osiloskop GW INSTEK GDS-1042

Berikut ini adalah output dengan nilai register OCR0A=0x00. Perioda PWM adalah 2000/256 = 0.128 ms

OCR0A=0x01

Nampak bahwa nilai register 0 akan memberikan sinyal yang paling pendek, yaitu dengan panjang pulsa 500 ns. Berikut ini adalah sinyal yang sama dilihat dengan time base 100 ns per div

OCR0A=0x01, zoom

Berikut ini adalah sinyal dengan OCR0A=0x80 atau duty cycle=50%

OCR0A=0x80

Berikut ini adalah sinyal dengan OCR0A=0xfe (254)

OCR0A=0xfe (254)

Terakhir adalah sinyal dengan duty cycle = 100% , dengan OCR0A=0xff (255)

OCR0A=0xff

Hal penting yang perlu diperhatikan: nilai duty cycle tidak pernah 0%, minimum adalah 1/256. Nilai maksimum duty cycle adalah 100%. Untuk membuat sinyal PWM duty cycle =0 dapat dilakukan dengan mematikan output PWM.

Membongkar Raket Nyamuk Kenmaster KM-089

Pada tulisan ini diuraikan hasil dari membongkar raket nyamuk merek Kenmaster tipe KM-089, disertai dengan analisis ringkas tentang isi dari raket nyamuk tersebut.

Berikut ini adalah raket nyamuk Kenmaster KM-089.

Raket nyamuk Kenmaster KM-089

Raket nyamuk ini dapat dipisah menjadi bagian jaring, dan bagian senter. Bagian senter berisi batere, senter dan colokan untuk melakukan charging ulang batere dari raket nyamuk tersebut.

Jaring dan senter
Jaring dan senter

Membongkar Raket Nyamuk

Tahap pertama pembongkaran adalah membuka bagian senter.

Bagian dalam bagian senter

Secara sepintas pada bagian senter terdapat batere, papan rangkaian yang nampaknya berisi rangkaian charger, dan lampu senter LED.

Rangkaian charger bagian atas
Rangkaian charger bagian bawah

Rangkaian charger nampak sederhana, berisi dioda penyearah, kapasitor, LED indikator dan resistor. PCB menggunakan single layer. Tertulis tipe PCBnya: “NX-089B”

Rangkaian charger tampak samping

Tahap selanjutnya adalah membuka bagian jaring.

PERHATIAN: kapasitor di rangkaian dapat berisi tegangan ribuan volt, sehingga sebelum membuka tutup, lakukan hubung singkat pada jaring supaya listrik yang tersimpan di kapasitor dapat dibuang dan tidak membahayakan. Proses hubung singkat dapat dilakukan dengan obeng.

 

Membuang muatan pada raket nyamuk dengan obeng
Membuang muatan pada raket nyamuk

Berikut ini bagian jaring yang sudah dibuka tutupnya, sehingga dapat dilihat rangkaian di dalamnya.

Jaring dibuka

Berikut ini rangkaian elektronik pada bagian jaring raket nyamuk.

Rangkaian jaring raket nyamuk

Rangkaian pada jaring menerima masukan 4 volt dari bagian senter, dan kemudian menaikkan tegangan tersebut menjadi ribuan volt dengan rangkaian sederhana berbasis transistor, transformator, dioda dan kapasitor.

 

Kapasitor pada rangkaian penaik tegangan
Kapasitor kecil pada rangkaian penaik tegangan

 

 

Transistor KJL 882 pada rangkaian jaring

 

Bagian bawah rangkaian jaring

 

Rangkaian pada jaring cukup sederhana, hanya menggunakan PCB single layer.

 

Analisis Rangkaian

Secara ringkas, sistem keseluruhan elektronik raket nyamuk adalah sebagai berikut ini:

Blok diagram rangkaian raket nyamuk lengkap
Blok diagram rangkaian raket nyamuk

Tegangan jala-jala listrik 220 volt disearahkan dan diregulasi, untuk dapat mengisi batere SLA 4 volt. Tegangan dari batere dapat dipakai untuk menyalakan senter. Tegangan dari batere juga dapat dinaikkan menjadi ribuan volt untuk elektrifikasi jaring nyamuk.

Batere

Batere yang digunakan tidak jelas modelnya, namun dari hasil pencarian di internet dengan kata kunci ‘mosquito killer battery’ , didapatkan batere yang bentuknya mirip dengan yang dipakai di raket nyamuk tersebut.

Batere raket nyamuk
4V300mAh Lead Acid Mosquito Killer Battery

Sumber: [SunBestHK]

Dari penelusuran di toko online, batere 4V dengan bentuk serupa juga dijual di beberapa tempat:

Batere 4V Emergency
Batere 4V Emergency

Dari hasil pengukuran, didapatkan tegangan keluaran batere tersebut bervariasi antara 4 volt sampai 4,2 volt, jadi cocok dengan kisaran keluaran tegangan batere SLA (Sealed Lead Acid) yang terdiri dari 2 sel (masing-masing 2 volt).

Rangkaian Charger

Rangkaian charger berisi penyearah dari 220 volt untuk mengisi ulang batere, serta sakelar untuk memilih mode senter atau mode raket.

Sketsa rangkaian charger

Untuk mengisi batere SLA 4 volt diperlukan tegangan sekitar 4,4 volt. Tegangan 4,4 volt ini diperoleh dari input 220 volt dengan cara menghubungkan seri kapasitor 1 nF. Jadi tidak diperlukan transformator untuk menurunkan tegangan. Pada rangkaian charger ini tidak ada deteksi batere penuh, sehingga dapat terjadi pengisian berlebih (overcharge) pada batere. Pengguna mesti menghentikan pengisian kalau dirasa batere sudah penuh.

Lampu indikator pengisian menggunakan LED yang memerlukan tegangan sekitar 2 volt untuk dapat menyala. Penurunan tegangan ini dilakukan dengan menggunakan tangga resistor 4k7 dan 220k.

Rangkaian Penaik Tegangan

Rangkaian penaik tegangan pada jaring fungsinya adalah menaikkan tegangan batere dari 4 volt menjadi ribuan volt supaya dapat membunuh nyamuk.

Uraian setiap komponen adalah sebagai berikut

  • Transformator yang dipakai memiliki 3 kaki, namun tidak jelas tipenya. Kemungkinan juga transformator tersebut dibuat khusus.
  • Pada kapasitor besar tertulis 223J2.0KV, sehingga dapat disimpulkan kapasitasnya 22 nF dengan tegangan maksimum 2 kilovolt atau 2000 volt. Dari kedua kaki kapasitor dipasang kabel ke jaring-jaring, sehingga nampaknya tegangan kerja dari jaring adalah kurang dari 2000 volt.
  • Pada kapasitor yang lebih kecil berwarna biru tertulis 101 3KV, artinya kapasitas kapasitor itu adalah 100 pF dengan tegangan maksimuk 3000 volt.
  • Pada transistor di rangkaian jaring tertulis “KJL 882”. Dari hasil penelusuran, transistor tersebut tipenya adalah 2SD882. [Datasheet 2SD882]
  • Dioda pada rangkaian jaring menggunakan tipe “RFC4K”. Kemampuan utama dioda ini adalah arus maksimum 200 mA, tegangan 4.0kV, switching 500 ns. Detail keterangan dapat dilihat di datasheet RFC4K.  Dioda RFC4K dan kapasitor 100 nF dipasang dengan konfigurasi rangkaian doubler.
  • Terdapat resistor 1k5 yang merupakan bagian dari osilator, dan resistor 33 ohm yang diseri dengan LED indikator.
Sketsa rangkaian penaik tegangan

 

Skema rangkaian penaik tegangan
Skema rangkaian penaik tegangan

 

Rangkaian penaik tegangan terdiri dari 2 bagian, yaitu osilator dan penaik tegangan.

Rangkaian osilator yang digunakan sangat sederhana, hanya menggunakan 1 transistor NPN, 1 resistor dan 1 transformator. Jenis rangkaiannya kemungkinan adalah “Blocking Oscillator“.

Contoh rangkaian blocking oscillator yang mirip adalah sebagai berikut [dari artikel “Simple Blocking Oscillator for Waste Battery’s Voltage Enhancement“]

Rangkaian blocking oscillator sederhana

Rangkaian penaik tegangan menggunakan “Full wave voltage quadrupler”.  Contoh rangkaian dan penjelasannya dapat dilihat di artikel “Voltage Multipliers (Doublers, Triplers, Quadruplers, and More)

 

Penaik tegangan 4x gelombang penuh (full wave voltage quadrupler)
Rangkaian voltage quadrupler

 

Referensi

 

 

 

 

1 Ampere Berapa Watt

Untuk mendapatkan daya (watt) dari arus (ampere), perlu diketahui berapa tegangannya (volt).

Rumus daya:

P = V x I

  • P: daya (watt)
  • V: tegangan (volt)
  • I: arus (ampere)

Berikut ini beberapa tegangan yang umum dipakai:

Perangkat Tegangan
Daya untuk 1 ampere
Baterai seng mangan / alkaline 1,5 volt 1,5 watt
Baterai Lithium Ion 3,7 volt 3,7 watt
Baterai Timbal ( 1 sel) 2 volt 2 watt
Baterai NiCd (Nickel Cadmium) 1,2 volt 1,2 watt
Baterai alkaline 9 volt 9 volt 9 watt
Jala-jala listrik 220 volt 220 volt (rms) 220 watt

Parameter penting pada suatu batere di antaranya adalah ampere dan watt. Timbul pertanyaan, kalau kita tahu ampere dari suatu batere, apakah dapat diketahui watt dari batere tersebut? Jadi 1 ampere itu sebenarnya berapa watt?

Batere 9 volt Lithium Polymer 720 mAh
Batere 9 volt Lithium Polymer 720 mAh

Ampere adalah besaran arus listrik, sedangkan watt adalah besaran/ satuan daya. Penghubung antara arus dengan daya adalah tegangan dengan satuan volt.

Dari rumus listrik, diketahui sebagai berikut:

daya = tegangan x arus

atau dengan simbol:

P (daya) = V (tegangan)  x I (arus)

Jadi misalkan diketahui arus 1 ampere dengan tegangan batere 12 volt, maka dayanya adalah 1 x 12 = 12 watt. Arah daya ini dapat keluar dari batere ketika batere dipakai, atau bisa juga masuk ke dalam batere ketika batere diisi ulang (dicas).

Rumus di atas hanya berlaku untuk arus searah (DC / Direct Current). Jika arus yang digunakan bolak-balik (AC / alternating current), maka ada parameter lain yg penting yaitu faktor daya:

daya  = tegangan x arus x faktor daya

Faktor daya ini adalah suatu angka dari 0 sampai 1 yang ditentukan oleh sifat dari beban listrik yang dipakai. Pengukuran dan perhitungan daya pada arus bolak-balik (AC) lebih rumit karena adanya faktor daya ini.

Perangkat listrik dengan beban yang murni resistor mempunyai faktor daya 1 atau mendekati 1. Contohnya setrika listrik, kompor listrik, lampu pijar.

Perangkat yang di dalamnya mempunyai kumparan ataupun motor biasanya mempunyai faktor daya sekitar 0,7. Contohnya mesin cuci, pompa air, AC (untuk kompresor), kulkas (kompresor).

Pompa lengkap
Pompa air dengan tegangan input 220 volt. Faktor daya sekitar 0,7

Perangkat elektronik seperti komputer bervariasi, model yang bagus mempunyai faktor daya 0,9 atau lebih, sedangkan yang kurang bagus dapat memiliki faktor daya 0,7 sampai 0,8.

 

Angka-angka tersebut hanya perkiraan saja, untuk pastinya mesti diukur dengan alat khusus.

Referensi

Sumber Clock pada Rangkaian Elektronik

Beberapa rangkaian elektronik memerlukan clock dengan frekuensi tertentu untuk dapat bekerja, contohnya adalah sistem mikroprosesor/mikrokontroler dan rangkaian digital sinkron. Pada artikel ini diuraikan beberapa sumber clock dengan berbagai akurasi.

Secara ringkas sumber clock yang umum dipakai adalah sebagai berikut

  • Osilator berbasis induktor/kapasitor
  • Osilator berbasis kristal: kristal saja, kristal dengan kompensasi temperatur (TCXO dan MCXO), kristal dengan oven (OCXO), kristal dengan GPS (GPSDO)

Osilator Berbasis Induktor / Kapasitor

Osilator menghasilkan gelombang sinusoidal dengan frekuensi tertentu. Umumnya osilator dibuat dengan komponen pasif resistor, induktor dan kapasitor, serta komponen aktif transistor ataupun op-amp.

Frekuensi sinyal yang dihasilkan pada rangkaian jenis ini tergantung pada nilai induktor / kapasitor yang dipakai. Nilai induktor/kapasitor ini dapat berubah karena waktu ataupun pengaruh temperatur, sehingga frekuensi sinyal yang dihasilkan juga berubah, maka ketepatan frekuensi yang dihasilkan rendah.

Berikut ini contoh rangkaian osilator dengan komponen aktif transistor [sumber].

Osilator dengan transistor

Berikut ini adalah contoh relaxation oscillator dengan komponen aktif op-amp. [sumber]

Osilator dengan op-amp

 

Osilator Berbasis Kristal

Pada osilator jenis ini, sinyal clock dihasilkan menggunakan bahan piezoelektrik yang bergetar dengan suatu frekuensi tertentu. Frekuensi getaran pada bahan piezoelektrik ditentukan oleh ukurannya, sehingga frekuensi sinyal yang dihasilkan dapat sangat tepat.

Nilai frekuensi kristal umumnya dinyatakan untuk temperatur tertentu. Ukuran fisik kristal terpengaruh oleh temperatur, jadi jika temperatur berubah, maka frekuensi sinyal clock yang dihasilkan juga berubah.

Berikut ini contoh komponen kristal [sumber]

Kristal 12 MHz dan resonator 18.083 MHz

Berikut ini contoh bentuk fisik kristal [sumber]

Untuk dapat menghasilkan sinyal clock, kristal masih perlu disambung dengan beberapa komponen. Contoh rangkaian osilator berbasis kristal misalnya sebagai berikut [sumber]

Osilator Colpitts Crystal

Pada kebanyakan mikrokontroler, sudah disiapkan rangkaian clock di dalam mikrokontroler tersebut, sehingga untuk mengaktifkan kristal cukup disambung ke mikrokontroler dan ditambahkan 2 buah kapasitor. Nilai kapasitor umumnya disesuaikan dengan jenis & ukuran kristal yang digunakan, dan sudah ditentukan di datasheet mikrokontroler tersebut. [sumber]

Osilator kristal untuk mikrokontroler/mikroprosesor

Osilator Kristal Dengan Kompensasi Temperatur

Osilator kristal biasa mempunyai kelemahan, yaitu nilai frekuensinya masih berubah terhadap temperatur. Untuk mengatasi hal tersebut, dapat digunakan kristal yang frekuensinya dikompensasi terhadap perubahan temperatur. Komponen ini disebut sebagai Temperature Compensated Crystal (TCXO). Pada TCXO, kompensasi dilakukan secara analog dengan menambahkan rangkaian tertentu.

Ada juga kompensasi yang dilakukan secara digital dengan menambahkan mikroprosesor, dengan teknologi Microcontroller Compensation (MCXO).

TCXO dan MCXO sudah tersedia dalam bentuk modul, sehingga memudahkan untuk dipakai.

Contoh TCXO yang populer dipakai sebagai real time clock adalah DS3231 dari Maxim Integrated. DS3231 ini banyak dijual dalam bentuk modul yang sudah dilengkapi dengan batere Lithium sehingga waktu yang disimpan di dalamnya tidak hilang jika sumber listrik dimatikan.

Real Time Clock DS3231
TCXO TG2520SMN dari Epson

Sumber

MCXO MX-503 dari Microsemi (Microchip)

Osilator Kristal Dengan Pengendalian Temperatur (OCXO)

Pada osilator jenis ini, sebagai sumber frekuensi digunakan kristal yang temperaturnya dijaga dengan suatu sistem pengendalian temperatur. Sistem ini disebut juga sebagai Crystal Oven ataupun Oven Controlled Crystal Oscillator (OCXO)

Dimensi OCXO cukup besar, karena di dalamnya mesti ada rangkaian pemanas, pengendali temperatur dan isolator supaya temperatur stabil.

Bentuk fisik OCXO
Bentuk fisik OCXO

Perbandingan ketepatan osilator kristal dapat dilihat pada tabel berikut [sumber]

Perbandingan osilator

Osilator Kristal Dengan GPS

Jika ketepatan kristal OCXO masih kurang, maka ketepatannya masih dapat ditingkatkan dengan menggunakan bantuan sinyal GPS. Sistem ini disebut sebagai GPS Clock atau GPS disciplined oscillator (GPSDO).

Blok diagram sistem GPSDO adalah sebagai berikut [sumber]

Blok diagram GPSDO
Blok diagram GPSDO
Bentuk fisik GPSDO
Bentuk fisik GPSDO

Referensi

 

Sensor Sudut

Pengukuran sudut / putaran pada suatu poros dapat dilakukan dengan berbagai macam sensor, di antaranya sebagai berikut:

  • Optical Incremental Rotary Encoder. Sensor ini mengukur posisi relatif, bukan posisi absolut.
  • Optical Absolute Rotary Encoder
  • Potensiometer Analog
  • Hall Effect Potensiometer
  • Magnetic Rotary Encoder

Optical Incremental Rotary Encoder

Sensor jenis ini mengukur posisi relatif, bukan posisi absolut.  Contohnya dibahas di artikel Rotary Encoder

Rotary Encoder G40B-6-400
Rotary Encoder G40B-6-400

 

Optical Absolute Rotary Encoder

Sensor ini mirip dengan jenis incremental, namun outputnya sudah berupa posisi poros.

Magnetic Rotary Encoder

Sensor jenis ini mengukur medan magnet pada poros, dan dari situ dapat diukur posisi absolute poros tersebut. Contoh sensor jenis ini adalah AS5600.

Modul AS5600 dari Seeedstudio
Modul AS5600 dari Seeedstudio
Modul AS5600 dari Seeedstudio
Modul AS5600 dari Seeedstudio

 

AS5600 ex Aliexpress
AS5600 ex Aliexpress

Potensiometer

Potensiometer dapat dipakai sebagai sensor sudut, dengan cara menyambung poros potensiometer ke poros yang akan diukur.  Potensiometer yang dipakai sebagai sensor tentunya harus lebih kokoh dibandingkan potensiometer biasa. Porosnya juga dibuat supaya mudah disambung ke poros lain.

Potensiometer sebagai sensor sudut
Potensiometer sebagai sensor sudut

Hall Effect Angle Sensor

Contohnya dibahas di artikel “Sensor Sudut P3022-V1-CW360

P3022-V1-CW360
P3022-V1-CW360

Sensor ini mengukur sudut poros, berupa tegangan yang proporsional dengan sudut pada poros.

Referensi

  • https://www.seeedstudio.com/Grove-12-bit-Magnetic-Rotary-Position-Sensor-AS5600-p-4192.html

 

Permainan Pong Jaman Dulu

Sebelum ada mikrokontroler, jika kita ingin bikin game, maka seluruh algoritma dan logika game tersebut mesti dibuat dengan menggunakan rangkaian gerbang TTL. Contohnya adalah rangkaian game PONG,

Berikut ini tampilan game PONG:

Tampilan game PONG

Berikut ini rangkaian elektronik permainan PONG

 

Rangkaian permainan PONG

Rangkaiannya nampaknya ruwet. Kalau jaman sekarang, game PONG dapat dibuat dengan cepat menggunakan Arduino dan display LCD matrix / OLED sederhana.

Referensi:

  • https://blog.adafruit.com/2019/04/08/pong-making-a-game-with-74-series-logic-chips-atari-pong-gaming-history-pcb/
  • Analisis rangkaian tahap demi tahap: http://www.pong-story.com/LAWN_TENNIS.pdf
  • https://www.theverge.com/2012/12/16/3772952/original-pong-arcade-recreated-without-software-video

 

 

Perbedaan Satuan W dan Wh

Dalam dunia kelistrikan dan elektronik, dikenal besaran W (watt) dan Wh (watt-hour). Arti dari besaran tersebut adalah sebagai berikut:

W (watt) adalah satuan daya.

W (watt-hour) atau (watt-jam) adalah satuan energi. Secara rumus, energi adalah daya x waktu, atau E=P x t.

Contoh penggunaan satuan daya:

  • pada motor listrik, untuk menyatakan kekuatan motor. Pada motor bakar seperti mesin disel dan mesin bensin, dipakai juga satuan tenaga kuda / PK
  • pada lampu, untuk menyatakan listrik yang dikonsumsi. Biasanya makin tinggi nilai watt nya, maka makin terang lampu tersebut.

Contoh penggunaan satuan energi (Wh) / (watt-hour)

  • pada batere, menyatakan jumlah energi yang disimpan pada sebuah batere

Satuan energi yang standar adalah J (joule), namun seringkali dipakai juga adalah Wh (watt-hour) dan juga Ah (ampere hour) pada tegangan tertentu.

Berikut ini contoh power bank yang menuliskan kapasitas energinya dalam berbagai satuan:

  • 16000 mAh (3.6 volt) . mAh (milli-ampere-hour) bukan satuan energi, maka supaya dapat dipakai untuk mengukur energi, mesti diketahui berapa tegangan kerjanya. Pada kasus ini, tegangan kerja adalah 3.6 volt sehingga dapat dihitung daya dari arus-tegangan-waktu.
  • 57.6 Wh
Powerbank Jujur
Powerbank 1600 mAh

Berikut ini contoh aki motor yang menuliskan kapasitasnya dalam Ah (5 Ah). Diketahui tegangan kerjanya adalah 12 volt, sehingga energi tersimpan pada aki tersebut dapat dihitung.

Penampang belakang
Aki motor 12 volt 5 Ah

Berikut ini contoh lampu LED

Tertulis 18W, 6500K 2000lm 150 mA 220-240 VAC. Artinya lampu tersebut memerlukan daya sebesar 18 watt. Biasanya suatu lampu makin besar dayanya, maka makin terang.

Energi yang dipakai lampu tersebut dapat diukur dengan menggunakan kWh meter, baik kWh biasa (elektromekanik) maupun kWh elektronik. Berikut ini contoh kWh elektromekanik yang biasa dipakai di rumah-rumah, terutama untuk meteran listrik pasca-bayar.

kWh meter biasa
kWh meter biasa

Berikut ini meteran listrik pra-bayar, yang di dalamnya terdapat kWh meter elektronik.

Meteran listrik pra-bayar
Meteran listrik pra-bayar

Berikut ini contoh kWh meter elektronik yang bukan untuk meteran prabayar.

Pengisian powerbank melalui kWh meter
Pengisian powerbank melalui kWh meter

Sakelar Semikonduktor Sebagai Pengganti Relay Untuk Mikrokontroler

Pada suatu rangkaian elektronika, jika diperlukan suatu sakelar yang dikendalikan secara listrik , maka salah satu cara yang umum adalah menggunakan relay mekanik sebagai sakelar. Relay mekanik menggunakan suatu kumparan untuk menghasilkan medan magnet, dan medan magnet ini menggerakkan suatu sakelar mekanik.

Relay
Relay

Relay mekanik tidak dapat dihubungkan langsung ke suatu mikrokontroler, karena arus output dari mikrokontroler tidak cukup kuat untuk menggerakkan relay tersebut. Pada umumnya dapat digunakan transistor BJT ataupun MOSFET untuk memperkuat sinyal dari output mikrokontroler supaya dapat menggerakkan relay. Berikut ini contoh rangkaian transistor NPN yang dipakai untuk menggerakkan relay.

Relay dikendalikan transistor NPN
Relay dikendalikan transistor NPN

Relay mekanik cukup mudah digunakan, namun memiliki beberapa kekurangan:

  • ada komponen yang bergerak secara mekanik, sehingga ada potensi lama kelamaan aus dan rusak
  • fungsi sakelar relatif lambat dibandingkan dengan komponen semikonduktor
  • dimensi cukup besar dibandingkan komponen semikonduktor.

Sebagai alternatif relay mekanik, dapat digunakan komponen semikonduktor yang difungsikan seperti relay sebagai sakelar. Berikut ini beberapa alternatif sakelar menggunakan komponen semikonduktor

Optocoupler Triac

Berikut ini rangkaian pengganti relay dengan menggunakan kompnen utama TRIAC dan Opto-triac

Rangkaian Triac dengan Optotriac

Opto triac berfungsi mengisolasi rangkaian batere 5 volt dengan rangkaian jala-jala listrik di sebelah kanan. Jika LED di dalam opto-triac menyala, maka opto-triac akan bersifat konduktif. Triac berfungsi sebagai sakelar. Kelebihan utama Triac adalah dapat berfungsi sebagai sakelar pada tegangan AC, tidak seperti transistor bipolar (BJT) ataupun MOSFET yang hanya dapat dilewati arus searah.

Resistor 33 ohm dan kapasitor 33 nF berfungsi sebagai snubber, yaitu untuk membuang lonjakan tegangan yang muncul pada beban terutama pada beban induktif seperti motor dan solenoid.

Batere 5 volt berfungsi sebagai sumber tegangan untuk menyalakan LED pada optotriac. Pada rangkaian sesungguhnya, batere 5 volt ini dapat diganti dengan mikrokontroler seperti Arduino atau ATmega.

Modul Solid State Relay (SSR)

Untuk praktisnya, umumnya rangkaian optotriac dan Triac dikemas dalam 1 kemasan yang kompak sebagai suatu modul, yang dikenal sebagai Solid State Relay (SSR).

Berikut ini contoh modul SSR yang ukurannya relatif besar, dapat menangani arus beban sampai dengan 40 ampere AC, dengan input kendali cukup fleksibel, berupa tegangan DC dari 3 volt sampai 32 volt.

Pada penggunaan SSR, perlu diperhatikan beban yang dipakai DC atau AC, karena SSR untuk AC hanya dapat dipakai untuk arus bolak-balik, terutama karena di dalamnya menggunakan komponen utama Triac yang hanya berfungsi baik pada arus bolak-balik.

Modul SSR yang lebih kecil juga ada, seperti OMRON G3MB berikut ini.

SSR Omron G3MB-202P

Modul SSR ini juga dijual sebagai modul yang sudah disolder, sehingga pengguna cukup menyambungkan kabel ke terminal yang sudah disediakan.

Modul SSR Omron G3MB202P

Rangkaian di dalam SSR pada umumnya menggunakan komponen semikonduktor Triac. Berikut ini contoh rangkaian SSR berbasis TRIAC (sumber)

Rangkaian SSR berbasis Triac

Rangkaian di atas mirip dengan rangkaian “Optocoupler Triac”, namun rangkaian ini sudah dilengkapi dengan beberapa fitur pengamanan:

  • Pada input DC dipasang D1 sebagai pengaman jika polaritas tegangan masuk terbalik
  • TR1 dan R2 berfungsi sebagai pengaman terhadap tegangan lebih dari input. Jika tegangan input tinggi, maka arus pada R2 tinggi, sehingga TR1 akan ON, dan dengan demikian mengurangi arus yang mengalir pada LED. Jika tidak ada TR1, ada kemungkinan LED akan rusak jika tegangan masuk terlalu tinggi
  • R1 berfungsi sebagai resistor pembatas arus pada LED
  • Dioda TVS (Transient Voltage Suppresion) berfungsi menekan tegangan lebih yang muncul pada AC Supply dan beban, terutama jika SSR ini dipakai untuk mengendalikan beban dengan sifat induktif.
  • RC Snubber berfungsi mengurangi tegangan lebih dari AC supply dan beban (LOAD).

Meskipun SSR umumnya menggunakan komponen utama Triac, ada juga yang menggunakan MOSFET. Berikut ini contoh rangkaian SSR berbasis MOSFET (sumber)

Rangkaian Solid State Relay berbasis MOSFET (sumber)

Contoh MOSFET SSR adalah PVT412 dari International Rectifier.

Berikut ini keuntungan SSR dibandingkan relay elektromekanik

  • SSR tidak menggunakan kumparan, sehingga otomatis SSR tidak menghasilkan medan magnet di sekitar SSR. Medan magnet dari relay elektromagnetik dapat mengganggu rangkaian lain.
  • SSR tidak menggunakan kontak mekanik, sehingga tidak timbul loncatan api seperti pada relay elektromekanik
  • SSR tidak bersuara
  • SSR seluruhnya menggunakan semikonduktor, tidak ada komponen mekanik, sehingga tidak ada masalah aus pada komponen mekanik
  • Tidak ada masalah ‘contact bounce’ yang muncul pada sakelar mekanik
  • SSR lebih cepat
  • SSR dapat dibuat supaya hanya melakukan fungsi sakelar ketika tegangan 0 pada kontak (zero crossing), sehingga mengurangi lonjakan tegangan (voltage spike)
  • SSR lebih kecil untuk ukuran arus yang sama

Berikut ini kekurangan SSR dibandingkan relay elektromekanik

  • Ada resistansi pada SSR ketika ON, sehingga SSR menghasilkan panas ketika sedang dalam kondisi ON
  • Ada arus bocor pada SSR ketika kondisi OFF. Hal ini berpengaruh pada keselamatan.
  • Sakelar SSR berfungsi sangat cepat, sehingga dapat menimbulkan interferensi
  • SSR jika rusak umumnya menjadi ON / short circuit, sedangkan relay umumnya ketika rusak menjadi OFF. Hal ini berpengaruh pada keselamatan.

Transistor BJT Sebagai Sakelar

Jika tidak diperlukan isolasi antara input dengan output, maka dapat digunakan transistor BJT (Bipolar Junction Transistor) ataupun MOSFET (Metal Oxide Semiconductor Field Effect Transistor) tanpa menggunakan optocoupler.

Berikut ini contoh transistor NPN yang dipakai sebagai sakelar.

Penguat output digital dengan transistor NPN
Penguat output digital dengan transistor NPN

Untuk dapat mengoperasikan transistor BJT sebagai sakelar, perlu diperhatikan bahwa transistor ada dalam 2 kondisi : ON dan OFF. Untuk transistor menjadi ON, maka arus basis pada transistor harus cukup besar. Pada rangkaian di atas, supaya transistor ON, maka dari mikrokontroler (pin OUT) perlu diberi tegangan tinggi (5 volt atau 3.3 volt). Nilai resistor pada basis perlu dipilih supaya transistor berada dalam kondisi saturasi. Untuk transistor menjadi OFF, dapat dilakukan dengan mengirimkan tegangan rendah pada basis transistor.

Untuk perhitungan detail, perlu memperhatikan karakteristik BJT yang dipakai, misalnya dengan menggunakan diagram karakteristik V-I pada transistor.

Transistor MOSFET Sebagai Sakelar

Berikut ini contoh rangkaian MOSFET kanal n sebagai sakelar.

Output Digital Mikrokontroler Dengan MOSFET
Output Digital Mikrokontroler Dengan MOSFET

MOSFET hanya memerlukan tegangan pada gate (G), tidak memerlukan arus pada gate, jadi berbeda dengan transistor yang memerlukan arus pada basis. Pada rangkaian di atas, MOSFET akan aktif (sakelar = ON) jika diberi tegangan tinggi dari mikrokontroler pada pin OUT. Tegangan yang dberikan harus lebih tinggi dari tegangan ambang pada gate MOSFET (Vth).

Untuk perhitungan detail, perlu memperhatikan karakteristik MOSFET yang dipakai, misalnya dengan menggunakan diagram karakteristik V-I pada transistor.

Referensi

Download

Perbaikan Power Functions Medium Motor dari Lego

Power Functions Medium Motor adalah salah satu jenis motor listrik dari LEGO. Motor ini menggunakan kabel pita dengan 4 kabel untuk sambungan ke power supply 9 volt.

Power Functions Medium Motor

Motor ini secara umum berfungsi baik, namun salah satu kelembahannya adalah sambungan kabelnya, karena sering ditekuk-tekuk, maka akhirnya kabel mudah putus di bagian sambungan antara kabel ke motor.

Sambungan kabel yang putus

Solusinya sebenarnya mudah: bongkar motornya, potong kabelnya sedikit, kemudian disambung ulang.

Prosedur membuka motor ini banyak di youtube. Proses pertama adalah membuka 1 sekrup di bagian bawah, kemudian mencongkel kaitan plastik di casing.

Motor Lego setelah dibuka

Setelah itu proses membongkar solderan kabel

Proses membongkar solderan kabel

Setelah itu kabel dipotong di bagian yang terputus.

Kemudian proses menyolder ulang

Terakhir proses menutup kembali casingnya. Jangan lupa sekrup dipasang lagi.

Sekrup casing motor Lego Medium

Bagian blok konektor lego juga bisa putus dengan sebab yang sama: kabel yang tertekuk berulang kali ketika digunakan. Solusinya sama: buka casingnya, potong kabel sedikit, kemudian dipasang lagi.

Kotak sambungan yang sudah berhasil dibuka

Kotak sambungan ini tidak menggunakan solderan, hanya menggunakan konektor khusus yang ditusukkan ke kabel pita. Logam di konektor akan menembus isolator plastik, dan terhubung ke kabel di bagian dalam. Prosesnya mudah, namun perlu berhati-hati supaya tidak salah.

Pemasangan kabel dibantu dengan obeng minus

Demikian proses perbaikan kabel pada motor Lego Medium. Lumayan dibandingkan membeli produk baru, karena modul motor saja yang paling murah harganya sudah sekitar Rp 750 ribu.

Di dalam modul motor ada komponen menarik, dengan tulisan “R030”

Setelah dicek, ternyata komponen ini adalah resistor PTC (Positive Temperature Coefficient) yang berfungsi untuk pembatas arus. Nama lengkapnya: “PTC Resettable Fuse 0.3A (hold) 0.6A (trip) 60 volt 40A 0.5 Watt“. Fungsi alat ini untuk pembatas arus yang mengalir pada motor sampai di 0.3 ampere saja. Arus pada motor dapat membesar terutama kalau motor diberi beban sangat berat sehingga tidak dapat berputar. Pada kondisi ini arus dapat membesar sehingga dapat menyebabkan motor dan kabel menjadi panas dan membahayakan pemakai.


Debugging ESP32 Dengan FT2232HL

ESP32 dan CJMCU-2232HL

Mikrokontroler/mikroprosesor berbasis ESP32 mempunyai fitur on-chip-debugging dengan protokol JTAG. Supaya ESP32 ini dapat didebug, maka perlu ada komponen JTAG Adapter. Petunjuk pemilihan JTAG adapter terdapat di artikel “Selecting JTAG Adapter“. Cara termudah adalah menggunakan board ESP32-WROVER-KIT yang sudah mempunyai JTAG adapter di dalamnya. Cara lain adalah menambahkan JTAG adapter pada board ESP32 yang belum dilengkapi dengan JTAG Adapter. Daftar JTAG Adapter yang dapat dipakai dapat dilihat antara lain di artikel “Debug Adapter Hardware“.

Pada tulisan ini diuraikan cara menyambungkan ESP32 ke JTAG Adapter berbasis FT2232HL.

Cara termudah melakukan debugging pada ESP32 adalah menggunakan board ESP32-WROVER-KIT yang sudah ada JTAG Adapter built-in di dalamnya. Sayangnya harga board ini agak mahal (sekitar USD 50). Jika Espressif sendiri menggunakan FT2232 untuk JTAG Adapter, nampaknya kemampuan FT2232 cukup bagus sebagai debugger.

Harga board ESP32 yang murah sekitar USD 7, sedangkan breakout board untuk FT2232 harganya sekitar USD 7, jadi dengan USD 14 sudah memperoleh ESP32 lengkap dengan JTAG debugger. Hanya saja perlu merangkai sendiri ESP32 dengan FT2232.

Hardware

Berikut ini teknik penyambungan ESP32 ke FT2232 menurut beberapa sumber.

#1 Analisis Skematik ESP32 WROVER KIT

Contoh cara menyambungkan antara ESP32 dengan FT2232 dapat dilihat dari skematik ESP32 WROVER KIT di situs Espressif. Berikut ini adalah pin JTAG pada ESP32, yaitu:

  • MTCK
  • MTDI
  • MTDO
  • MTMS
  • EN
Pin JTAG pada ESP32

Berikut ini adalah bagian dari skematik ESP32 WROVER KIT, khususnya yang tersambung ke JTAG. Pin yang dipakai adalah ADBUS0, ADBUS1, ADBUS2, ADBUS3, ACBUS1, yang tersambung ke sinyal TCK, TDI, TDO, TMS dan R_RST

Pin JTAG pada FT2232HL

Tabel berikut berisi hasil analisis daftar pin dan sinyal JTAG pada skematik ESP32 WROVER KIT tersebut:

Pin FT2232HLSinyalSinyalPin ESP32
ADBUS0TCKMTCKR_IO13
ADBUS1TDIMTDIR_IO12
ADBUS2TDOMTDOR_IO15
ADBUS3TMSMTMSR_IO14
ACBUS2RSTENR_nTRST

#2 Situs PlatformIO

Penyambungan JTAG juga dijelaskan di situs PlatformIO sebagai berikut:

FT2232H Mini-Module PinBoard JTAG PinDescription
GND [CN2-2]GNDDigital ground
AD0 [CN2-7]TCKJTAG Return Test Clock
AD1 [CN2-10]TDITest Data In
AD2 [CN2-9]TDOTest Data Out
AD3 [CN2-12]TMSTest Mode State
AC2 [CN2-20]RESETConnect this pin to the (active low) reset input of the target CPU (EN for ESP32)

Sumber: http://docs.platformio.org/en/latest/plus/debug-tools/minimodule.html

Modul FT2232 yang dipakai pada artikel tersebut adalah “FT2232H Mini Module” yang diproduksi oleh FTDI.

FT2232H Mini Modul

Produk breakout board serupa juga dibuat oleh CJMCU seperti pada foto berikut:

CJMCU-2232HL

#3 Forum Platformio

Sebagai perbandingan, berikut ini daftar koneksi JTAG ke ESP32 menurut artikel forum PlatformIO (Debugging ESP32 – How), modul FT2232 yang digunakan adalah “FTDI2232 minimodule”:

To debug ESP32 using FTDI2232 minimodule, here is the required connection:
FTDI AD0 -> ESP32 GPIO13 (TCK)
FTDI AD1 -> ESP32 GPIO12 (TDI)
FTDI AD2 -> ESP32 GPIO15 (TDO)
FTDI AD3 -> ESP32 GPIO14 (TMS)
FTDI AC2 -> ESP32 EN (RST)
FTDI GND -> ESP32 GND

Sumber: https://community.platformio.org/t/debugging-esp32-how/4499

#4 Datasheet FT2232H

Penggunaan FT2232H sebagai JTAG juga dijelaskan secara ringkas di datasheet FT2232H sebagai berikut:

Konfigurasi pin FT2232H

Software

Setelah mendapatkan kepastian cara menyambungkan hardware JTAG debugger, selanjutnya adalah setting software untuk melakukan debugging.

Status saat ini baru melakukan studi software apa saja yang perlu disiapkan. Beriktu ini penjelasan software untuk debugging ESP32:

  • Penggunaan software debugger Eclipse/Command Line: https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/jtag-debugging/using-debugger.html https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/jtag-debugging/configure-other-jtag.html
  • Penggunaan Debugger dengan PlatformIO: http://docs.platformio.org/en/latest/plus/debug-tools/minimodule.html
  • Debugging ESP32 secara umum: https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/jtag-debugging/

Hasil debugging menyusul.

Kesimpulan

Kesimpulan sementara ini:

  • Menurut studi literatur, ESP32 dapat didebug dengan hardware FT2232HL, dengan biaya total USD 14, lebih murah daripada harus memakai ESP WROVER KIT seharga USD 50.
  • Penyambungan antara ESP32 dan FT2232 dijelaskan di beberapa situs, dengan isi konsisten.
  • Proses debugging belum dilakukan, namun dari pengalaman selama ini, isi artikel di situs Espressif cukup lengkap dan mudah diikuti. Nampak bahwa Espressif cukup serius mengusahakan agar produk ESP32nya mudah dipakai oleh ‘orang biasa’.

Referensi