Étape 4: Charlieplexing dans le logiciel - affichage d’une image
Ici, nous allons définir notre variable pour contenir les 20 valeurs (pixels) pour notre image LED. La valeur par défaut est indiqué ci-dessous (tous les 0). Cela s’afficherait comme une image sombre, avec tous les voyants éteints, mais nous pouvons changer cela dans le logiciel.
char led_grid [20] = {}
000, 000, 000, 000, 000,
000, 000, 000, 000, 000,
000, 000, 000, 000, 000,
000, 000, 000, 000, 000
};
J’accueillais trop cette variable au magasin plus que 1 et de 0, mais un plus grand nombre. Je veux faire mes LEDs variateur par moments. Alors j’ai décidé pour ce projet d’une valeur de 100 sera plein-éclat, et 0 sera éteint.
La fonction suivante va effectuer une boucle sur tous les 20 postes dans le led_grid et si la valeur de chaque pixel est au-dessus de zéro, la diode DEL s’allume. Puisque vous pouvez seulement allumer une LED à la fois, l’image doit être re-dessiné sans cesse et assez rapide pour que vous ne remarquez l’effet stroboscopique/scintillement avec vos yeux. En général ce ne sera pas un problème avec les vitesses, que vous pouvez exécuter sur un microcontrôleur.
void draw_frame(void) {}
char a conduit, bright_val, b ;
pour (a = 0; a conduit < = 19 ; led ++) {}
logiciel PWM
bright_val = led_grid [mené] ;
pour (b = 0; b < bright_val; b += 4) {light_led(led);} //delay alors que sur
pour (b = bright_val; b < 100; b += 4) {leds_off();} //delay tout en off
}
}