Minggu, 13 Oktober 2013

Sistem Pelistrikan di Indonesia

Pastikan listrik di rumah anda berjalan dengan baik. Peduli terhadap listrik yang digunakan di rumah dengan mengetahui sistem listrik yang digunakan.

Listrik yang dapat menghidupkan perangkat elektronik baik di rumah tangga, pemerintahan, sampai industri, berasal dari listrik yang dihasilkan oleh pembangkit tenaga listrik. PLN mengatur segala macam pembebanan dan penggunaan listrik yang berasal dari pembangkit listrik, untuk segala macam pemakaian. Listrik yang berasal dari pembangkit listrik adalah listrik 3 fasa dan kemudian disalurkan kepada pelanggan sesuai dengan kebutuhan daya yang dinginkan. Listrik pada pelanggan dapat berupa listrik 1 fasa ataupun 3 fasa.

Jaringan tegangan listrik (JTL) merupakan sisitem penyaluran / pendistribusian tenaga listrik milik PLN yang dioperasikan dengan Tegangan Rendah (TR), Tegangan Menengah (TM), TT (Tegangan Tinggi) atau Tegangan Ekstra Tinggi (TET) [http://www.pln.co.id/eng/?p=85]. Ada berbagai macam JTL yang berfungsi untuk pendistribusian listrik, diantaranya adalah

1. Jaringan Tegangan Ekstra Tinggi (JTET) : dipoerasikan dengan TET (Tegangan diatas 245 kV)
2. Jaringan Tegangan Tinggi (JTT) : dioperasikan dengan TT ( Tegangan sistem 35 kV - 245 kV)
3. Jaringan Tegangan Menengah (JTM) : dioperasikan dengan TM (Tegangan sistem 1 kV - 35 kV)
4. Jaringan Tegangan Rendah (JTR) : dioperasikan dengan TR (Tegangan sistem < 1 kV)

Untuk pengukuran energi diperlukan dua alat yaitu Current Trasformer (CT) dan Potential Transformer dengan menurunkan arus listrik dan tegangan listrik. Satuan energi listrik yang menjadi acuan seberapa besar kita harus membayar listrik adalah kilo Watt Hour (kWh) yang dapat diukur melalui kWh meter. kWh meter terbagi menjadi dua macam yaitu kWh Meter Tarif Ganda dan kWh Meter Tarif Tunggal. Tarif ganda digunakan untuk mengukur pemakaian energi pada WBP dan WLBP. Sedangkan Tarif tunggal digunakan untuk mengukur pemakaian energi  pada salah satu waktu. WBP adalah waktu beban puncak, antara jam 18.00 sampai 22.00 dan WLBP adalah waktu luar beban puncak, anatar jam 22.00 sampai 18.00.

Daya listrik terbagi menjadi tiga macam (segitiga daya), yaitu :

1. Daya Listrik Nyata/Aktif (Watt) : Daya listrik yang terpakai sebenarnya
    P = V x I x cos phi                      -> 1 fasa
    P = 3 x V x I x cos phi              -> 3 fasa
    ket : cos phi = faktor daya

2. Daya Listrik Reaktif (VAR/Volt Ampere Reactive) : Daya yang terpakai untuk pembentukan medan magnet yang menghasilkan fluks medan magnet. Daya tersebut juga terpakai untuk daya mekanik dan panas. Contoh : transformer, motor, lampu pijar, dan lainya.
    Q = V x I x sin phi                      -> 1 fasa
    Q = 3 x V x I x sin phi              -> 3 fasa
    ket : sin phi = faktor daya

3. Daya listrik Semu (VA) : Total daya aktif dan reaktif
    S = V x I                                      -> 1 fasa
    S = √3 x V x I                              -> 3 fasa
Pada pembangkit listrik, diperlukan pengaturan antara daya listrik nyata dan daya listrik reaktif agar daya dapat didistribusikan dengan baik dan tidak terjadi rugi daya yang besar.

Segitiga Daya
Faktor daya (power factor) adalah rasio perbandingan antara daya aktif (Watt) dan daya semu (VA) pada rangkaian AC dan merupakan  beda sudut antara V dan I yang dinyatakan dalam cos φ.
pf = daya aktif (P) / daya semu (S)
    = V.I.cos φ / V.I = cos φ
dengan 0  pf  1

Batas pf yang ditentukan oleh PLN adalah 0,85, sedangkan hal (+) dan (-) dari nilai pf yang meningkat atau menurun adalah sebagai berikut.

(+) 
Menekan rugi-rugi daya
Tegangan meningkat
Kapasitas distribusi listrik meningkat
(-)
Memperbesar penggunaan listrik kWh akibat rugi daya
Memperbesar penggunaan listrik kVARh
Terjadi tegangan jatuh (drop voltage) dan menguragi mutu listrik

Koreksi pf dapat dilakukan dengan :
- pemasangan kapasitor untuk mengurangi medan pada daya reaktif
- mengurangi operasi dan beban motor
- mengoperasikan motor sesuai dengan kapasitas motor
- menghindari pengoperasian alat listrik di atas tegangan rata-rata

Pemasangan capasitor bank ditujukan untuk menghindari :
- kenaikan arus / suhu kabel
- kelebihan beban pada trafo (overload)
- tegangan jatuh (drop voltage) pada jalur line terakhir

Faktor daya dapat bersifat lagging / leading
- Lagging (tertinggal) jika tegangan mendahului arus yang terjadi pada beban induktif (motor induksi, AC, transformator).
- Leading (mendahului) jika arus mendahului tegangan yang terjadi pada beban kapasitif (kapasitor, generator sinkron, motor sinkron, kondensor sinkron).

Tarif Daya Listrik (TDL) merupakan ketentuan pemerintah yang berlaku mengenai golongan tarif dan harga jual tenaga listrik yang disediakan oleh PLN yang terbagi menjadi dua, yaitu, TDL untuk rumah tangga dan industri. Daya listrik yang disediakan oleh PLN adalah 220, 450, 900, 1300, 2200, 3500, 6600, dan laianya.

Sistem listrik 3 fasa diperkenalkan dan dipatenkan oleh Nikola Tesla 1887 dan 1888. Sistem 3 fasa lebih banyak digunakan dibandingkan sistem 2 fasa atau 1 fasa, karena dapat mengirimkan daya listrik yang lebih besar, terutama dalam aplikasi pada motor-motor listrik. Sistem 3 fasa digunakan mulai dari pembangkitan, transmisi, sampai distribusi. Dalam sistem 3 fasa, terdapat tiga buah penghantar dengan tegangan yang sama dan berbeda fasa 120. Sistem 3 fasa dapat disusun dalam rangkaian delta (segitiga) dan star (bintang). Perbandingan kedua susunan tersebut adalah sebagai berikut.
Susunan 1 Fasa dan 3 Fasa
Tabel Perbandingan 1 Fasa dan 3 Fasa

Sistem listrik 3 fasa dengan susunan star digunakan oleh PLN pada trafo distribusi JTR (380V/220V). Seperti yang ditunjukkan oleh gambar berikut.
Sistem Listrik 3 Fasa
Seperti yang ditunjukkan oleh gambar tersebut, besarnya tegangan fasa-netral (phase voltage) adalah tegangan fasa-fasa (line voltage) / 3 = 380V / 3 = 220V. Instalasi listrik yang sering digunakan oleh pelanggan 1 fasa pada distribusi listrik perumahan, ditunjukkan oleh gambar berikut.

Sistem Listrik 3-Phase
Sistem Distribusi Listrik Perumahan
Gambar tersebut menunjukkan bahwa listrik yang berasal dari PLN terdiri dari 3 kabel bertegangan dan 1 kabel netral, sedangkan listrik yang tersambung pada rumah-rumah adalah 1 fasa terdiri dari  1 kabel fasa dan 1 kabel netral. Pada instalasi listrik rumah, terdapat tiga buah kabel, yaitu :

Kabel Listrik untuk 3 Fasa
Kabel Listrik untuk 1 Fasa
1. Kabel Fasa (merah/hitam/kuning)
Kabel sebagai sumber listrik AC yang membawa tegangan dari sumber listrik PLN. Pada stop kontak, jalur fasa ini dapat diketahui dengan menggunakan testpen. Jika testpen menyala, maka pada titik tersebut terdapat sumber tegangan.

Testpen
2. Kabel Netral (Biru)
Kabel sebagai acuan tegangan nol yang disambungkan ke tanah pada pembangkit tenaga listrik dan pada titik-titik tertentu (tiang listrik) jaringan listrik untuk disambungkan ke gorund terutama pada trafo penurun tegangan dari JTT. Pada netral, jumlah arus dari seluruh fasa adalah nol (Jika Is=Ir=It, maka Is+Ir+It=0).

3. Kabel Tanah / Ground (Hijau-Kuning)
Kabel ini digunakan sebagai acuan nol pada lokasi pemakai yang disambungkan ke tanah (ground). Kabel ini benar-benar berasal dari logam yang ditanam di tanah rumah kita. Kabel ini sebagai kabel pengamanan yang disambungkan ke chassis alat-alat listrik di rumah agar pemakai alat tidak mengalami kejutan listrik.
Untuk mengatasi kebocoran (induksi) listrik dari alat-alat listrik dipasang kabel tanah (ground) yang dihubungkan dengan logam (elektroda) yang ditancapkan ke tanah untuk disatukan dengan kabel netral dari jala listrik yang dipasang pada jarak terdekat dengan meteran listrik atau dekat dengan sekering.
Pemasangan kabel tanah (ground) pada sistem listrik di rumah dinilai sangat penting karena sebagai syarat mutlak keselamatan dari bahaya kejutan listrik dan beberapa alat-alat listrik yang sensitif tidak akan bekerja dengan baik jika ada induksi listrik yang muncul di chassis (contoh : efek arus Eddy).

Pastikan instalasi listrik di rumah anda terpasang dengan baik dan selalu cek kWh meter anda masih berfungsi dengan baik. Bijak dalam penggunaan listrik demi kepentingan bersama.

Salam listrik......

References:


Minggu, 23 Juni 2013

Penguat Logaritmik

Rangkaian penguat logaritmik merupakan rangkaian penguatan untuk Vout =  log (Vin).
Rangkaian penguat logaritmik ini terdiri dari beberapa opamp.

Inilah adalah hasil keluaran sinyal output dengan simulasi menggunakan Pspice.

Selain itu juga bisa disimulasikan dengan Proteus.

Dari kedua simulasi didapat hasil Vout = log(Vin) = log(10 volt) = 1 volt.

Teka Teki Logika

Ada 5 buah rumah yang masing-masing memiliki warna berbeda. Setiap rumah dihuni satu orang pria dengan kebangsaaan yang berbeda-beda. Setiap penghuni rumah menyukai jenis minuman tertentu, merokok satu merk rokok tertentu dan memelihara satu jenis hewan tertentu.
Tak satupun dari kelima orang itu yang minum minuman yang sama, merokok satu merk rokok yang sama, dan memelihara hewan yang sama seperti penghuni yang lain.
PERTANYAAN : Siapakah Yang memelihara IKAN?
PETUNJUK:
* Orang Inggris tinggal di dalam rumah berwarna merah
* Orang Swedia memelihara anjing
* Orang Denmark senang minum teh
* Rumah berwarna putih terletak tepat disebelah kiri rumah berwarna coklat
* Penghuni rumah berwarna putih senang minum kopi
* Orang yang merokok PallMall memelihara burung
* Penghuni rumah yang terletak ditengah-tengah senang minum susu
* Penghuni rumah berwarna kuning merokok Dunhill
* Orang Norwegia tinggal di rumah paling pertama
* Orang yang merokok Marlboro tinggal di sebelah orang yang memelihara kucing
* Orang yang memelihara kuda tinggal di sebelah orang yang merokok Dunhill
* Orang yang merokok Winfield senang minum bir
* Di sebelah rumah berwarna biru tinggal orang Norwegia
* Orang Jerman merokok Rothmans
* Orang yang merokok Marlboro bertetangga dengan orang yang minum air.
Albert Einstein menyusun teka-teki ini pada abad lalu. Dia menyatakan, 98% penduduk dunia tidak mampu memecahkan teka-teki ini. Apakah anda termasuk yang 2%?
keyword:
Kuning, Biru , Merah, Putih, Coklat, Norwegia, Denmark, Inggris, Jerman, Swedia, Air, Teh, Susu, Kopi, Bir, Kucing, Kuda, Burung, Ikan, Anjing, Dunhill, Marlboro, Pallmall, Rothmans, Winfield

Fitur ADC STM32F100

ADC (Analog Digital Converter)

Things to remember that bit of ADC on STM32 is 12 bit. 2^12 = 4096.

#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_adc.h"
#include "stm32f10x_dma.h"

ADC_InitTypeDef ADC_InitStructure;
DMA_InitTypeDef DMA_InitStructure;

void RCC_config(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
RCC_AHBPeriphClockCmd (RCC_AHBPeriph_DMA1 , ENABLE);
}

void GPIO_config(void)
{
//ADC1
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | \
                     GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}

void ADC_config(void)
{
//clock ADC (max 14MHz --> 24/2=12MHz)
RCC_ADCCLKConfig (RCC_PCLK2_Div2);

//ADC Init
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 6;
ADC_Init ( ADC1, &ADC_InitStructure);

ADC_RegularChannelConfig(ADC1,ADC_Channel_0, 1,ADC_SampleTime_239Cycles5);
ADC_RegularChannelConfig(ADC1,ADC_Channel_1, 2,ADC_SampleTime_239Cycles5);
ADC_RegularChannelConfig(ADC1,ADC_Channel_2, 3,ADC_SampleTime_239Cycles5);
ADC_RegularChannelConfig(ADC1,ADC_Channel_3, 4,ADC_SampleTime_239Cycles5);
ADC_RegularChannelConfig(ADC1,ADC_Channel_4, 5,ADC_SampleTime_239Cycles5);
ADC_RegularChannelConfig(ADC1,ADC_Channel_5, 6,ADC_SampleTime_239Cycles5);
ADC_DMACmd(ADC1, ENABLE);
ADC_Cmd (ADC1,ENABLE);

//ADC_ITConfig(ADC1,ADC_IT_EOC, ENABLE);

// calibration
ADC_ResetCalibration(ADC1);
while(ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));

//conversion
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
}

