–
Mise à jour le 06/04/2019 : Rubrique traitant du bouton-poussoir à led RGB programmable référence 111020049 de chez Seeedstudio. Ce module fait commuter la sortie lors d’une pression.
Sommaire :
- Description du Module interrupteur à led Grove 111020049
- Caractéristiques et spécificités du Module
- Exemple de programme
- Programme 1 constructeur.
- Programme 2 pour allumer la led dans le bouton (par RedOhm)
- Programme 3 pour allumer les led dans les boutons (par RedOhm)
- Tuto regroupant le programme 2 et 3.
- Retour au menu principal
Description du Module interrupteur à led Grove 111020049 |
Ce module se raccorde sur deux broches digitales d’un connecteur compatible Grove de la base Shield ou de la carte Mega Shield via un câble 4 conducteurs . La led est raccordée sur la broche S1 et le bouton-poussoir sur la broche S2.
Retour au sommaire
Caractéristiques et spécificités du Module interrupteur à led Grove 111020049 |
Caractéristiques:
- Interface : digitale compatible Grove
- Etat :
- bas au repos
- haut lors d’une pression
- Résistance :
- pressé: < 100 mΩ
- relâché: > 100 MΩ
- Durée de vie : 20 000 000 pressions
- Type de Led : RGB 255 couleurs
- Dimensions : 20 x 20 mm
- Température de service : 0 °C à +50 °C
- Compatible avec : les supports Wrapper 1 x 1
- Référence Seeedstudio : 111020049
- Librairie utilisé par RedOhm le 07/10/2018 : Adafruit_NeoPixel-master
- Librairie sur Github pour la led : Adafruit_NeoPixel-master
Retour au sommaire
1/ Exemple de programme : Programme constructeur |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
/** * * Programme constructeur * * Ce programme est un exemple de chez Grove * Chaque fois que vous appuyez sur la touche, la couleur * du voyant RGB SK6805 change. * Le SK6805 est une puce compatible NeoPixel. * * * Adafruit_NeoPixel * https://github.com/adafruit/Adafruit_NeoPixel/blob/master/COPYING * * Commenter par RedOhm * */ #include <Adafruit_NeoPixel.h> // Il n'y a pas de point-virgule après l'instruction #define. Si vous en incluez un, // le compilateur générera des erreurs critiques plus loin dans la page. // Le compilateur remplacera toute mention de BUTTON_PIN par la valeur 2 // au moment de la compilation. #define BUTTON_PIN 2 //Pin numérique IO connecté au NeoPixels. #define PIXEL_PIN 3 #define PIXEL_COUNT 60 // Parameter 1 = nombre de pixels dans la bande, le stick néopixel en a 8 // Parameter 2 = numéro d'identification personnelle (la plupart sont valides) // Parameter 3 = drapeaux de type pixel, additionnez-les si nécessaire // NEO_RGB Pixels are wired for RGB bitstream // NEO_GRB Pixels are wired for GRB bitstream, correct for neopixel stick // NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels) // NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); // Déclare une variable de type boolean (booléen ou binaire en anglais) // qui ne peut prendre que deux valeurs : true ou false, VRAI ou FAUX, bool oldState = LOW; uint8_t color_pos = 0; // Déclare une variable de type int (pour integer, entier en anglais). // Elles peuvent donc stocker des valeurs allant de - 32 768 à 32 767 int i=0; int longpress=2000; // Déclare une variable de type long non signé. // Elles peuvent donc stocker des valeurs allant de 0 à 4 294 967 295 long timecheck; // --------------------------------------------------------------------------- // Un programme Arduino doit impérativement contenir la fonction "setup" // Elle ne sera exécuter une seule fois au démarrage du microcontroleur // Elle sert à configurer globalement les entrées sorties // --------------------------------------------------------------------------- void setup() { // pinMode -> Configure la broche spécifiée pour qu'elle se comporte // soit en entrée, soit en sortie. // Dans notre cas en entrée // INPUT_PULLUP -> le microcontrôleur qui équipe l’Arduino dispose de résistances // pull up internes qui évitent l’utilisation de résistances externes. pinMode(BUTTON_PIN, INPUT_PULLUP); strip.begin(); strip.clear(); // Initialise tous les pixels sur "off" strip.show(); Serial.begin(9600); } // --------------------------------------------------------------------------- // Le programme principal s’exécute par une boucle infinie appelée Loop () // --------------------------------------------------------------------------- void loop() { // Obtenir l'état actuel du bouton. bool newState = digitalRead(BUTTON_PIN); // Vérifie si l'état est passé de bas à haut (appui sur un bouton). if (newState == HIGH && oldState == LOW) { timecheck = millis(); // Tempo pour le systeme anti-rebond delay(20); // Vérifie si le bouton est toujours a l'etat bas après le rebond. newState = digitalRead(BUTTON_PIN); if (newState == HIGH){ color_pos+=8; strip.setPixelColor(0, Wheel(color_pos)); strip.show(); } } if( millis()-timecheck > 300) { if (digitalRead(BUTTON_PIN)==HIGH) { if(millis()-timecheck > longpress) { while(digitalRead(BUTTON_PIN) == HIGH) { strip.setPixelColor(0,Wheel(color_pos)); strip.show(); delay(300); strip.setPixelColor(0,0,0,0); strip.show(); delay(300); bool newState = digitalRead(BUTTON_PIN); } strip.setPixelColor(0,0,0,0); strip.show(); timecheck = millis(); } } } // Définit le dernier état du bouton à l'ancien. oldState = newState; } // Entrez une valeur comprise entre 0 et 255 pour obtenir une couleur. // Les couleurs sont une transition r - g - b - retour à r. uint32_t Wheel(byte WheelPos) { WheelPos = 255 - WheelPos; if(WheelPos < 85) { return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3); } if(WheelPos < 170) { WheelPos -= 85; return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0); } |
.
Retour au sommaire
Exemple de programme
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
// // // Exemple de programme // pour allumer la led dans le bouton // Avec le bouton Grove 111020049 // // Par Mazelin herve // RedOhm // le 10/03/2019 // // on charge la librairie #include <Adafruit_NeoPixel.h> #define bouton 2 #define PIXEL_PIN 3 #define PIXEL_COUNT 60 // Parameter 1 = nombre de pixels dans la bande, le stick néopixel en a 8 // Parameter 2 = numéro d'identification personnelle (la plupart sont valides) // Parameter 3 = drapeaux de type pixel, additionnez-les si nécessaire // NEO_RGB Pixels are wired for RGB bitstream // NEO_GRB Pixels are wired for GRB bitstream, correct for neopixel stick // NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels) // NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); // Variable qui enregistre l'état du bouton int etatdubouton; // --------------------------------------------------------------------------- // Un programme Arduino doit impérativement contenir la fonction "setup" // Elle ne sera exécuter une seule fois au démarrage du microcontroleur // Elle sert à configurer globalement les entrées sorties // --------------------------------------------------------------------------- void setup() { // Initialisation du moniteur serie pour pouvoir debugger // le programme Serial.begin(9600); // initialise la bibliothèque NeoPixel strip.begin(); // Initialise tous les pixels sur "off" strip.clear(); // envoie la mise à jour au matériel de la couleur de la led. strip.show(); //le bouton est une entrée pinMode(bouton,INPUT); //on initialise l'état du bouton comme "relaché" etatdubouton=LOW; } // --------------------------------------------------------------------------- // Le programme principal s’exécute par une boucle infinie appelée Loop () // --------------------------------------------------------------------------- void loop() { // lecture de l'etat du bouton etatdubouton=digitalRead(bouton); //test si le bouton a un niveau logique HAUT if (etatdubouton == HIGH) { // cette ligne sert pour un eventuel débogage Serial.println("Etat du bouton = 1 "); // Paramétres ( 1,2,3,4) // 1-definit le numero de la led dans notre cas = 0 // 2-definit le pourcentage de couleur rouge 0 à 255 // 3-definit le pourcentage de couleur verte 0 à 255 // 4-definit le pourcentage de couleur bleue 0 à 255 strip.setPixelColor(0,0,0,255); // envoie la mise à jour au matériel de la couleur de la led. strip.show(); } else { // cette ligne sert pour un eventuel débogage Serial.println("Etat du bouton = 0 "); // Paramétres ( 1,2,3,4) // 1-definit le numero de la led dans notre cas = 0 // 2-definit le pourcentage de couleur rouge 0 à 255 // 3-definit le pourcentage de couleur verte 0 à 255 // 4-definit le pourcentage de couleur bleue 0 à 255 strip.setPixelColor(0,0,0,0); // envoie la mise à jour au matériel de la couleur de la led. strip.show(); } } |
.
Retour au sommaire
Programme pour allumer les LEDs dans les boutons (par RedOhm) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
// // // Exemple de programme // pour allumer les led dans les boutons // Avec le bouton Grove 111020049 // // Par Mazelin herve // RedOhm // le 16/03/2019 // // on charge la librairie #include <Adafruit_NeoPixel.h> #define bouton 2 //Pin numérique IO connecté au NeoPixels pour le bouton 1 #define PIXEL_PIN 3 //Pin numérique IO connecté au NeoPixels pour le bouton 2 #define PIXEL_PIN1 5 #define PIXEL_COUNT 60 // Parameter 1 = nombre de pixels dans la bande, le stick néopixel en a 8 // Parameter 2 = numéro d'identification personnelle (la plupart sont valides) // Parameter 3 = drapeaux de type pixel, additionnez-les si nécessaire // NEO_RGB Pixels are wired for RGB bitstream // NEO_GRB Pixels are wired for GRB bitstream, correct for neopixel stick // NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels) // NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick // Parametrage du 1 interrupteur à led Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); // Parametrage du 2 interrupteur à led Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN1, NEO_GRB + NEO_KHZ800); // Variable qui enregistre l'état du bouton int etatdubouton; // --------------------------------------------------------------------------- // Un programme Arduino doit impérativement contenir la fonction "setup" // Elle ne sera exécuter une seule fois au démarrage du microcontroleur // Elle sert à configurer globalement les entrées sorties // --------------------------------------------------------------------------- void setup() { // Initialisation du moniteur serie pour pouvoir debugger // le programme Serial.begin(9600); // initialise la bibliothèque NeoPixel strip.begin(); strip1.begin(); // Initialise tous les pixels sur "off" strip.clear(); strip1.clear(); // envoie la mise à jour au matériel de la couleur de la led. strip.show(); strip1.show(); //le bouton est une entrée pinMode(bouton,INPUT); //on initialise l'état du bouton comme "relaché" etatdubouton=LOW; } // --------------------------------------------------------------------------- // Le programme principal s’exécute par une boucle infinie appelée Loop () // --------------------------------------------------------------------------- void loop() { // lecture de l'etat du bouton etatdubouton=digitalRead(bouton); //test si le bouton a un niveau logique HAUT if (etatdubouton == HIGH) { // cette ligne sert pour un eventuel débogage Serial.println("Etat du bouton = 1 "); // Paramétres ( 1,2,3,4) // 1-definit le numero de la led dans notre cas = 0 // 2-definit le pourcentage de couleur rouge 0 à 255 // 3-definit le pourcentage de couleur verte 0 à 255 // 4-definit le pourcentage de couleur bleue 0 à 255 strip.setPixelColor(0,255,0,0); strip1.setPixelColor(0,0,255,0); // envoie la mise à jour au matériel de la couleur de la led. strip.show(); strip1.show(); } else { // cette ligne sert pour un eventuel débogage Serial.println("Etat du bouton = 0 "); // Paramétres ( 1,2,3,4) // 1-definit le numero de la led dans notre cas = 0 // 2-definit le pourcentage de couleur rouge 0 à 255 // 3-definit le pourcentage de couleur verte 0 à 255 // 4-definit le pourcentage de couleur bleue 0 à 255 strip.setPixelColor(0,0,0,0); strip1.setPixelColor(0,0,0,0); // envoie la mise à jour au matériel de la couleur de la led. strip.show(); strip1.show(); } } |
Tuto regroupant le programme 2 et 3 |
.
.
Retour au sommaire