Showing posts with label Elektronika. Show all posts
Showing posts with label Elektronika. Show all posts

Sunday, January 8, 2017

Ok, ini adalah pengalaman saya bongkar laptop. hal ini karena saya lelah dengan servis laptop yang keseringan, yang katanya masalah chipset.. pas terakhir saya coba bongkar sendiri laptop acer 4738G ini.. awalnya saya berfikir sama kesalahan terletak pada masalah chipset. saya fokus pada chipset.tapi chipset tidak menunjukan sama sekali pernah di bongkar..hmm jadi curiga apakah selama ini saya dibohongi sama tukang servis yg tiap servis katanya chipsetnya rusak dan biayanya 400.000..

Ok saya googling2 katanya laptop dengan gejala-gejala mati saat booting adalah karena kapasitor prosesor yg rusak..kemudian saya masih kurang yakin, dan emang susah juga bongkar tuh kapasitor.. akhirnya saya pikir2 gejala ini adalah gejala prosesor kepanasan.. awalnya saya coba dengan pasta gigi (wkwkwk pasta versi murah) masih sama saja gejalanya..mulai putus asa deh.. waktu dilab saya nemu peltier dengan pasta pendingin.. akhirnya saya coba oleskan sisa2 pasta tadi ke atas prosesor acer 4738G.. dan Ternyata Sukses tanpa mati sedikitpun.

 kemudian saya pasang baterainya, eh karena baterai terlalu lama tidak dipakai dia tetap 0% walau dicas berjam2.. akhirnya saya coba tutorial aneh yaitu memasukan baterai di dalam kulkas selama 2 hari..
dan Akhirnya SUKSES lagi..alhamdulillah..

Semoga pengalaman ini dapat membantu teman-teman yg sedang mengalami masalah yang sama..

Read More

Wednesday, August 31, 2016

Artikel ini dibuat untuk teman-teman yang mungkin penasaran bagaimana prinsip kerja token PLN, mungkin ada beberapa yang berfikir bahwa KWH meter atau yang umum disebut meteran listrik berkomunikasi ke server pusat ketika kita input token, dalam kata lain beberapa orang menyamakan dengan handphone yang ketika isi pulsa harus terhubung dengan jaringan.


Namun kenyataanya prinsip kerja dari pulsa pln ini berbeda dengan pulsa hp, karena pada token PLN ini tidak terhubung dengan jaringan. pada token PLN menggunakan kombinasi antara nomor KWH meter/Pelanggan id untuk menghasilkan 14 digit angka yang diinputkan ke meteran.

Nah lho, berarti bisa diakali dong nomornya.?

yupz benar sekali, jika teman-teman bisa mengetahui pola  atau rumus token maka teman2 bisa menggenerate 14 digit token PLN sendiri.. namun pastinya sangat susah sekali untuk dapat menemukan pola atau rumus tersebut..

Nah begitulah prinsip kerja dari token PLN, semoga dapat menjawab penasaran teman-teman semua.

Salam
Read More

Monday, December 2, 2013

Op amp merupakan rangkaian penguat, dalam artian penguatan dengan nilai sebesar K Gain. jadi tidak selamanya penguatan itu menjadi lebih besar, jika gain K=0.5, maka outputnya menjadi setengah kali dari Input.


Terdapat bermacam-macam rangkaian op map, pada artikel ini saya ingin berbagi ilmu yang saya pelajari di mata kuliah Instrumentasi Sistem Pengaturan(Kendali) tentang macam-macam rangkaian Op-amp dan rumusnya,

Macam-macam rangkaian op amp yaitu :

1. Voltage Follower
Voltage Follower
Rangkaian Voltage Follower berguna untuk membuat tegangan High Impedance, tegangan yang dihasilkan tidaklah berubah sama sekali karena tidak ada Gain pada Voltage Follower.

2. Inverting Amplifier

