Paso 6: ¿Cómo funciona?
El componente de receptor IR contiene dos receptores de IR que la secuencia de su cambio de estado indica la dirección de la rotación (00 10 11 01 00... y 00 01 11 10 00...).Uno de los receptores de IR conectado al pin A4 y la otra está conectada al pin B0. Cada vez que el estado de cambios de pin B0 de 0 a 1 el microcontrolador aumenta o disminuye las "garrapatas" variable dependen del estado del pin A4, A4 alta indica rotación hacia adelante, y A4 baja rotación posterior:
void interrupt(void)
{
Si (INTCON. INTF)
{
Si (imagen1)
{
Si (RButton)
{
Si (OneMeterTicks == MaxOneMeterTicks) OneMeterTicks = 0;
OneMeterTicks ++;
}
otra cosa
Las garrapatas ++;
}
otra cosa
{
Si (RButton)
{
OneMeterTicks--;
Si (OneMeterTicks == 0) OneMeterTicks = MaxOneMeterTicks;
}
otra cosa
Las garrapatas--;
}
Si (abs(Ticks) > = OneMeterTicks * 10) garrapatas = 0;
INTCON. INTF = 0;
}
}
El número de garrapatas por el cambio de estado de pin B0 determina la distancia recorrida después de escalar por factor "OneMeterTicks". El valor de "OneMeterTicks" puede cambiarse girando la rueda mientras mantiene presionado el botón de "RESET".
Si (garrapatas < 0)
n = - garrapatas;
otra cosa
n = garrapatas;
n * = 100;
Si (UButton == 1)
n = (unsigned int largo)(OneMeterTicks * 2.54); pulgadas
otra cosa
n = (unsigned int largo) OneMeterTicks; cm
Dígitos [2] = n / 100;
n = n % 100;
Dígito [1] = n / 10;
Dígito [0] = n % 10;
Usé "mikroC PRO para PIC" para escribir el programa.