uint16_t ADC_ConvertedValue[6];
void DMA_config (void)
{
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&ADC1->DR;
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t) &ADC_ConvertedValue;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = 6;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel1, &DMA_InitStructure);

DMA_Cmd(DMA1_Channel1, ENABLE);
}

sprintf(kata2,"%d %d %d %d %d %d \n\r", \
ADC_ConvertedValue[0],ADC_ConvertedValue[1],ADC_ConvertedValue[2], \
ADC_ConvertedValue[3],ADC_ConvertedValue[4],ADC_ConvertedValue[5]);
usart_puts(kata2);

Jumat, 21 Juni 2013

Using USART on STM32F100

Fitur USART (Universal Synchoronous Asynchronous Receiver Transmitter)

Kali ini saya akan ngebahas tentang penggunaan fitur USART pada STM32F100. Untuk menghubungkan mikonkontroler dengan PC, saya gunakan board FTDI dengan FT232 untuk komunikasi serialnya. Untuk menghubungkannya, cukup dengan menghubungkan pin TX, RX dan GND dari mikrokontroler ke FTDI.
USART pada STM32F100 ada tiga buah USART1, USART2, USART3, bebas mau nggunain yang mana aja yang penting pin di mikro-nya sesuai. Kalo misalnya kita gak pengen nggunain pin bawaan dari mikronya karena udah digunain buat fitur lain, kita bisa pindah fitur USART tersebut ke pin yang lain, yang bukan pin bawaan dari mikronya, pakai fitur REMAP sesuai tabel dari datasheet mikronya. USART yang bisa di-remap pada STM32F100 yaitu USART1 dan USART3. 
Inisialisasi awal yang wajib ditulis adalah
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_usart.h"
#include <stdio.h> 
 dan jangan lupa untuk mencentang tiap library tersebut pada repository-peripheral (untuk compiler coocox). Setelah itu, inisialisasi juga utuk clocknya dari tiap fitur (GPIO, USART) dan inisialisasi pin-pin pada port apa saja yang digunakan baik untuk USART ataupun I/O.

