Rabu, 11 Juni 2014

Operational Amplifier (Op-Amp)

Penguat operasional (Op Amp) adalah suatu rangkaian terintegrasi yang berisi beberapa tingkat dan konfigurasi penguat differensial. Penguat operasional memilki dua masukan dan satu keluaran serta memiliki penguatan DC yang tinggi. Untuk dapat bekerja dengan baik, penguat operasional memerlukan tegangan catu yang simetris yaitu tegangan yang berharga positif (+V) dan tegangan yang berharga negatif (-V) terhadap tanah (ground). Berikut ini adalah simbol dari penguat operasional:

 Simbol Op Amp

1. Penguatan tegangan lingkar terbuka (open-loop voltage gain) AVOL = Minus tak berhingga
2. Tegangan ofset keluaran (output offset voltage) VOO = 0
3. Hambatan masukan (input resistance) RI = Tak berhingga
4. Hambatan keluaran (output resistance) RO = 0
5. Lebar pita (band width) BW = Tak berhingga
6. Waktu tanggapan (respon time) = 0 detik
7. Karakteristik tidak berubah dengan suhu

Kondisi ideal hanya merupakan kondisi teoritis belaka tidak mungkin dapat dicapai dalam kondisi praktis (praktek). Tetapi para pembuat Op Amp berusaha untuk membuat Op Amp yang memiliki karakteristik mendekati kondisi-kondisi di atas. Karena itu sebuah Op Amp yang baik harus memiliki karakteristik yang mendekati kondisi ideal. Dibawah ini ada beberapa macam kompensasi dari op Amp:

1. Penguat operasional dengan 741 yang bekerja sebagai penguat tidak membalik (Non Inverting).

Penguat Op-Amp Non Inverting

V keluaran = ( 1+ R2/R1 ) x Vin  dari RV2
Dari gambar diatas: 
V keluaran = ( 1 + 10k/10k) x 2,50 = 5 Volt

Senin, 09 Juni 2014

DAC 0808 Dengan ATMEGA 8535

Interfacing DAC0808 dengan ATMEGA8535

http://downloads.ziddu.com/download/23827531/DAC0808.rar.html


listing programnya:

#include <mega8535.h>
#include <delay.h>

#define ADC_VREF_TYPE 0x60
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input){
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;}
// Declare your global variables here
void main(void){
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xFF;
// ADC initialization
// ADC Clock frequency: 1000.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: ADC Stopped
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;
while (1){
   PORTB = read_adc(0);
   PORTC = read_adc(1);}}
//end program----------


INTERRUPT TIMER 1 DENGAN ATMEGA 8535


/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.9 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date    : 10/06/2014
Author  : BAKHTIAR
Company : CUNDA
Comments:
Chip type                     : ATmega8535
Program type            : Application
AVR Core Clock frequency: 12,000000 MHz
Memory model            : Small
External RAM size : 0
Data Stack size         : 128
*****************************************************/

#include <mega8535.h>
// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
#include <mega8535.h>
#include <stdio.h>
    unsigned char buff[30];
    unsigned long detik;
    // sub rutin saat terjadi interrupt Timer 1
    interrupt [TIM1_OVF] void timer1_ovf_isr(void){
    TCNT1H=0x48;
    TCNT1L=0xe5;
    detik++;
    lcd_clear();
    sprintf(buff,"detik %d",detik);
    lcd_puts(buff);}
    void main(void){
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: kHz
// Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    TCCR1A=0x00;
    TCCR1B=0x04;
    TCNT1H=0xC2;
    TCNT1L=0xF7;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x04;
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    // Analog Comparator Output: Off
    ACSR=0x80;
    SFIOR=0x00;
    // LCD module initialization
    lcd_init(16);
    // Global enable interrupts
    #asm("sei")
    lcd_putsf("Tiar menunggu...");
    while (1){};}

//end program

Lengkap simulasi download aja di  http://www.4shared.com/rar/DbpDHG5_ce/interrups.html?


         Perbedaan dari Timer 8 bit dengan 16 bit?
  • Timer 8 bit yakni pada Timer0 dan Timer2, sesuai dengan namanya timer 8 bit yakni timer yang dapat mencacah dari 0 - 255 atau 0x00 - 0xFF.
  • Timer 16 bit yakni pada Timer1, sesuai dengan namanya timer 16 bit yakni timer yang dapat mencacah dari 0 - 65535 atau 0x0000 - 0xFFFF.
          Jika kita ingin menggunakan prescaller 256 maka nilai TCCR1B = 0x04. 
  • Sedangkan TCNT1H dan TCNT1L adalah besarnya nilai timer yang akan kita gunakan. Untuk perhitungan pada Timer 1 yakni 
TCNT = (1+0xFFFF) - (waktu *( XTAL / prescaler) )
waktu      = waktu yg kita inginkan
XTAL     = frekuensi xtal yg dipakai
prescaler = nilai prescaler

Perhatikan pada nilai TCNT1A dan TCNT1B serta TCCR0B.
karena kita akan membuat timer 1 bekerja pada 1 detik dengan XTAL 12MHz  maka perhitungannya
TCNT = (1+0xFFFF) - (1 *( 12000000 /256) )
Jika kita hitung maka nilai TCNT = 0x48E5, sehingga TCNT1H = 0x48 dan TCNT1L = 0xE5dan karena menggunakan prescaller 256 maka nilai TCCR1B = 0x04.



Minggu, 08 Juni 2014

Rancangan Layout PCB Dengan DIPTRACE

Mau belajar rancangan layout PCB dengan DIPTRACE? tunggu aja nati saya paparkan.

Software Diptrace V1.5 include Crack download di sini tidak saya password rar-nya:



Layout PCB Untuk Atmega8535


Layout Driver Sensor Arus ACS712



Mau belajar juga teknik penyablonan PCB?