Rangkaian Inverting Amplifier
Rangkaian ini berfungsi merubah kutub tegangan menjadi berlawanan arah dengan kutub tegangan input, misal input Vin yaitu -5V maka outputnya menjadi +5V jika K=1, hal ini karena rangkaian terhubung dengan kutub negatif Op amp, sehingga rumusnya menjadi :

Vout = - [(Rf/Rin).Vin]

dimana   K=Rf/Rin

atau
Vout = -(K.Vin) 

3. Non Inverting Amplifier
Rangkaian Non Inverting Amplifier
Rangkaian ini merupakan rangkaian penguat dengan Gain K saja, jadi tidak ada perubahan kutub antara input dengan output pada rangkaian Op amp ini, yang membedakan adalah nilai K disini memiliki rumus yaitu

K = 1+ (Rf/Rg)

maka Vout = [1+(Rf/Rg)].Vin




4. Differential Amplifier


 Rangkaian ini memiliki dua input V1 dan V2 pada setiap kutub Op amp, Voutput yang dihasilkan merupakan penjumlahan dari masing-masing Vin x K . Rumusnya adalah

Vout  = (V2.Rg/R2)-(V1.Rf/R1)
Rf dan Rg dapat dibuat sama(Ry), R2 dan R1 dapat dibuat Sama(Rx)

maka K menjadi
K=Ry/Rx

dan 

Vout = Ry/Rx(V2-V1)
atau 
Vout = K. (V2-V1)






Read More

Sunday, December 1, 2013

Yapz baru-baru ini saya belajar PLC, saat saya mengambil mata kuliah Informatika Industri di Pascasarjana Teknik Elektro Institut Teknologi Sepuluh November. Walau saya dah lama kuliah di elektro, jujur saja baru kali ini saya berkenalan secara akrab dengan PLC. 

PLC Mitsubishi Q-Series merupakan PLC yang cukup bagus menurut saya, karena pada PLC Q-series memiliki modul-modul yang cukup untuk dapat membuat kita paham apa sih PLC itu..
pada PLC mitsubishi Q-Series terdapat modul-modul sebagai berikut :
1. Modul Digital Input 64Buah dimulai dari X0 - X3F
2. Modul Digital Output 64Buah dimulai dari Y70 - Y5F
3. Modul Analog Input (ADC)
4. Modul Digital To Analog (DAC)

dalam artikel kali ini saya ingin berbagi ilmu tentang bagaimana membuat Ladder untuk Delay.. 


sebenernya simple aja sih gimana bentuk laddernya. dari Ladder diatas menyatakan kalau T0 akan didelay selama 60x100ms alias 6 detik. kenapa 100ms?untuk timer T0-T200 memiliki nilai siklus timer sebesar 100ms

nah dari sini anda bisa mencoba untuk membuat suatu pewaktuan dalam lampu lalu lintas. Jika memiliki kendala tidak punya PLC maka teman-teman bisa menggunakan simulator yang disebut FX-Trainer, bisa dicari di 4shared atau google, kalau tidak ketemu juga, bisa hub saya lewat kmentar dibawah.

Read More

Saturday, November 30, 2013

Servo merupakan salah satu jenis motor dc. terdapat dua jenis servo yaitu continues servo dan standard servo, pada continues servo motor dapat terus berputar tanpa terhenti. pada standard servo, motor berputar dengan sudut antara 0 - 180 derajat. Servo bergerak melalui sinyal pulsa pwm dengan frekuensi 50Hz, rentang kerja servo adalah 900us sampai 2100us pulsa high dari 20000us.

Mikrokontroler dapat mengatur sudut servo dengan memberikan sinyal pwm, contoh jika kita memberikan sinyal 900us maka servo akan berada pada sudut 0 derajat. dan jika kita memberikan sinyal 1500us maka servo akan bergerak pada posisi 90derajat.begitupun dengan sinyal 2100us maka servo akan beraa pada posisi 180 derajat.

