AVT5333 Panelméter
AVT5333 Panelméter
Sziasztok!
Megépítettem ezt a kis műszert, de sajnos a programozásban nagyon nulla vagyok! Beégettem a hexet de csak 25.67 V-ig mér a műszer! A hőmérsékletet nem mutatja! http://serwis.avt.pl/manuals/AVT5333.pdf
Amit tudok, hogy Bascom-ba van írva a program, nagyon megköszönném ha valaki tudna segíteni!!!
Köszönöm!
Megépítettem ezt a kis műszert, de sajnos a programozásban nagyon nulla vagyok! Beégettem a hexet de csak 25.67 V-ig mér a műszer! A hőmérsékletet nem mutatja! http://serwis.avt.pl/manuals/AVT5333.pdf
Amit tudok, hogy Bascom-ba van írva a program, nagyon megköszönném ha valaki tudna segíteni!!!
Köszönöm!
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Re: AVT5333 Panelméter
Két kép a szerkezetről!
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Re: AVT5333 Panelméter
DS18B20-as szenzorral próbáltam de nem mutat semmit!
Re: AVT5333 Panelméter
Ezen ne csodálkoz!
Mert a linkelt multimetr.bas-ban 1 sor sincsen ami a DS18B20-as szenzorral foglalkozna!
Ha a linkelt multimetr.hex -et töltöttedbe?
Mert a linkelt multimetr.bas-ban 1 sor sincsen ami a DS18B20-as szenzorral foglalkozna!
Kód: Egész kijelölése
''----------------------------------------------------------------------------'' ''
'' ''
'' Multimetr ©2012 Piotr Rosenbaum ''
'' mail: piotr.rosenbaum@gmail.com ''
'' ''
'' ''
''----------------------------------------------------------------------------'' ''
''----------------------------------------------------------------------------''
$regfile = "M8def.dat"
$crystal = 1000000
Config Adc = Single , Prescaler = Auto , Reference = Internal 'konfiguracja wewnętrznego przetwornika ADC
Start Adc 'uruchomienie przetwornika ADC
'--------------------DEKLARACJA ZMIENNYCH--------------------------------------'
Dim Wart_ac As Word
Dim V As Single , I As Single , Vv As Single , Ia As Single
Dim Wart_pr As String * 3 , Wart_nap As Word
Dim Wart_str As String * 3 , W As Single
Dim Wart_wat As String * 3
'------------------------KONFIGURACJA LCD--------------------------------------'
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Cls
Cursor Off
Lcd ; Spc(3) ; "Multimetr"
Lowerline
Lcd ; Spc(3) ; "by Peter507" 'wyświetlanie ekranu początkowego
Wait 1
Cls
'------------------------POCZĄTEK PĘTLI GŁÓWNEJ--------------------------------'
Do
Wart_ac = Getadc(0) 'pobranie wartości mierzonego napięcia
Wart_nap = Getadc(1) 'pobranie wartości mierzonego napięcia do obliczenia prądu
V = Wart_nap * 0.0025 'unormowaanie zmierzonego napięcia i napięcia do pomiaru prądu
Vv = Wart_ac * 0.025
I = V / 0.1 'dzielenie zmierzonego spadku napięcia na rezystorze (prawo Ohma)
W = I * Vv
Wart_str = Fusing(vv , "#.&&")
Wart_pr = Fusing(i , "#.&&&") 'zaokrląglanie do dwóch miejsc po przecinku wartości wyświetlanych na LCD
Wart_wat = Fusing(w , "#.&&")
Home Upper
Lcd "U" ; Wart_str ; "V" ; Spc(1) ; "I" ; Wart_pr ; "A" ; Spc(1)
Lowerline
Lcd "P" ; Wart_wat ; "W" ; Spc(9) 'wyświetlanie pomierzonych wartości
Wait 1
Loop
End
'----------------------------KONIEC PĘTLI GŁÓWNEJ------------------------------'
Re: AVT5333 Panelméter
Az MCS oldalán van 1 példa: http://www.mcselec.com/index.php?option ... &Itemid=57
Dual Thermometer with the DS18b20
Ezt kellene hozzáfüznöd az eredeti programodhoz.
Il. hozzá igazítani a HW-hoz.
És újrafordítani az egészet.
Dual Thermometer with the DS18b20
Ezt kellene hozzáfüznöd az eredeti programodhoz.
Il. hozzá igazítani a HW-hoz.
És újrafordítani az egészet.
Re: AVT5333 Panelméter
Lásd milyen rendes vagyok!
Össze fésültem neked a 2 programot:
Természetesen csak 1 hömérőre.
Eredetileg valami min/max értéket írki? Ezzel nem foglalkoztam!
A demo Bascommal még lefordítható 4KB alatti bin álományt kapsz.
Amit feltölthetsz a M8-ba!
Össze fésültem neked a 2 programot:
Kód: Egész kijelölése
''----------------------------------------------------------------------------'' ''
'' ''
'' Multimetr ©2012 Piotr Rosenbaum ''
'' mail: piotr.rosenbaum@gmail.com ''
'' ''
'' ''
''----------------------------------------------------------------------------'' ''
''----------------------------------------------------------------------------''
$regfile = "M8def.dat"
$crystal = 1000000 ' <<<<<<<Ide irjad a kvarcod értékét!!!!!
Config Adc = Single , Prescaler = Auto , Reference = Internal 'konfiguracja wewnętrznego przetwornika ADC
Start Adc 'uruchomienie przetwornika ADC
'--------------------DEKLARACJA ZMIENNYCH--------------------------------------'
Dim Wart_ac As Word
Dim V As Single , I As Single , Vv As Single , Ia As Single
Dim Wart_pr As String * 3 , Wart_nap As Word
Dim Wart_str As String * 3 , W As Single
Dim Wart_wat As String * 3
'------------------------KONFIGURACJA DALLAS DS18B20--------------------------------------'
Declare Sub Init
Declare Sub ConvAllT ' Convert T on ALL sensors
Declare Function Decigrades(BYVAL sc(9) as byte) as integer
' Itt a te DS18B20 PORT?.? bekötésed szerepeljen!!!!!!!!!!!!!!!!!!!!!
Config 1wire = Portb.6 '0,1,2 NOP 3,4,5,6,7 works good ON MY Equipment
'------------------------KONFIGURACJA LCD--------------------------------------'
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
'Temp variables
Dim B As Byte
Dim Wo As Word
'Program variables
'Implicit Err created by compiler
Dim Dg As Integer 'DECIgrades, I call it, cause I have no space for commas on the display....
Dim Min1 As Integer
Dim Min2 As Integer
Dim Max1 As Integer
Dim Max2 As Integer
Dim Dsid1(8) As Byte 'Dallas ID 64 bits incl CRC
Dim DsId2(8) As Byte
'When used like this : DsId(1) = 1wread(8)
'DsId(1) = family code 'Ds1820 10h, DS18B20 28h, Ds18s20 10h
'DsId(2) '48 Bits Serial, LSB
'DsId(3)
'DsId(4)
'DsId(5)
'DsId(6)
'DsId(7) '48 Bits Serial, MSB
'DsId(8) '8 CRC
Dim Sc(9) as byte 'Scratchpad 0-8 72 bits incl CRC, explanations for DS18b20
'Sc(1) 'Temperature LSB
'Sc(2) 'Temperature MSB
'Sc(3) 'TH/user byte 1 also SRAM
'Sc(4) 'TL/user byte 2 also SRAM
'Sc(5) 'config also SRAM x R1 R0 1 1 1 1 1 - the r1 r0 are config for resolution - write FF to byte for 12 bit - others dont care
'Sc(6) 'res
'Sc(7) 'res
'Sc(8) 'res
'Sc(9) '8 CRC
'DALLAS DS18B20 ROM and scratchpad commands''''''''''''''''''''''''''1wwrite....
'&H 33 read rom - single sensor
'&H 55 match rom, followed by 64 bits
'&H CC skip rom
'&H EC alarm search - ongoining alarm >TH <TL
'&H BE read scratchpad
'&H 44 convert T
'------------------------KONFIGURACJA LCD--------------------------------------'
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Cls
Cursor Off
Lcd ; Spc(3) ; "Multimetr"
Lowerline
Lcd ; Spc(3) ; "by Peter507" 'wyświetlanie ekranu początkowego
Wait 2
Cls
' Init DS18B20
lcd "This is a DS18B20 thermometer"
locate 2,1
lcd " by gote@sys-op.com"
wait 1
for b = 1 to 20
shiftlcd left
waitms 500
next
wait 2
cls
Wo = 1wirecount()
' Getting the two sensors IDs.
DsId1(1) = 1wsearchfirst()
' If displayed, everything went well.
' First sensor identified and stored in variable
if dsid1(8) = crc8(DsId1(1), 7) then ' Control that the received CRC match the calculated
locate 1,1
lcd "CRC OK Sensor 1 ID"
wait 1
locate 1,1
for B=1 to 8
lcd Hex(DsId1(b))
next
end if
wait 1
cls
Init
'------------------------POCZĄTEK PĘTLI GŁÓWNEJ--------------------------------'
Do
Wart_ac = Getadc(0) 'pobranie wartości mierzonego napięcia
Wart_nap = Getadc(1) 'pobranie wartości mierzonego napięcia do obliczenia prądu
V = Wart_nap * 0.0025 'unormowaanie zmierzonego napięcia i napięcia do pomiaru prądu
Vv = Wart_ac * 0.025
I = V / 0.1 'dzielenie zmierzonego spadku napięcia na rezystorze (prawo Ohma)
W = I * Vv
Wart_str = Fusing(vv , "#.&&")
Wart_pr = Fusing(i , "#.&&&") 'zaokrląglanie do dwóch miejsc po przecinku wartości wyświetlanych na LCD
Wart_wat = Fusing(w , "#.&&")
Home Upper
Lcd "U" ; Wart_str ; "V" ; Spc(1) ; "I" ; Wart_pr ; "A" ; Spc(1)
Lowerline
Lcd "P" ; Wart_wat ; "W" ; Spc(9) 'wyświetlanie pomierzonych wartości
' Read DS18B20, write LCD
ConvAllT ' "Convert ALL T on the 1w-bus"
Waitms 20 'if you use 2-wire, could be reduced to 200ms
1wverify DsId1(1) 'Issues the "Match ROM "
locate 2,12 ' move curzor X,Y ?????????
if err = 1 then
lcd "Err " 'Err = 1 if something is wrong
elseif err = 0 then 'lcd " Sensor found"
1wwrite &HBE
Sc(1) = 1wread(9) 'read bytes into array
if sc(9) = crc8(sc(1),8) then
DG = DeciGrades(sc(9))
if min1 > dg then min1 = dg
if max1 < dg then max1 = dg
lcd dg : locate 2,7 : lcd min1 : locate 2,14 : lcd max1
end if
end if
Wait 1
Loop
End
'----------------------------KONIEC PĘTLI GŁÓWNEJ------------------------------'
'Sets variables and LCD for further use'''''''''''''''''''''''''''''''''''''''''
Sub Init
Cls
Lcd " Min Max"
locate 2,1
Lcd " Min Max"
Min1 = 999 ' to get a real value from start
Min2 = 999
end sub
'Makes the Dallas "Convert T" command on the 1w-bus configured in "Config 1wire = Portb. "
'WAIT 200-750 ms after issued, internal conversion time for the sensor''''''''''
'SKIPS ROM - so it makes the conversion on ALL sensors on the bus simultaniously
'When leaving this sub, NO sensor is selected, but ALL sensors has the actual
'temperature in their scratchpad ( within 750 ms )
Sub ConvAllT
1wreset ' reset the bus
1wwrite &HCC ' skip rom
1wwrite &H44 ' Convert T
End sub
'Makes a integer value of the first two bytes in scratchpad'''''''''''''
'Works on DS18 B 20 , observe "B". The R0 and R1 in Sc(5) tells you how many bits are accurate
function Decigrades(Byval Sc(9) as byte)
Decigrades = 0
Decigrades = Makeint(Sc(1) , Sc(2))
Decigrades = Decigrades * 10
Decigrades = Decigrades / 16
end function
' If you have DS1820 or DS18 S 20 , you can use this algo instead:
' Observe that DsId1(1) contains the info value of which sensor is used.
'(
Function Decigrades(byval Sc(9) As Byte)
Dim Tmp As Byte , T As Integer , T1 As Integer
Tmp = Sc(1) And 1 ' 0.1C precision
If Tmp = 1 Then Decr Sc(1)
T = Makeint(sc(1) , Sc(2))
'Print Hex(t)
'Print T
T = T * 50 'here we calculate the 1/10 precision like
T = T - 25 'DS18S20 data sheet
T1 = Sc(8) - Sc(7)
T1 = T1 * 100
T1 = T1 / Sc(8)
T = T + T1
Decigrades = T / 10
'As integer, this routine gives T*10, with 1/10 degree precision
End Function
')
Eredetileg valami min/max értéket írki? Ezzel nem foglalkoztam!
A demo Bascommal még lefordítható 4KB alatti bin álományt kapsz.
Amit feltölthetsz a M8-ba!
Re: AVT5333 Panelméter
Szia!
nagyon szépen köszönöm, szerinted DS18B20-al működik mert csak az van itthon egy pár darab?
Ha nagyon szépen megkérnélek akkor lefordítanád nekem, mert ehhez nem értek!
Nagyon szépen köszönöm a kedvességedet előre is!
nagyon szépen köszönöm, szerinted DS18B20-al működik mert csak az van itthon egy pár darab?
Ha nagyon szépen megkérnélek akkor lefordítanád nekem, mert ehhez nem értek!
Nagyon szépen köszönöm a kedvességedet előre is!
Re: AVT5333 Panelméter
Figyelj ez nem fog menni!
Vagy hajlandó vagy tanulni? Vagy veszel készen multimétert!
Mert a programot csak a meglevő HW-ben tudod tesztelni, és a felmerülő hibát ki is kel tudni javítani!
Aztán újra tesztelni.....!
Vagy hajlandó vagy tanulni? Vagy veszel készen multimétert!
Mert a programot csak a meglevő HW-ben tudod tesztelni, és a felmerülő hibát ki is kel tudni javítani!
Aztán újra tesztelni.....!
Re: AVT5333 Panelméter
Hát! Köszönöm szépen! letöltöttem a Bascom demót de hibát ír ki fordításkor, sajna ez nem fog nekem menni!
Re: AVT5333 Panelméter
Őszintén a fene sem érti mi a baja?!
Csatoltam a hex forditást. Ide fordítottam DALLAS DS18B20: Config 1wire = Portb.5
Csatoltam a hex forditást. Ide fordítottam DALLAS DS18B20: Config 1wire = Portb.5
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Re: AVT5333 Panelméter
Ez nem túl informatív:
Verzió? Hibaüzenet?letöltöttem a Bascom demót de hibát ír ki fordításkor,
http://www.tavir.hu - a gazda
Re: AVT5333 Panelméter
Ezt ajánlottam neki:
BASCOM-AVR Demo hot!
http://www.mcselec.com/index.php?option ... &Itemid=54
Ez BC2.0.7.5-ös.
És ami hibát ír a fenti programra:
Nem értem mi a baja az LCD-vel?
A BasCom2.0.7.7-es csont nélkül elfogadja a fenti programot!
BASCOM-AVR Demo hot!
http://www.mcselec.com/index.php?option ... &Itemid=54
Ez BC2.0.7.5-ös.
És ami hibát ír a fenti programra:
Kód: Egész kijelölése
Error : 13 Line : 84 CONST already specified [_LCDDB4] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDB4_PIN] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDB4DIR] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDB5] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDB5_PIN] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDB5DIR] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDB6] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDB6_PIN] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDB6DIR] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDB7] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDB7_PIN] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDB7DIR] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDBE] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDBE_PIN] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDBEDIR] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDBRS] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDBRS_PIN] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
Error : 13 Line : 84 CONST already specified [_LCDDBRSDIR] , in File : M:\BASCOM-AVR\Sample\Program mikrokontrolera\Multimetr.bas
A BasCom2.0.7.7-es csont nélkül elfogadja a fenti programot!
Re: AVT5333 Panelméter
Szia!
Nagyon nagyon köszönöm! De van valami probléma vele mert így jeleníti mega portB5-ös lábra kötveT /Az eredeti cikk alapján a pőrtc3-as lábra van kötve. Felrakok két képet az egyik ha nincs benne a DS18B20/Err/, a másik ha benne van/a második számsor változik, nő ha megfogom a DS18B20 szenzort 26850 gondolom 26.850 celsius fok lenne/ A harnadik ahogy kéne neki mutatnia. https://www.youtube.com/watch?v=hIfefmIYcso
Sajna már én ötven felé nem igen fogom elsajátítani a programozás rejtelmeit, a szakmám is távol áll az elektronikától, csak egy lelkes amatőr vagyok!! 30 éve lassan!!
Köszönöm szépen ha meg tudod oldani a problémát!!!
Nagyon nagyon köszönöm! De van valami probléma vele mert így jeleníti mega portB5-ös lábra kötveT /Az eredeti cikk alapján a pőrtc3-as lábra van kötve. Felrakok két képet az egyik ha nincs benne a DS18B20/Err/, a másik ha benne van/a második számsor változik, nő ha megfogom a DS18B20 szenzort 26850 gondolom 26.850 celsius fok lenne/ A harnadik ahogy kéne neki mutatnia. https://www.youtube.com/watch?v=hIfefmIYcso
Sajna már én ötven felé nem igen fogom elsajátítani a programozás rejtelmeit, a szakmám is távol áll az elektronikától, csak egy lelkes amatőr vagyok!! 30 éve lassan!!
Köszönöm szépen ha meg tudod oldani a problémát!!!
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Re: AVT5333 Panelméter
Az első számsor a min érték! Az nem szükséges, hogy kijelezze. Jól méri a hőfokot!
Re: AVT5333 Panelméter
A második számsorban csak az elő két számjegy változik, a 850 mindig marad annyi!