Digitalt mäta band (6 / 8 steg)
Steg 6: Hur det fungerar?
IR-mottagare komponenten innehåller två IR-mottagare att sekvensen av deras ändring anger riktningen av rotation (00 10 11 01 00... och 00 01 11 10 00...).En av IR-mottagare är ansluten till A4 stift och den andra är ansluten till B0 pin. Varje gång staten på B0 pin ändras från 0 till 1 mikrokontroller ökar eller minskar "Fästingar" variabel beror på tillståndet för A4 pin, hög A4 anger framåt rotation och låg A4 anger bakåt rotation:
void interrupt(void)
{
om (INTCON. ITF)
{
om (Sensor1)
{
om (RButton)
{
om (OneMeterTicks == MaxOneMeterTicks) OneMeterTicks = 0;
OneMeterTicks ++;
}
annat
Fästingar ++;
}
annat
{
om (RButton)
{
OneMeterTicks--;
om (OneMeterTicks == 0) OneMeterTicks = MaxOneMeterTicks;
}
annat
Fästingar--;
}
om (abs(Ticks) > = OneMeterTicks * 10) fästingar = 0;
INTCON. ITF = 0;
}
}
Antalet fästingar av ändringen av B0 pin staten bestämmer avståndet reste efter skalning med faktor "OneMeterTicks". Värdet av "OneMeterTicks" kan ändras genom att vrida ratten medan du håller ned knappen "Återställ".
om (fästingar < 0)
n = - fästingar;
annat
n = fästingar;
n * = 100;
om (UButton == 1)
n = (unsigned long int)(OneMeterTicks * 2.54); tum
annat
n = (unsigned long int) OneMeterTicks; cm
Siffriga [2] = n / 100;
n = n % 100.
Siffriga [1] = n / 10;
Siffriga [0] = n % 10.
Jag använde "mikroC PRO för PIC" att skriva programmet.