Kendali Motor Dengan Mikrokontroler

Berikut ini ada artikel ringkas untuk membuat pengendali digital tanpa terlalu banyak teori:
“PID without PhD”
https://web2.qatar.cmu.edu/~gdicaro/16311-Fall17/slides/PID-without-PhD.pdf
http://manuals.chudov.com/Servo-Tuning/PID-without-a-PhD.pdf

Pengarang artikel tersebut menulis buku kendali digital yang cukup lengkap, membahas dari teori kendali digital sampai source code, minus rotary encoder & PWM.
Tim Wescott, Applied Control Theory for Embedded Systems, Newnes 2006

 

Beberapa masalah:

 

Kemarin saya sempat utak-atik beberapa jam, ringkasannya sebagai berikut.

Beberapa hal yang mungkin membuat masalah:

1. spesifikasi rotary encoder, sanggup sampai berapa rpm?

2. interfacing encoder ke mikroprosesor. apakah sinyal dari encoder diterima dengan baik di mikroprosesor?

3. setting interupsi eksternal, apakah sudah betul?

4. waktu untuk interupsi: apakah CPU cukup cepat mengolah data sebelum interupsi berikutnya datang? Apakah interupsi yang lebih rendah prioritasnya mendapat jatah CPU?

5. apakah ada proses lain di mikroprosesor yang rebutan jatah CPU?

 

 

Penggunaan interupsi di STM32:

https://circuitdigest.com/microcontroller-projects/getting-started-with-stm32-development-board-stm32f103c8-using-arduino-ide
https://circuitdigest.com/microcontroller-projects/how-to-use-interrupts-in-stm32f103c8

 

Alternatif Motor Driver

Alternatif motor driver:

– TB6612FNG

– L293

– L298

– MOSFET diskrit

– BJT diskrit

 

 

DigitalWrite Lambat

https://www.peterbeard.co/blog/post/why-is-arduino-digitalwrite-so-slow/

Simulasi Pengolahan Sinyal Digital

Tahap-tahap simulasi pengolahan sinyal digital dengan LTSpice, dan compiler C

Dokumen ini fokus pada menunjukkan terjadinya proses di setiap tahap dan integrasi proses-proses tersebut, tidak membahas optimasi sistem ataupun subsistem.

Persiapan

  • install LTSpice
  • install JDK untuk Netbeans 8.2
  • Install Netbeans 8.2 untuk IDE compiler C
  • Install Cygwin dan compiler gcc di Cygwin
  • Install Python 3.x
  • Install library SciPy untuk melakukan konversi file WAV
  • Install Arduino IDE untuk kompilasi kode ATmega328
  • Install Audacity untuk melihat isi file WAV
  • Download / clone repository https://github.com/waskita/embedded

Simulasi Proses

 

Proses aliran sinyal pada pengolahan sinyal digital lengkap adalah sebagai berikut (sumber):

Berikut ini diagram sinyal yang akan disimulasikan

Tahap simulasi ringkas:

  • Input AC dan rangkaian analog disimulasikan dengan LTSPice
  • Kuantisasi di ADC disimulasikan dengan program C
  • Filter digital disimulasikan dengan program bahasa C
  • DAC disimulasikan dengan program bahasa C
  • Reconstruction filter disimulasikan dengan LTSpice

Simulasi ini hanya untuk menunjukkan kerangka kerja untuk melakukan simulasi filter digital, maka dilakukan penyederhanaan sebagai berikut

  • Filter anti aliasing menggunakan filter RC orde 1, tanpa menghitung nilai frekuensi cut-offnya. Dalam tugas mesti diperhatikan frekuensi cut off, orde filter dan jenis filter
  • Filter rekonstruksi menggunakan filter RC orde 1, tanpa menghitung nilai frekuensi cut-offnya.
  • Filter digital menggunakan moving average dengan 3 angka. Seharusnya menggunakan LPF,HPF BPF, BSF sesuai keperluan.
  • Hanya menghitung respon pada 1 frekuensi. Seharusnya diukur respon pada beberapa frekuensi untuk mendapatkan kurva respon frekunsi / Bode plot.

