Bargraph rgb LED

Bonjour, j'ai besoin de vous.
pour un projet j'ai acheté une barre de 10 leds Avec un Arduino uno et un potentiomètre.
Je voudrai que lorsque le potentiomètre = 0 -> 0led éclairé plus je vais tourné mon potentiomètre plus je vais avoir de leds s'allumer avec un dégrader de couleur partant du vert/orange/rouge.
je n'arrive pas a trouver un code qui fonctionne.
Le vendeur ma fait acheter ceci:

Stick 10 LEDs RGB Grove
Module Grove Base Shield
Carte Arduino UNO
Module potentiomètre Grove

mes branchements bar led sur D2 potentiomètre sur A0

si quelqu'un pourrait m'accorder un peux de son temps je lui serai très reconnaissant

Une petite recherche sur internet donné des résultats, dont celui-ci

Ce n'est peut-être pas le même module de leds, mais c'est un début.

des code comme ceci j'en trouve a la pelle effectivement si on le branche en direct sur le arduino moi on ma vendu une carte "grove" et du coup les code change et je me perd

Avec ce code j'allume les leds voici ou j'en suit:

// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library

#include "Adafruit_NeoPixel.h"
#ifdef __AVR__
    #include <avr/power.h>
#endif

// Quelle broche de l'Arduino est connectée aux NeoPixels ?
#define PIN            2

// Combien de NeoPixels sont attachés à l'Arduino ?
#define NUMPIXELS      10

//Lorsque nous configurons la bibliothèque NeoPixel, nous lui indiquons combien de pixels et quelle broche utiliser pour envoyer des signaux.
// Notez que pour les anciennes bandes NeoPixel, vous devrez peut-être modifier le troisième paramètre - voir le strandtest
// exemple pour plus d'informations sur les valeurs possibles.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
    // Ceci est pour Trinket 5V 16MHz, vous pouvez supprimer ces trois lignes si vous n'utilisez pas de Trinket
    #if defined (__AVR_ATtiny85__)
    if (F_CPU == 16000000) {
        clock_prescale_set(clock_div_1);
    }
    #endif
    // End of trinket special code
    pixels.setBrightness(255);
    pixels.begin(); // Cela initialise la bibliothèque NeoPixel.
}

void loop() {

    // Pour un ensemble de NeoPixels, le premier NeoPixel est 0, le second est 1, jusqu'au nombre de pixels moins un.


        // pixels.Color prend les valeurs RVB, de 0,0,0 à 255,255,255
        pixels.setPixelColor(0, pixels.Color(0, 255, 0)); // Moderately bright green color.
        pixels.setPixelColor(1, pixels.Color(0, 255, 0)); // Moderately bright green color.
        pixels.setPixelColor(2, pixels.Color(0, 255, 0)); // Moderately bright green color.
        pixels.setPixelColor(3, pixels.Color(255, 165, 0)); // Moderately bright Orange color.
        pixels.setPixelColor(4, pixels.Color(255, 165, 0)); // Moderately bright Orange color.
        pixels.setPixelColor(5, pixels.Color(255, 165, 0)); // Moderately bright Orange color.
        pixels.setPixelColor(6, pixels.Color(255, 165, 0)); // Moderately bright Orange color.
        pixels.setPixelColor(7, pixels.Color(255, 0, 0)); // Moderately bright Red color.
        pixels.setPixelColor(8, pixels.Color(255, 0, 0)); // Moderately bright Red color.
        pixels.setPixelColor(9, pixels.Color(255, 0, 0)); // Moderately bright Red color.

        pixels.show(); // Cela envoie la couleur de pixel mise à jour au matériel.
    }

comment et ou je rajout le potentiomètre ?

Bonjour,

Tu lis la valeur du potentiomètre
Tu ramènes la valeur lue en une valeur entre 0 et 10
Tu allumes les leds jusqu'à cette valeur, tu éteins les autres.

Ça donne

// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library

#include "Adafruit_NeoPixel.h"
#ifdef __AVR__
#include <avr/power.h>
#endif

// Quelle broche de l'Arduino est connectée aux NeoPixels ?
#define PIN            2

// Combien de NeoPixels sont attachés à l'Arduino ?
#define NUMPIXELS      10

//Lorsque nous configurons la bibliothèque NeoPixel, nous lui indiquons combien de pixels et quelle broche utiliser pour envoyer des signaux.
// Notez que pour les anciennes bandes NeoPixel, vous devrez peut-être modifier le troisième paramètre - voir le strandtest
// exemple pour plus d'informations sur les valeurs possibles.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  // Ceci est pour Trinket 5V 16MHz, vous pouvez supprimer ces trois lignes si vous n'utilisez pas de Trinket
#if defined (__AVR_ATtiny85__)
  if (F_CPU == 16000000) {
    clock_prescale_set(clock_div_1);
  }
#endif
  // End of trinket special code
  pixels.setBrightness(255);
  pixels.begin(); // Cela initialise la bibliothèque NeoPixel.
}

void loop() {
  int val = analogRead(A0);
  uint8_t h = map(val, 0, 1023, 0, 10);
  display(h);
}

// affiche un barregraphe de hauteur n
void display(uint8_t n)
{
  for (uint8_t i = 0; i < NUMPIXELS; i++)
    pixels.setPixelColor(i, pixels.Color(0, 0, 0)); // éteint
  if (n > 0)
    pixels.setPixelColor(0, pixels.Color(0, 255, 0)); // Moderately bright green color.
  if (n > 1)
    pixels.setPixelColor(1, pixels.Color(0, 255, 0)); // Moderately bright green color.
  if (n > 2)
    pixels.setPixelColor(2, pixels.Color(0, 255, 0)); // Moderately bright green color.
  if (n > 3)
    pixels.setPixelColor(3, pixels.Color(255, 165, 0)); // Moderately bright Orange color.
  if (n > 4)
    pixels.setPixelColor(4, pixels.Color(255, 165, 0)); // Moderately bright Orange color.
  if (n > 5)
    pixels.setPixelColor(5, pixels.Color(255, 165, 0)); // Moderately bright Orange color.
  if (n > 6)
    pixels.setPixelColor(6, pixels.Color(255, 165, 0)); // Moderately bright Orange color.
  if (n > 7)
    pixels.setPixelColor(7, pixels.Color(255, 0, 0)); // Moderately bright Red color.
  if (n > 8)
    pixels.setPixelColor(8, pixels.Color(255, 0, 0)); // Moderately bright Red color.
  if (n > 9)
    pixels.setPixelColor(9, pixels.Color(255, 0, 0)); // Moderately bright Red color.

  pixels.show();
}

Je suis parti de ton code, mais il vaudrait mieux faire un tableau avec les couleurs afin d'utiliser une boucle pour afficher.

Merci beaucoup cela fais exactement ce que je veux.
par contre aillant aucune connaissance dans ce domaine je ne comprend rien a ce que j'ai fais a part du copier/coller

Quelques explications:

  int val = analogRead(A0);   // lecture de la valeur du potentiomètre
  uint8_t h = map(val, 0, 1023, 0, 10); // conversion valeur lue en nombre de leds [0..1023]->[0..10]
  display(h); // allumage des h premières leds

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.