Next, ikutian aja listing program berikut ini.
char kata2[16];
#ifdef __GNUC__
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
     set to 'Yes') calls __io_putchar() */
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
Untuk inisialisasi pengaturan gunakan ini.
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
Untuk mengaktifkan clock tiap fiturnya gunakan void berikut ini.
void RCC_config(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
}
 Untuk konfigurasi pin input dan output-nya gunakan void ini.
void GPIO_config(void)
{
//USART TX
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
//USART RX
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
//GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE );
Selanjutnya lakukan konfigurasi untuk fitur USART seperti berikut ini.
void USART_config(void)
{
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_InitStructure.USART_HardwareFlowControl = \
        USART_HardwareFlowControl_None;
USART_Init(USART3, &USART_InitStructure);
USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);
USART_Cmd(USART3, ENABLE);
}

Untuk menggunakan fitur USART dapat kita gunakan sprintf, puts dan lainya pada void main berikut ini.
RCC_config();
GPIO_config();
USART_config();
setvbuf( stdout, 0, _IONBF, 0 );
unsigned int i=0;
while(1)
{
if (i<=1000)
    {
       sprintf(kata2,"Hitungan ke- %d \n\r", i );
       usart_puts(kata2);
       i++;
      delay(66);
      }
else i=0;
}
Untuk nampilin hasilnya, agan2 bisa pake hyperterminal, terminal bawaan dari arduino, terminal bawaan dari codevision ato bikin aplikasi sendiri, ato pake yang lainya.