Output WAV di LTSpice memiliki keterbatasan yaitu hanya mempunyai level tegangan -1 volt sampai +1 volt, sehingga untuk subsistem yang memiliki input/output melebihi rentang tersebut mesti dilakukan penyesuaian, atau simulasi dilakukan hanya pada rentang -1 sampai +1 volt.

Tahap Simulasi Secara Detail

Simulasi di Komputer Desktop

Buat simulasi rangkaian analog bagian depan meliputi sumber tegangan AC, LPF, level shift, penguat dan sebagainya. Output blok ini akan masuk ke ADC, jadi seharusnya level tegangannya sudah sesuai dengan level tegangan input ADC. ATmega328 dapat diatur referensinya di 2,56 volt atau VCC. Dalam prakteknya, VCC kurang stabil, lebih baik pakai referensi internal atau eksternal.

Contoh file simulasi: anti-aliasing-filter.asc

Berikut contoh gambar rangkaian sumber sinyal AC dan anti aliasing filter:

Pilih frekuensi input (misal 1000 Hz)

Tambahkan output WAV , contoh sintaks: ‘”.wave “anti-aliasing-out.wav” 16 10000  OUTPUT”‘

  • 16 : bitrate jumlah bit, berapa saja karena nanti akan dipotong pada waktu kuantisasi
  • 10000 : frekuensi sampling 10 kHz
  • VIN : nama label yang dijadikan winyal WAV (kanal 1)
  • OUTPUT : nama label yang dijadikan sinyal WAV (kanal 2)

Sampling rate disamakan dengan frekuensi sampling dari software (misal 10 kHz)

Bitrate pakai yang besar saja (misal 16 bit), nanti dapat dibulatkan di program C. Realitasnya adalah nanti dibulatkan sesuai dengan jumlah bit pada ADC (10 bit pada ATmega328)

Berikut tampilan V(vin) dan V(output). NampakV(output) teredam sedikit dan bergeser fase sedikit.

Seharusnya sinyal V(output) sudah dalam batas tegangan 0 sampai VREF. Sinyal V(output) di atas belum cocok untuk dimasukkan ke ADC karena ADC pada ATmega328 hanya menerima sinyal dengan tegangan 0 volt sampai VREF.

Simulasi pada LTSPice di atas menghasilkan output time series dalam format WAV.

