Étape 3: L’algorithme fonctionne
La tâche était la suivante.
En traversant le faisceau infrarouge au bas de l’escalier - les LEDs en douceur se sur le haut.
Lorsque traversant l’infrarouge du faisceau en haut de l’escalier - les voyants lumineux sur vers le bas en douceur.
Dans le cas où les deux faisceaux se croisent à la même heure - tous les voyants s’allument sur douceur
Après un certain temps, préréglé à l’aide de l’écran et le clavier, les diodes s’allument vers le bas sans à-coup dans le même sens, dans lequel il a été allumé.
Tous les retards sont définies et contrôlées par l’écran.
Plusieurs effets d’iluminating peuvent être trouver dans le menu.
Et le choix des sorties (1 à 16)
Le programme a été écrit en CodeVisionAVR.
Je ne vais pas poster la totalité du code, mais voici quelques points principaux :
masque d’unsigned char ;
void processUp() {}
{if(datUp==0)}
delay_ms(50) ;
pour (masque = 0 x 01, masque, masque << = 1)
{
PORTC | = masque ;
wait1() ; /
}
Delay
wait1() ; délai avant éclairage vers le bas
maintenant les lumières (dans la même direction)
pour (masque = 0 x 01, masque, masque << = 1)
pour le sens inverse :
pour (masque = 0 x 80, masque, masque >> = 1)
{
PORTC & = ~ masque ;
wait1() ;
}
}
}