Catatan penting : Jangan centang Retarget Printf pada repository-peripherals. Setelah itu pada configuration-link  pilih library use nano C library, centang printf float dan scan float. Kemudian pada Linked Library pilih add dan ketik "m" (tanpa tanda petik). Selain itu, hilangkan tanda centang pada Enable LTO. Semoga bisa jalan di PC agan2.

Untuk usart_puts - nya, tambahkan void berikut ini.
void usart_putchar(char c)
{
uint8_t ch;
ch = c;
USART_SendData(USART3, (uint8_t) ch);
while (USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET) {}
}
void usart_puts(char *data)
{
int i=0;
int n = strlen(data);
for(i=0;i<n;i++)
{
usart_putchar(data[i]);
}
}
Jika berfungsi sebagai receiver, agan2 bisa pake void GetChar berikut ini.
char GetChar()
{
    uint8_t ch;
    ch = USART_ReceiveData(USART3);
    return ch;
}
Untuk aplikasinya bisa pake ini.
bInChar[0] = GetChar();
if (GetChar()==85)
{
GPIOC->ODR = GPIO_Pin_9;
delay(100000);
}
else if (GetChar()==0)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_9);
        }
Untuk inisialisasi delay dan GPIO port C, agan2 bisa cek postingan sebelumnya.

Selain cara yang udah dibahas, ada juga cara lain seperti berikut ini.
const unsigned char menu[] = " Welcome to CooCox! \r\n";
UARTSend(menu, sizeof(menu));
Kemudian tambahkan void berikut ini.
void UARTSend(const unsigned char *pucBuffer, unsigned long ulCount)
{
    // Loop while there are more characters to send.
    while(ulCount--)
    {
        USART_SendData(USART3, (uint16_t) *pucBuffer++);
        /* Loop until the end of transmission */
        while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET)
        {
        }
    }
}
Pada dasarnya, kedua cara tersebut memiliki penggunaan comand yang sama yaitu USART_SendData dan USART_GetFlagStatus.

Ok, sekian duu gan penjelasannya.
Semoga bermanfaat.
Thanks.
"Orang boleh pandai setinggi langit, tapi selama ia tak menulis, ia akan hilang di dalam masyarakat dan dari sejarah" Pramoedya Ananta Toer (Rumah Kaca, hlm. 352)