So das hier ist dann das fertige Werk:
Code:
$regfile = "m32def.dat"
$crystal = 16000000
Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Lcd = 20 * 4a , Chipset = Ks077
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcdbus = 4
Start Adc
Declare Sub _spannungsmessung()
Declare Sub _strommessung()
Declare Sub _spannungsanzeige()
Declare Sub _stromanzeige()
Declare Sub _widerstandsmessung()
Declare Sub _widerstandsanzeige()
Const Ref = 5 / 1023
Dim F As Integer
Dim Volt As Single
Dim Strom As Single
Dim Ohm As Single
Dim Spannung As Single
Dim Voltstr As String * 4
Dim Ampere As Single
Dim Stromstr As String * 4
Dim Widerstand As Single
Dim Ohmstr As String * 4
Initlcd
Cls
Main:
Do
Call _spannungsmessung
Call _spannungsanzeige
Call _strommessung
Call _stromanzeige
Call _widerstandsmessung
Call _widerstandsanzeige
Wait 1
Loop
End
Sub _spannungsmessung
Local V As Word
V = Getadc(0.)
Spannung = V * Ref
Volt = Spannung
Voltstr = Fusing(volt , "#.##")
End Sub
Sub _strommessung
Local A As Word
A = Getadc(1.)
Strom = A * Ref
Strom = Strom / 1 'Shunt = 1 Ohm
Ampere = Strom
Stromstr = Fusing(strom , "#.##")
End Sub
Sub _widerstandsmessung
Local O As Word
Local P As Word
O = Getadc(2.) 'U1
P = Getadc(3.) 'Ux
F = 100 'R1 = 100 Ohm
Widerstand = F * P
Widerstand = Widerstand / O
Ohm = Widerstand
Ohmstr = Fusing(ohm , "#.##")
End Sub
Sub _spannungsanzeige()
Upperline
Lcd "U = " ; Voltstr
Waitms 1000
End Sub
Sub _stromanzeige()
Lowerline
Lcd "I = " ; Stromstr
Waitms 1000
End Sub
Sub _widerstandsanzeige()
Thirdline
Lcd "R = " ; Ohmstr
Waitms 1000
End Sub
Werde Donnerstag auf der Arbeit erstmal die Schaltung Hardwareseitig aufbauen und hoffentlich klappts dann so wie ichs mir vorgestellt habe =)
Lesezeichen