14 octobre 2021

Le module ‘Buzzer’ sert à produire un son de 2300 Hz à 85 dB d’intensité.
Il n’y a pas de librairie à installer.
Il suffit d’appliquer un signal digital positif (ON) sur la broche de raccordement du Buzzer.
#define BROCHE_DU_BUZZER 5
#define DELAI 1000
void setup()
{
pinMode(BROCHE_DU_BUZZER, OUTPUT);
}
void loop()
{
digitalWrite(BROCHE_DU_BUZZER, HIGH);
delay(DELAI);
digitalWrite(BROCHE_DU_BUZZER, LOW);
delay(DELAI);
}

Le module RGB LED Stick propose 10 DEL RGB adressable individuellement.
Il est possible de contrôler la couleur de chacun des DEL en mode RGB (255,255,255).
Il se connecte dans une GPIO en mode digitale (D2..D8).
La librairie à installer se nomme « Adafruit NeoPixel ».

Lien de référence de la librairie
👉 Dépendance sous PlatformIO
lib_deps = adafruit/Adafruit NeoPixel @ ^1.12.4
// Constructeur:
// Adafruit_NeoPixel (uint16_t n, int16_t pin=6, neoPixelType type=NEO_GRB+NEO_KHZ800)
#include <Adafruit_NeoPixel.h>
#define PIN 5 // GPIO de connexion du LED Strip
#define NUMPIXELS 10 // Nombre de pixels disponibles
// Définir un objet de type NeoPixel
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin(); // Initialiser le module
pixels.clear(); // Éteindre tous les pixels
pixels.setBrightness(50); // 0..255
pixels.setPixelColor(5, pixels.Color(200, 0, 0)); // Configurer le pixel no 5 en rouge 200/255
pixels.show(); // Actualiser, sur le module, le pixel modifié.
}
void loop() {}
#include <Adafruit_NeoPixel.h>
#define PIN 5 // GPIO de connexion de la barre de DEL
#define NUMPIXELS 10 // NB de DEL sur la barre
#define DELAYVAL 200 // Intervalle entre les DEL
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin();
} // setup
void loop() {
pixels.clear(); // Effacer tous les DEL.
pixels.show(); // Actualiser l'affichage
int r = random(256); // un nombre entre 0 et 255 pour le rouge
int g = random(256); // un nombre entre 0 et 255 pour le vert
int b = random(256); // un nombre entre 0 et 255 pour le bleu
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(r,g,b));
pixels.show(); // Actualiser l'affichage
delay(DELAYVAL);
} // for
} // loop

Modifier le projet précédent pour qu’une fois tous les pixels allumés, les pixels s’éteignent un à la suite de l’autre, de la gauche vers la droite.
Utiliser le même délai qu’à l’étape 2.3.2.
Indice:
pixels.Color(0,0,0) pour éteindre un pixel.

Écrire un programme qui allume un pixel rouge, suivi d’un pixel vert, suivi d’un pixel rouge et ainsi de suite.
Insérer un délai de 250 millisecondes entre chaque affichage.
Lorsque tous les pixels seront allumés, attendre 1 seconde puis recommencer.
Astuce

Écrire un programme qui fait varier le nombre de pixels bleus (80,106,148) et rouges (245, 22, 26) en fonction de la température du capteur SHT31.
Si la température est <= à 24c alors tous les pixels sont bleus.
À chaque tranche de 0,75c de plus, un pixel du haut passe au rouge.
Par exemple, pour 24C + 4*0,75, les 6 premiers pixels sont bleus et les 4 derniers sont rouges.
Note: Utiliser un doigt sur le capteur pour faire augmenter la température.
Document rédigé par Alain Boudreault © 2021-2026 Version 2026.03.04.01
Contenu par VE2CUY