berikut source code untuk menggerakan servo dengan menggunakan interupt sehingga dapat menggerakan banyak servo pada 1 port mikrokontroler(8buah pin).

//File servo.h

 #include

#define SERVO_PORT  PORTB
#define SERVO_DDR   DDRB

// Upto 8 servos (since pulses are generated in
// sequence + only one port is used).
#define N_SERVOS    8

// Servo times (this is Futaba timing).
#define SERVO_MIN    920 // microseconds
#define SERVO_MAX   2120 // microseconds
#define SERVO_MID   (SERVO_MIN + SERVO_MAX) / 2

// Time between servo pulses.
#define SERVO_FRAME 20000 // microseconds (50Hz)

// Time slot available for each servo.
#define SERVO_TIME_DIV (SERVO_FRAME / N_SERVOS)

#if (SERVO_TIME_DIV < SERVO_MAX + 50)
#warning "Output fewer servo signals or increase SERVO_FRAME"
#endif
#if ((SERVO_TIME_DIV * (F_CPU / 1000000UL)) >= 0xFF00)
#warning "Output more servo signals or decrease SERVO_FRAME (or use the prescaler)"
#endif

// Computing timer ticks given microseconds.
// Note, this version works out ok with even MHz F_CPU (e.g., 1, 2, 4, 8, 16 MHz).
// (Not a good idea to have this end up as a floating point operation)
#define US2TIMER1(us) ((us) * (uint16_t)(F_CPU / 1E6))

// Servo times - to be entered as timer1 ticks (using US2TIMER1).
// This must be updated with interrupts disabled.
volatile uint16_t servoTime[N_SERVOS];
uint16_t servoData[10];
uint8_t tmpCRC[2] ;
// Servo output allocation (on a single port currently).
const static uint8_t servoOutMask[N_SERVOS] = {
    0b00000001, // PX0
    0b00000010, // PX1
    0b00000100, // PX2
    0b00001000, // PX3
    0b00010000, // PX4
    0b00100000, // PX5
    0b01000000, // PX6
    0b10000000, // PX7
};
// Servo mask is just the above masks ored.
#define SERVO_MASK 0xff




















file servo.c

#include "servo.h"

//Copied From Paparazzy
//for dxAutoPilot URO



void servoStart(void)
{
    // Outputs
    SERVO_DDR |= SERVO_MASK;
    // Setupt a first compare match
    OCR1A = TCNT1 + US2TIMER1(100);
    // start timer 1 with no prescaler
    TCCR1B = (1 << CS10);     
    // Enable interrupt
    TIMSK1 |= (1 << OCIE1A);
}

void servoSet(uint8_t servo, uint16_t time /* microseconds */)
{
    uint16_t ticks = US2TIMER1(time);
    cli();
    servoTime[servo] = ticks;
    sei();
}


void servo_init()
{
     uint8_t i;
    for(i = 0; i < N_SERVOS; i++) {
        servoTime[i] = US2TIMER1(SERVO_MID);
    }
    #if N_SERVOS > 2  
    servoTime[2] = US2TIMER1(SERVO_MIN);
    #endif
    servoTime[N_SERVOS-1] = US2TIMER1(SERVO_MAX);  
    servoStart();
    sei();


}
ISR(TIMER1_COMPA_vect)
{
    static uint16_t nextStart;
    static uint8_t servo;
    static bool outputHigh = true;
    uint16_t currentTime = OCR1A;
    uint8_t mask = servoOutMask[servo];
  
    if (outputHigh) {
        SERVO_PORT |= mask;
        // Set the end time for the servo pulse
        OCR1A = currentTime + servoTime[servo];
        nextStart = currentTime + US2TIMER1(SERVO_TIME_DIV);
    } else {
        SERVO_PORT &= ~mask;
        if (++servo == N_SERVOS) {
            servo = 0;
        }
        OCR1A = nextStart;
    }
    outputHigh = !outputHigh;
}

