7: Práctica de Módulos Contadores y Aplicaciones de Circuitos
El objeto IrDetector.spin de abajo desarrolla la detección de distancia justo como lo platicamos. EL
objeto padre tiene que llamar al método
del circuito LED IR y las salidas del Receptor IR. Cuando el método
cambio duty que platicamos y los números de pin que pasaron al método
de los objetos.
El método
del objeto IrDetector utiliza el objeto SquareWave para comenzar a transmitir la
distance
señal de 38kHz al ánodo del circuito LED IR usando el contador B. Luego configura el contador A
para modo DUTY de terminación sencilla e inicializa
inicial al cátodo del circuito LED IR. Después un ciclo
0/256 a 255/256. Con cada cambio se incrementa el voltaje al circuito LED IR en el cátodo haciendo
menos brilloso el LED IR y el Detector IR con menor alcance. Entre cada incremento
suma la salida del receptor IR al valor de regreso
cuando no ve el reflejo IR
objeto es más cercano este número será menor, cuando es más lejano el numero será mayor. Así
después del ciclo el valor de regreso del método
objeto.
Tenga en cuenta que esta medición de distancia puede variar con la superficie que refleja el IR.
Por ejemplo, si la distancia regresa 175, la distancia medida por una hoja Blanca de papel podrá ser cinco
veces la distancia de una hoja de vinil negro. La razón es que el papel blanco refleja el infrarrojo por lo que
será visible al receptor mucho más lejos. En contraste el vinil negro tiende a absorberlo y solo es vivible en
rangos muy cortos.
''IrDetector.spin
CON
scale = 16_777_216
OBJ
SquareWave : "SquareWave"
VAR
long anode, cathode, recPin, dMax, duty
PUB init(irLedAnode, irLedCathode, irReceiverPin)
anode := irLedAnode
cathode := irLedCathode
recPin := irReceiverPin
PUB distance : dist
{{
Realiza una prueba de respuesta en el Receptor/LED IR y regresa dist,
Un valor de zona de 0 (mas cercano) a 256 (objeto no detectado).
}}
'Inicia señal de 38 kHz.
SquareWave.Freq(1, anode, 38000)
dira[anode]~~
'Configura señal Duty.
ctra[30..26] := %00110
ctra[5..0] := cathode
frqa := phsa := 0
dira[cathode]~~
para decirle cuales pins se conectan al ánodo y cátodo
init
almacena el número de veces en 256 que no vio un objeto. Cuando el
dist
dist
Kit Educativo de Practicas Propeller: Fundamentos · Página 155
distance
init
y
a 0 lo cual resulta en una baja señal
frqa
phsa
cambia muy rápidamente
repeat
. Como la salida del receptor IR esta en alto
dist
contiene una representación de la distancia del
' 2³²÷ 256
' Importa objeto SquareWave
' SquareWave
' ctrb 38 kHz
' Activa ctra a modo DUTY
' Activa ctra's APIN
' Activa registro frqa
' Activa P5 a salida
se llama utiliza el
para medir la distancia
de
duty
, el ciclo
duty