با سلام.
من دارم رو یه مولتی متر (ولت متر و اهم متر)کار میکنم واسه پروژم ولی مشکلم اینه که دقیق نشون نمیده.اینم برنامم.مشکل چیه؟تغذیم 3.3 ولته و باید همین باشه چون ال سی دیم ان 96 هست.
واسه ولت متر با تقسیم ولتاژ ورودی رو 10 برابر کم میکنم.
باتشکر
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim Aa As Word , Vv As Single
Input_code1 = Files(10)
Show
Do
Start Adc
Aa = Getadc(6)
Stop Adc
' adc channel 6 is for voltmeter
Vv = Aa
Vv = Vv / 1024
Vv = Vv * 3.3
Vv = Vv * 10
' avcc= 5 volt
Zz = Str(vv)
Zz = Fusing(vv , "#.##"
Input_code = " "
X = 86
Y = 48
Clcd 50 , 50 , Black , Green
Waitms 10
Input_code = Zz
X = 86
Y = 48
Clcd 50 , 50 , Red , Green
Waitms 300
Loopاهم متر:
Dim Aaa As Word , Vvv As Single
Dim Rr As Single
Input_code1 = Files(11)
Show
Do
Start Adc
Aaa = Getadc(7)
Stop Adc
' adc channel 7 is for ohm meter
Vvv = Aaa
Vvv = Vvv / 1024
Vvv = Vvv * 3.3
' avcc= 5 volt
' now we calculate the resistant(R) by using adc voltage(V)
' V(adc)= R/R+R1 * avcc , R1=2.2 Kohm
' ==> R = R1 / [ (avcc/Vadc) - 1]
Rr = 3.3 / Vvv
' 5 = avcc & V = Vadc
Rr = Rr - 1
Rr = 1.49 / Rr
If Rr > 1500.0 Then
Input_code = " "
X = 110
Y = 58
Clcd 50 , 50 , Black , Green
Waitms 10
Input_code = "OUT OF RANGE!"
X = 110
Y = 58
Clcd8 50 , 50 , Black , Green
Else
' 2.2 = 2.2 Kohm = R1
Zz = Str(rr)
Zz = Fusing(rr , "#.###"
Input_code = " "
X = 110
Y = 58
Clcd 50 , 50 , Red , Green
Waitms 10
Input_code = Zz
X = 110
Y = 58
Clcd 50 , 50 , Red , Green
Waitms 300
End If
Loop
من دارم رو یه مولتی متر (ولت متر و اهم متر)کار میکنم واسه پروژم ولی مشکلم اینه که دقیق نشون نمیده.اینم برنامم.مشکل چیه؟تغذیم 3.3 ولته و باید همین باشه چون ال سی دیم ان 96 هست.
واسه ولت متر با تقسیم ولتاژ ورودی رو 10 برابر کم میکنم.
باتشکر
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim Aa As Word , Vv As Single
Input_code1 = Files(10)
Show
Do
Start Adc
Aa = Getadc(6)
Stop Adc
' adc channel 6 is for voltmeter
Vv = Aa
Vv = Vv / 1024
Vv = Vv * 3.3
Vv = Vv * 10
' avcc= 5 volt
Zz = Str(vv)
Zz = Fusing(vv , "#.##"

Input_code = " "
X = 86
Y = 48
Clcd 50 , 50 , Black , Green
Waitms 10
Input_code = Zz
X = 86
Y = 48
Clcd 50 , 50 , Red , Green
Waitms 300
Loop
Dim Aaa As Word , Vvv As Single
Dim Rr As Single
Input_code1 = Files(11)
Show
Do
Start Adc
Aaa = Getadc(7)
Stop Adc
' adc channel 7 is for ohm meter
Vvv = Aaa
Vvv = Vvv / 1024
Vvv = Vvv * 3.3
' avcc= 5 volt
' now we calculate the resistant(R) by using adc voltage(V)
' V(adc)= R/R+R1 * avcc , R1=2.2 Kohm
' ==> R = R1 / [ (avcc/Vadc) - 1]
Rr = 3.3 / Vvv
' 5 = avcc & V = Vadc
Rr = Rr - 1
Rr = 1.49 / Rr
If Rr > 1500.0 Then
Input_code = " "
X = 110
Y = 58
Clcd 50 , 50 , Black , Green
Waitms 10
Input_code = "OUT OF RANGE!"
X = 110
Y = 58
Clcd8 50 , 50 , Black , Green
Else
' 2.2 = 2.2 Kohm = R1
Zz = Str(rr)
Zz = Fusing(rr , "#.###"

Input_code = " "
X = 110
Y = 58
Clcd 50 , 50 , Red , Green
Waitms 10
Input_code = Zz
X = 110
Y = 58
Clcd 50 , 50 , Red , Green
Waitms 300
End If
Loop
دیدگاه