uint8_t degreeServo(unsigned char degree)
{    int min_pulse = 900;
    int max_pulse = 2100;
    int deg = min_pulse+((max_pulse-min_pulse)*degree*1.0/180); // for 0 - 180
//    int deg = min_pulse+((max_pulse-min_pulse)*(degree+90)*1.0/180);
    return deg;
}


untuk menggerakan servo pada sudut tertentu maka cukup memanggil fungsi degreServo(sudut)
contoh : degreeServo(45) -> maka akan bergerak pada posisi 45 derajat.




Read More

Friday, November 29, 2013

Membuat countdown seven segment merupakan pelajaran yang menarik untuk mengenalkan kita pemrograman mikrokontroler, karena didalamnya kita akan belajar apa itu array, variabel, aritmatika, input output mikrokontroler.

Langsung saja saya berikan contohnya seven segment untuk satu buah seven segment, nanti kalau udah bisa dan paham, teman-teman bisa mencobanya dengan 2 atau lebih seven segment dengan format angka satuan(1digit), puluhan(2digit), ratusan(3digit), ribuan(4digit).

saya sarankan anda menggunakan software proteus untuk ujicoba ini jika anda tidak mempunyai peralatanya langsung.. Btw Apa sih proteus itu?anda bisa membacanya diartikel " Software simulasi elektronika - proteus "

Oke selanjutnya anda akan merangkai rangkaian mikrokontroler seven segment seperti gambar berikut :
Seven Segment Countdown

Dalam hal software pemrograman, saya lebih menyukai menggunakan AVR Studio, karena software ini gratis, dan dengan software ini saya dibuat membuat semua librarynya sendiri karena kita tidak dimanjakan dengan autogenerate code seperti pada codevision. 

#include
#include
int  X[5]= {0b11000000,0b11111001,0b10100100,0b10110000,0b10011001};
int satuan,puluhan;
int main()
{
DDRA = 0xff;
int i;
while(1)
    {
     i=4;
     for(i=4;i>0;i--)
     {
        pecah(i);
        _delay_ms(5000);
     }
    }
}

void pecah(int VALUE)
{
        satuan = (VALUE%10)+0x30;
        puluhan = (VALUE%100)/10;
        puluhan += 0x30;
        PORTA = X[puluhan];
        PORTB = X[satuan];         
}

Penjelasan dari kode diatas adalah berikut :
 int  X[5]= {0b11000000,0b11111001,0b10100100,0b10110000,0b10011001};

kode diatas berfungsi untuk mendeklarasikan pin mana yang digunakan sebagai bagian dari seven segment untuk membentuk angka tertentu , dimana 0 adalah led7 on dan 1 led7 off, seven segment terdiri dari beberapa part led seperti gambar dibawah

 pada mikrokontroler, pin yang digunakan hanya 7 buah dimulai dari pin0 - pin 6. seperti angka 0, memiliki nilai 11000000, maka seven segment akan menyalakan led F,E,D,C,B,A dan mematikan led G. dimana setiap pin terhubung dengan susunan berikut :
A - PIN0
B - PIN1
C - PIN2
D - PIN3
E - PIN4
F - PIN5
G - PIN 6

untuk memisahkan antara nilai ratusan dan puluhan serta satuan, teman-teman bisa menggunakan rumus berikut 
        satuan = (VALUE%10)+0x30;
        puluhan = (VALUE%100)/10;
        puluhan += 0x30;
        PORTA = X[puluhan];
        PORTB = X[satuan]; 

value adalah nilai variabel, misalnya 81;
untuk mencari satuan dihitung dengan rumus value%10+0x30; ini maksudnya adalah (81%10) dimana % adalah modulo atau sisa bagi, dimana 81%10 sisa baginya adalah 1, dan ditambahkan dengan nilai 0x30 yang merupakan kode ascii untuk 0. jika ingin paham apa itu kode ascii, teman-teman bisa gunakan tabel berikut untuk referensi :
 
Read More

Latest