Voltmeter Digital dengan BASCOM dan CVAVR

Yuk bikin aplikasi mikrokontroler yang enteng – entengan. Kita buat voltmeter saja, mengukur tegangan DC. Mikrokontrolernya juga kita pakai yang paling enteng dari keluarga ATmega, yaitu ATmega8. Tampilannya kita pakai 7 segmen. Sebagai tegangan input kita pakai potensiometer yang dirangkai menjai voltage devider.
99 proyek arduino

Voltmeter Digital dengan ATmega8

Programnya memakai 2 bahasa, tentu saja tidak secara bersamaan. Pertama biarkan BASCOM-AVR dulu :

$regfile = “m8def.dat”
$crystal = 16000000
Portd = &HFF
Ddrd = &HFF
Portb = &HFF
Ddrb = &HFF
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim W As Word , V As Word , V_rib As Word , V_rat As Byte , V_pul As Byte , V_sat As Byte
Dim I As Word , J As Word , K As Word , L As Byte
Start Adc
Do
   W = Getadc(0)
   V = W * 5
   V_rib = V / 1000
   I = V Mod 1000
   V_rat = I / 100
   J = I Mod 100
   V_pul = J / 10
   V_sat = J Mod 10
  For L = 0 To 100
      Gosub _disp
  Next
Loop
End

_disp:
   Portb = &B1110
   Portd = Lookup(v_rib , Angka)
   Waitms 2
   Portb = &B1101
   Portd = Lookup(v_rat , Angka)
   Waitms 2
   Portb = &B1011
   Portd = Lookup(v_pul , Angka)
   Waitms 2
   Portb = &B0111
   Portd = Lookup(v_sat , Angka)
   Waitms 2
Return
Angka:
   Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90 , &HFF

Banner MM AVRBagi penggemar bahasa C, ini ada yang memakai CVAVR :

#include
#include

unsigned int W,V,V_rib, V_rat,V_pul ,V_sat;
unsigned int I ;
char angka[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
#define ADC_VREF_TYPE ((0<
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<
while ((ADCSRA & (1<
ADCSRA|=(1<
return ADCW;
}

void disp(){
   PORTB = 0B1110;
   PORTD = angka[V_rib];
   delay_ms(2);
   PORTB = 0B1101;
   PORTD = angka[V_rat];
   delay_ms(2);
   PORTB = 0B1011;
   PORTD = angka[V_pul];
   delay_ms(2);
   PORTB = 0B0111;
   PORTD = angka[V_sat];
   delay_ms(2);
}

void main(void)
{
DDRD=0xFF;
DDRB=0xFF;
ADMUX=ADC_VREF_TYPE;
ADCSRA=0B10000111;
while (1)
      {
       W=read_adc(0);
       V=W*5;
       V_rib=V/1000;
       V_rat=V%1000/100;
       V_pul=V%1000%100/10;
       V_sat=V%1000%100%10;  
       for(I=0;I<100;I++) disp();
      }
}

Penasaran dengan rangkaiannya ? Nih :

Schematic Voltmeter Digital

Postingan ini sekaligus memenuhi permintaan beberapa teman2 di facebook inkubatek ya, jadi bagi yang kemarin saya janjikan, sudah sah berarti ya hutang saya, hehe…

Aplikasi Mikrokontroler

This entry was posted in Mikrokontroler AVR and tagged , , . Bookmark the permalink.

4 Responses to Voltmeter Digital dengan BASCOM dan CVAVR

  1. ASSALAMUALAIKUM,,,mau bertanya nih,,itu potensio nya di connect ke pin ADC
    berapa yah mksih

  2. Seumpama aplikasi diatas ingin saya gunakan sebagai Voltmeter pada Adaptor bagaimana yah suhu?apakah saya harus memakai teg ADC sebesar 12 V sebagai batas maksimal Adaptor atau bagaimana,tentu nya ada perubahan untuk nilai pembacaan kan agar sesuai dengan real tegangan keluaran dari adaptor,,mohon solusi nya master 😀

    • admin says:

      Analog input mikrokontroler berupa tegangan 0 – 5 V, artinya maksimal 5 Volt. Untuk tegangan 12 V harus dibuat semacam conditioning supaya menjadi 0 – 5 V.

Leave a Reply