Affiche un dégradé de rouge (une transition progressive d'intensité) : LED 0 à 25%, LED 1 à 50%, LED 2 à 75%, LED 3 à 100%.
Indice : 100% d'intensité = 255, donc 25% = 64, 50% = 128, 75% = 192.
Solution :
#include <stdio.h>
#include <stdint.h>
/* Stub for playground simulation */
#define NUM_LEDS 4
struct led_rgb { uint8_t r; uint8_t g; uint8_t b; };
static struct led_rgb pixels[NUM_LEDS];
static void *strip = NULL;
static void led_strip_update_rgb(void *dev, struct led_rgb *px, int n)
{
(void)dev;
printf("LED strip update (%d LEDs):\n", n);
for (int i = 0; i < n; i++) {
printf(" LED %d: r=%u g=%u b=%u\n", i, px[i].r, px[i].g, px[i].b);
}
}
void afficher_degrade_rouge(void)
{
/* LED 0: 25%, LED 1: 50%, LED 2: 75%, LED 3: 100% */
for (int i = 0; i < NUM_LEDS; i++) {
pixels[i].r = 64 * (i + 1); /* 64, 128, 192, 255 */
pixels[i].g = 0;
pixels[i].b = 0;
}
led_strip_update_rgb(strip, pixels, NUM_LEDS);
}
int main(void)
{
afficher_degrade_rouge();
return 0;
}
Solution copiée dans l'éditeur.