Stap 3: De algoritme werkt
De taak was als volgt.
Bij overschrijding van de infraroodstraal onderaan de trap - licht de LEDs zacht op naar boven.
Wanneer overschrijding van de infrarood stralen boven aan de trap - de LED licht op neer soepel.
In het geval wanneer beide balken zijn gekruist op de dezelfde tijd - licht alle de LEDs op vlot
Na een bepaalde tijd, vooraf ingesteld met behulp van de display en het toetsenbord de LEDs licht omlaag soepel in dezelfde richting, waarin het is ingeschakeld.
Alle vertragingen zijn ingesteld en gecontroleerd door het display.
Verschillende effecten van de iluminating is te vinden in het menu.
En de keuze van uitgangen (1 tot en met 16)
Het programma is geschreven in CodeVisionAVR.
Ik zal niet de hele code post, maar hier zijn enkele hoofdpunten:
unsigned char mask;
ongeldig processUp() {}
if(datUp==0) {}
delay_ms(50);
voor (masker = 0x01; mask masker << = 1)
{
PORTC | = masker;
Wait1(); /
}
vertraging
Wait1(); vertraging voordat de verlichting naar beneden
nu de lichten uit (in dezelfde richting)
voor (masker = 0x01; mask masker << = 1)
voor de tegenovergestelde richting:
voor (masker = 0x80; mask masker >> = 1)
{
PORTC & = ~ maskeren;
Wait1();
}
}
}