Periksai sinyal output pada file WAV dengan program yang dapat menampilkan file WAV (misal Audacity https://www.audacityteam.org/) , pastikan bahwa sinyal WAV yang dihasilkan ‘masuk akal’.

Berikut contoh tampilan file WAV (anti-aliasing-out.wav) dengan Audacity:

Selanjutnya file WAV diubah menjadi CSV supaya mudah dibaca oleh program simulator filter. Kalau ada librarynya, bisa juga file WAV langsung dibaca  dengan program simulator filter.

Contoh converter: https://github.com/Lukious/wav-to-csv , diubah sedikit menjadi script wav2csv.py di repository.  Install python, scipy dan panda untuk dapat menjalankan wav2csv.py

File anti-aliasing-out.wav diubah menjadi anti-aliasing-out.csv

Cek isi file CSV, bisa dilihat dengan Excel untuk melihat apakah hasilnya sesuai.

Berikut contoh file CSV dilihat di Excel: (anti-aliasing-out.xlsx)

Selanjutnya jalankan program simulator filter digital (simulasi-filter/main.c) . Program ini membaca file CSV, kemudian data time series dimasukkan ke fungsi filter_moving_average. Output ditulis ke sebuah text file dalam format CSV (“simulasi-filter.csv”).

ADC disimulasikan dengan melakukan kuantisasi sinyal LPF_OUT sejumlah resolusi ADC yang dipakai. ATmega328 mempunyai resolusi 10 bit, sehingga sinyal LPF_OUT mesti dikuantisasi menjadi angka 0 sampai 1023 (1024 tingkat).

Contoh software simulasi filter digital dapat dilihat di https://github.com/waskita/embedded/tree/master/simulasi-filter-digital/simulasi-filter . Proram ini ditulis dengan Integrated Development Environment (IDE) dengan Netbeans 8.2), compiler C dengan Cygwin.

Untuk memastikan, dapat dibandingkan antara sinyal output dari generator sinyal, sinyal masuk ke ADC, dan sinyal hasil filter digital.

Berikut grafik VIN, LPF_OUT dan FILTER_OUT (simulasi-filter.xlsx)

Tahap selanjutnya adalah membuat sinyal output DAC dalam format WAV dan kemudian simulasi reconstruction filter dengan LTSpice.

Output DAC adalah dalam bentuk zeroth order hold, contohnya seperti berikut ini: (sumber)

Untuk menghasilkan sinyal zeroth order hold, perlu dilakukan hal berikut

  • melakukan kuantisasi output sesuai dengan resolusi DAC yang dipakai. Pada sistem ini digunakan DAC MCP4725 mempunyai resolusi 12 bit. Jika dipakai ESP32, maka mesti menggunakan resolusi 8 bit.
  • menaikkan sampling rate, untuk simulasi terjadinya sinya berbentuk anak tangga (staircase). Misal dengan menaikkan jadi 10x sinyal sampling saat ini menjadi 100 kHz.

LTSpice dapat menerima input WAV dan TXT. Pada simulasi reconstruction filter dipakai  TXT saja supaya tidak perlu repot melakukan konversi CSV ke WAV. Prosedur ini dijelaskan di video berikut (https://www.analog.com/en/education/education-library/videos/5579265677001.html) , dan di https://www.analog.com/en/technical-articles/ltspice-importing-exporting-pwl-data.html

Berikut ini contoh rangkaian reconstruction filter sederhana (reconstruction-filter.asc)

Berikut output DAC dan output reconstruction filter

Pada simulasi di atas nampak frekuensi cut-off terlalu tinggi, sehingga ‘anak tangga’ dari output DAC masuk ke output rangkaian.

Simulasi di Arduino ATmega328

Tahap selanjutnya adalah menguji algoritma filter di mikrokontroler ATmega328 (Arduino Nano).

Simulasi dilakukan dengan tahapan berikut:\

  • Membuat project Arduino untuk menjalankan simulasi. Nama projectnya adalah atmega-simulasi-filter
  • Source code fungsi filter digital dicopy ke source code Arduino
  • Data output ADC dijadikan sebuah array const di file data.h. Proses ini dilakukan dengan program arduino-createdata
  • File data.h di-include di project Arduino
  • Fungsi filter digital dijalankan dengan data dari array data output ADC
  • Output hasil fungsi filter dikirim ke port serial
  • Data dari port serial dibandingkan dengan hasil simulasi fungsi filter digital di komputer desktop. Seharusnya tidak terdapat perbedaan yang berarti.

Berikut ini sinyal output ADC dan output filter dari output serial Arduino, diplot dengan Excel:

Data hasil filter di Arduino dapat dibandingkan dengan data hasil filter di komputer desktop

Tahap selanjutnya adalah pengujian kecepatan filter [under construction]

Referensi

Pengukuran Respon Potensiometer

Potensiometer dapat dipakai sebagai sumber tegangan sebagai sinyal untuk dimasukkan ke sistem mikroprosesor seperti Arduino.

Bandwidth suatu potensiometer perlu diukur untuk mengetahui apakah akan terjadi aliasing ketika sinyal analog dari potensiometer diubah menjadi digital dengan teknik sampling.

Berikut ini contoh grafik tegangan output dari potensiometer, diukur dengan ADC di Arduino Nano (ATmega328).

Code untuk pengukuran: https://github.com/waskita/embedded/tree/master/atmega-potensiometer-test

Data hasil pengukuran: Hasil pengukuran: https://github.com/waskita/embedded/tree/master/potensiometer-data

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