10-LED-Bargraph B10BRYGB

10-LED-Bargraph B10BRYGB

Das LED-Anzeigemodul B10BRYGB wird als "10-LED-Bargraph"10-LED-Bargraph bezeichnet und ist letztendlich eine Reihe von verschiedenen farbigen LEDs in einem in Kunstharz gegossenen Gehäuse, welches z.B. als Batterieanzeige oder VU-Meter verwendet werden kann. Im obigen Bild werden vier verschiedene Farben angedeutet, ich habe aber die Erfahrung gemacht, dass viele erhältliche Module nur aus drei Farben (5× grün, 3× gelb, 2× rot) bestehen

Verwendete Bauteile

Aufbau und Schaltung

Auf meinen Modulen waren keine offensichtlichen Markierungen zu erkennen, welcher Pin welche Bedeutung hat, daher hilft das folgende Diagramm und ein Multimeter herauszufinden, wo Kathode bzw. Anode der jeweiligen Einzel-LEDs sind.

10-LED-Bargraph B10BRYGB
Abb.: Abmessungen und Anschlüsse des B10BRYGB 10-LED-Bargraphen

Der folgende Aufbau ist für die beiden Experimente passend, obwohl der Piezosensor im ersten Aufbau nicht verwendet wird. Grundsätzlich sind die Anschlüsse des B10BRYGB wie ganz reguläre LEDs zu behandeln, d.h. sie benötigen jeweils einen passenden Vorwiderstand (hier: 1kΩ). Je nach Modul kann sich zeigen, dass einige Farben (bei mir: grün) deutlich heller leuchten als andere, daher ist es ratsam, Vorwiderstände mit verschiedenen Werten zu verwenden, um ein einheitliches Leuchtbild zu schaffen.
(Mehr Details über den Sensor kann man im Beitrag "Piezosensor mit Arduino" erfahren)

Schaltplan

Sketch I: Einfaches Lauflicht

Um die Funktionalität der Einzel-LEDs des B10BRYGB zu testen, bietet sich ein einfaches Lauflicht an, welches jede LED nacheinander kurz aufleuchten lässt:

const byte ledPins[10] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

void setup()
{
    for (byte i = 0; i < sizeof(ledPins); i++) {
        pinMode(ledPins[i], OUTPUT);
    }
}

void loop()
{
    static byte idx = 0;
    if (idx > 0) {
        digitalWrite(ledPins[idx - 1], LOW);
    } else {
        digitalWrite(ledPins[sizeof(ledPins) - 1], LOW);
    }
    digitalWrite(ledPins[idx], HIGH);

    idx++;
    idx %= 10;

    delay(150);
}

Sketch II: VU-Meter/Druck-Sensor

Statt dem Piezo-Sensor, der auf Druck besser reagiert, als auf Geräusche bzw. Musik, kann man in diesem Versuch natürlich auch ein Mikrofonsensor TE-136 o.ä. verwenden. (Anschlüsse sind dann natürlich nicht gleich!)

#define PIEZO_PIN A0
const byte ledPins[10] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};

void setup()
{
  pinMode(PIEZO_PIN, INPUT);
  for (byte i = 0; i < sizeof(ledPins); i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop()
{
  static byte idx = 0;
  int analogValue = analogRead(PIEZO_PIN);

  for (byte i = 0; i < sizeof(ledPins); i++) {
    if (analogValue > 50 * i) {
      digitalWrite(ledPins[i], HIGH);
    } else {
      digitalWrite(ledPins[i], LOW);
    }
  }
}
Video: Demonstration des VU-Meter/Druck-Sensors mit dem B10BRYGB und einem Piezo-Element (580 kB).
zurück