Dim T As Double
Dim espera, esperai, estado, tiempo As Double
Dim d0, d1, dato As Double
Dim pin1, pin2, pin3, pin4 As Integer
Dim V As Double
Private Sub Command1_Click()
End
End Sub
Private Sub sensar_Click()
estado = 1
espera = 0.4325 'Se usa esta espera para que la toma de datos no tome algunas señales de interferencia
esperai = espera / 5
Do While estado = 1
DoEvents
PortOut &H378, 0 'Se envia este dato para determinar la entrada que sera convertida por el ADC
tiempo = Timer ' En este caso peso
Do While Timer <>
DoEvents
Loop
PortOut &H378, 2 ' Este dato habilata el ALE del ADC
tiempo = Timer
Do While Timer <>
DoEvents
Loop
PortOut &H378, 0 'Este dato permite que el multiplexor muestre el dato en la palabra A
tiempo = Timer
Do While Timer <>
DoEvents
Loop
dato = PortIn(&H379) 'Lee los primeros 4 bits de la salida del ADC'
pin1 = dato And &H40
pin2 = dato And &H8
pin3 = dato And &H20
pin4 = dato And &H10 'Se hace el ajuste para dar el valor real a los bit dependiendo de su peso
d0 = (pin1 / 64) * 128 + (pin2 / 32) * 64 + (pin3 / 8) * 32 + (pin4 / 16) * 16
PortOut &H378, 6 'Habilita el multiplexor para leer la segunda palabra
tiempo = Timer
Do While Timer <>
DoEvents
Loop
dato = PortIn(&H379) 'Lee los siguientes 4 bits de la salida del ADC
pin1 = dato And &H40
pin2 = dato And &H20
pin3 = dato And &H10
pin4 = dato And &H8
d1 = (pin1 / 64) * 8 + (pin2 / 32) * 4 + (pin3 / 16) * 2 + (pin4 / 8) * 1
T = d1 + d0
vnivel.Text = T 'Presenta en pantalla el valor del nivel
nivel.Top = 7815 - (T * 30.6) 'varia la altura de la barra de nivel
nivel.Height = T * 30.6
'cambia la direccion del ADC para leer el dato analogo que esta en la entrada uno correspondiente al peso
PortOut &H378, 1 'Envia este dato para determinar la entrada que sera convertida por el ADC
tiempo = Timer ' En este caso temperatura
Do While Timer <>
DoEvents
Loop
PortOut &H378, 3 ' Este dato habilata el ALE del ADC
tiempo = Timer
Do While Timer <>
DoEvents
Loop
PortOut &H378, 1 'Este dato permite que el multiplexor muestre el dato en la palabra A
tiempo = Timer
Do While Timer <>
DoEvents
Loop
dato = PortIn(&H379) 'Lee los primeros 4 bits de la salida del ADC'
pin1 = dato And &H40
pin2 = dato And &H20
pin3 = dato And &H10
pin4 = dato And &H8 'Se hace el ajuste para dar el valor real a los bit dependiendo de su peso
d0 = (pin1 / 64) * 128 + (pin2 / 32) * 64 + (pin3 / 16) * 32 + (pin4 / 8) * 16
PortOut &H378, 7 'Habilita el multiplexor para leer la segunda palabra
tiempo = Timer
Do While Timer <>
DoEvents
Loop
dato = PortIn(&H379) 'Lee los siguientes 4 bits de la salida del ADC
pin1 = dato And &H40
pin2 = dato And &H20
pin3 = dato And &H10
pin4 = dato And &H8
d1 = (pin1 / 64) * 8 + (pin2 / 32) * 4 + (pin3 / 16) * 2 + (pin4 / 8) * 1
T = (d1 + d0) / 4.5
vpeso.Text = T 'Presenta en pantalla el valor de la temperatura
If T > 17 Then
Linet.X2 = 960
Linet.Y2 = 600
End If
If T > 18 Then
Linet.X2 = 1080
Linet.Y2 = 600
End If
If T > 19 Then
Linet.X2 = 1200
Linet.Y2 = 720
End If
If T > 20 Then
Linet.X2 = 1320
Linet.Y2 = 840
End If
If T > 21 Then
Linet.X2 = 1320
Linet.Y2 = 1080
End If
If T > 22 Then
Linet.X2 = 1320
Linet.Y2 = 1200
End If
If T > 23 Then
Linet.X2 = 1320
Linet.Y2 = 1320
End If
Loop
End Sub 'fin del programa
No hay comentarios:
Publicar un comentario