kako sam dosad koristio razne panele za mjerenje voltaže i struje u raznim projektima pronašao sam zgodne šeme istih ,koji se mogu primjeniti pri izradi ispravljača i drugih sklopova.
primjeri su sa PIC i AVR mikrokontrolerima trenutno sam u izradi sa PIC mikrokontrolerom i to u verziji sa 7 segmentnim lcd i 1x16 ili 2x16 LCDdisplejom
evo linkova i slika,svaka sugestija dobrodošla i svakako iskustvo ako je to netko već radio...
voltmetar PIC16F676 0 - 30 V http://electronics-diy.com/digital-volt ... 16f676.php
Dobra tema, bogami si se potrudio da to sve pronađeš, ja nisam imao toliko uspjeha.
Naime prije par sedmica sam pravio volt-ampermetar sa PIC16F876 (s LCD) sa neke turske stranice i otvorenim kodom i prilično sam zadovoljan.
Mislim to skompat s napajanjem od ATX-a da bih dobio solidno LAB-napajanje.
Ima toga još ali prije svega gledao sam da je cijeli sklop napravljen od jeftinijih komponenti i jednostavan za izradu,kao i da se koriste mikrokontroleri PIC i AVR serije.
PIC16F676 je dosta jeftin, a ima ADC 10 bitni ,probat ću uz pomoć ostalih da se naprave primjeri u PICBASIC ili BASCOM programima za te primjere,ako imaš dobro iskustvo sa tim VA metrom stavi ovdje link da drugi mogu to koristiti
Odlično....Ja bi pratio neki atmega; napon, struja projekt (nikako da to prebacim na digitaliju od svoje mature)
i još k tome kod mene jeftini (2,00kn) 7 segmentni displej
evo primjer u PICBASIC-u za volt metar sa 16F887, ali uz male prepravke može se upotrijebiti i za druge piceve
' Name : VMETERX.pbp
' Compiler : PICBASIC PRO Compiler 2.60
' Assembler : PM or MPASM
' Target PIC : 40-pin 16F887 or similar
' Hardware : LAB-X1 Experimenter Board
' Oscillator : 4MHz external
' Keywords : ADCIN, LCDOUT
' Description : PICBASIC PRO program to measure voltage (0-5VDC)
' and display on LCD with 2 decimal places.
' This program uses the */ operator to scale the ADC result from 0-1023
' to 0-500. The */ performs a divide by 256 automatically, allowing math
' which would normally exceed the limit of a word variable.
' Connect analog input to channel-0 (RA0)
' Define LCD registers and bits
Define LCD_DREG PORTD
Define LCD_DBIT 4
Define LCD_RSREG PORTE
Define LCD_RSBIT 0
Define LCD_EREG PORTE
Define LCD_EBIT 1
' Define ADCIN parameters ********************************
Define ADC_BITS 10 ' Set number of bits in result
Define ADC_SAMPLEUS 50 ' Set sampling time in uS
'Define ADC_CLOCK 3 ' This define is inoperative on 16F88x
ADCON0 = %11000000 ' Set ADC_CLOCK to RC (DEFINE ACD_CLOCK inoperative on the 16F88x)
ADCON1 = %10000000 ' Right-Justify result in ADRESH:ADRESL registers
ANSEL = %00000001 ' Set AN0-AN7 to digital with the exeption of AN0
ANSELH = %00000000 ' Set AN8 and higher channels to digital operation
'**********************************************************
adval Var Word ' Create adval to store result
TRISA = %11111111 ' Set PORTA to all input
Low PORTE.2 ' LCD R/W line low (W)
Pause 500 ' Wait .5 second
mainloop:
Adcin 0, adval ' Read channel 0 to adval (0-1023)
adval = (adval */ 500)>>2 ' Equates to: (adval * 500)/1024
Pause 100 ' Wait .1 second
LCDOut $FE, $80, "DC Volts= ",DEC (adval/100),".", DEC2 adval ' Display the decimal value
Goto mainloop ' Do it forever
Dim L (10) As Byte
L(1) = &B11111100
L(2) = &B10001001
L(3) = &B10011000
L(4) = &B10110100
L(5) = &B10010010
L(6) = &B10000010
L(7) = &B11111000
L(8) = &B10000000
L(9) = &B10010000
L(10) = &B11000000
Dim Le(10) As Byte
Le(1) = &B01111100
Le(2) = &B00001001
Le(3) = &B00011000
Le(4) = &B00110100
Le(5) = &B00010010
Le(6) = &B00000010
Le(7) = &B01111000
Le(8) = &B00000000
Le(9) = &B00010000
Le(10) = &B01000000
Dim Channel As Byte
Dim W As Long
Dim Ss As Byte
Dim Ad As Long
Dim S (4) As String * 1
Dim Sa As String * 5
Dim Sl (4) As Byte 'Show variables
Do
'------------------------------------ Battery voltage detection
W = 0
Ss = 1
Ad = 0
For Ss = 1 To 20
Start Adc
Channel = 5
W = Getadc (channel)
Stop Adc
Ad = Ad + W
Next Ss
Ad = Ad / 20
Ad = Ad * 2560
Ad = Ad / 1023
Ad = Ad * 10
If Ad <1000 Then
Sa = Str (ad)
Sa = Format (sa, "000")
S (1) = Mid (sa, 3, 1)
S (2) = Mid (sa, 2, 1)
S (3) = Mid (sa, 1, 1)
'S (4) = Mid (sa, 1, 1)
I = Val (s (1))
If I = 0 Then
Sl (1) = L (10)
Else
Sl (1) = L (i)
End If
I = Val (s (2))
If I = 0 Then
Sl (2) = L (10)
Else
Sl (2) = L (i)
End If
I = Val (s (3))
If I = 0 Then
Sl (3) = L (10)
Else
Sl (3) = L (i)
End If
Sl (4) = Le (10)
End If
If Ad> = 1000 And Ad <10000 Then
Sa = Str (ad)
Sa = Format (sa, "0000")
S (1) = Mid (sa, 4, 1)
S (2) = Mid (sa, 3, 1)
S (3) = Mid (sa, 2, 1)
S (4) = Mid (sa, 1, 1)
I = Val (s (1))
If I = 0 Then
Sl (1) = L (10)
Else
Sl (1) = L (i)
End If
I = Val (s (2))
If I = 0 Then
Sl (2) = L (10)
Else
Sl (2) = L (i)
End If
I = Val (s (3))
If I = 0 Then
Sl (3) = L (10)
Else
Sl (3) = L (i)
End If
I = Val (s (4))
If I = 0 Then
Sl (4) = Le (10)
Else
Sl (4) = Le (i)
End If
End If
If Ad> = 10000 And Ad <100000 Then
Sa = Str (ad)
Sa = Format (sa, "0000")
S (1) = Mid (sa, 4, 1)
S (2) = Mid (sa, 3, 1)
S (3) = Mid (sa, 2, 1)
S (4) = Mid (sa, 1, 1)
I = Val (s (1))
If I = 0 Then
Sl (1) = L (10)
Else
Sl (1) = L (i)
End If
I = Val (s (2))
If I = 0 Then
Sl (2) = L (10)
Else
Sl (2) = L (i)
End If
I = Val (s (3))
If I = 0 Then
Sl (3) = Le (10)
Else
Sl (3) = Le (i)
End If
I = Val (s (4))
If I = 0 Then
Sl (4) = L (10)
Else
Sl (4) = L (i)
End If
End If
bob4 wrote:Odlično....Ja bi pratio neki atmega; napon, struja projekt (nikako da to prebacim na digitaliju od svoje mature)
i još k tome kod mene jeftini (2,00kn) 7 segmentni displej
koji su to displeji veličina ,vrsta i boja (zajenička anoda ili katoda),dal ih imaš u više dimenzija ili samo jednoj nabaci koju sliku sa karakteristikama,pa da mi pošalješ određenu veću količinu(od tri komada ha ha šala mala)