Probleme mit MSGEQ7

Hallo Leute,
nun wende ich mich auch mal mit einem Problem an Euch: es geht um den Soundanalyzer MSGEQ7. Davon habe ich letztens 2 Stück geschenkt bekommen, und kam nun endlich dazu, diese zu testen. Leider haut es nicht auf Anhieb hin: einer gibt gar nix sinnvolles aus bzw. reagiert nicht auf das Audiosignal.
Der zweite verhält sich komisch, fast so als ob die Frequenzbänder vertauscht sind. Im Video kann man dies gut sehen (Frequenzgenerator startet bei 20Hz und läuft bis 20kHz durch, eigentlich müssten die LEDs auch der Reihe nach durchleuchten, aber seht selbst:

Klick

Aufgebaut habe ich es nach dem Schaltbild Seite 4 des Datenblattes. Lediglich den 200k Ohm Widerstand hatte ich nicht parat, habe stattdessen 180k (auch in der Anleitung hier verwendet) und 118k benutzt. Zudem misst der 33pF-Kondensator am Oszi 28pF. Andere Caps haben aber das Verhalten des Analyzers nicht verändert. Aufbau der Schaltung:

Breadboard.JPG

Meine Frage ist nun: kann es am Aufbau liegen, oder wurden defekte Analyzer verschifft? Was kann ich noch testen?

Testcode, der auf dem Uno läuft:

#include <FastLED.h>

#define NUM_LEDS 8                                                    //Anzahl der LEDs
#define DATA_PIN    8                                                 //Datenpin
#define CLK_PIN     9                                                 //Clock-Pin
#define LED_TYPE    APA102                                            //Art der LEDs
#define COLOR_ORDER BGR                                               //Farbordnungssystem
#define SPI_HZ      8                                                 //Frequenz der Datenuebertragung
CRGB leds[NUM_LEDS];                                                  //LED-Array-Objekt

#define msg7RESET 5
#define msg7Strobe 4
#define msg7DCout A5
 
void setup() {                
  FastLED.addLeds<LED_TYPE, DATA_PIN, CLK_PIN, COLOR_ORDER, SPI_HZ>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);   //Initialisierung der LEDs
  
  pinMode(msg7RESET, OUTPUT);
  pinMode(msg7Strobe, OUTPUT);
}
 
void loop() {
  digitalWrite(msg7RESET, HIGH);                                      // reset the MSGEQ7's counter
  delay(5);
  digitalWrite(msg7RESET, LOW);
  for (int x = 0; x < 7; x++){
   digitalWrite(msg7Strobe, LOW);                                     // output each DC value for each freq band
   delayMicroseconds(35);                                             // to allow the output to settle
   int spectrumRead = analogRead(msg7DCout);
   int PWMvalue = map(spectrumRead, 0, 1024, 0, 255);                 // scale analogRead's value to Write's 255 max
   if (PWMvalue < 50)
     PWMvalue = PWMvalue / 3;                                         // bit of a noise filter, so the LEDs turn off at low levels
   leds[x].setRGB(0,0,PWMvalue);
   digitalWrite(msg7Strobe, HIGH);
  }
  FastLED.show();
}

Füge in der For Schleife nach dem

"digitalWrite(msg7Strobe, HIGH)"

ebenfalls mal ein delayMicroseconds ein.

Wenn das nicht hilft versuche mal höher als 35µS eventuell hat er da Probleme mit zu schnellen Flankenwechsel.

Hast du die Teile aus China?

Ich habe mir mal 5 aus China bestellt und habe da ein ähnliches Phänomen feststellen müssen.

Nur die unteren Frequenzbänder bis 1kHz waren brauchbar, alles darüber war Nonsens. Hat nach Auswertung so ausgesehen als würde er da ebenfalls die Pegel aus den niedrigeren Frequenzbändern ausspucken.

Um fair zu bleiben: Ich hatte leider auch noch nicht wirklich die Zeit zu checken, woran das tatsächlich liegt. Ich vermute zwar das meine Chips nen hauer haben, aber dafür habe ich zu wenig getestet.

Edit:

Hast du den 200kOhm Widerstand an Pin 8 gegen Vdd auch drinnen?

In deinem Bild sieht es so aus als fehle der dir. Der wird für den internen Osszi benötigt.

Ich bin auch gerade erst an den Dingern verzweifelt, bestelle jetzt lieber für nen Euro mehr in Deutschland... habe 2x100k in Reihe genommen, erst dann funktionierte das wirklich einigermaßen.

Ein Chip hatte zwischen Pin1 und 8 Kurzschluss, da hatte logischerweise nix mehr oszilliert.

Kommt denn ohne Input wenigstens ein Rauschen an?

Vorneweg: sorry wegen der späten Antwort...

Füge in der For Schleife nach dem

"digitalWrite(msg7Strobe, HIGH)"

ebenfalls mal ein delayMicroseconds ein.

Wenn das nicht hilft versuche mal höher als 35µS eventuell hat er da Probleme mit zu schnellen Flankenwechsel.

-->Hab ich mal rumprobiert, keine Änderung des Verhaltens

Hast du die Teile aus China?

-->Wahrscheinlich schon

Hast du den 200kOhm Widerstand an Pin 8 gegen Vdd auch drinnen?

In deinem Bild sieht es so aus als fehle der dir.

-->Ja, ist drin. Habe an den Widerstand ein Kabel gelötet, da das Beinchen auf der einen Seite zu kurz war. Man sieht also nur nen kurzes grünes Kabel mit Schrumpfschlauchansatz

habe 2x100k in Reihe genommen, erst dann funktionierte das wirklich einigermaßen.

-->Hab das mal probiert: keine Besserung

Kommt denn ohne Input wenigstens ein Rauschen an?

-->Anscheinend ja, die LEDs werden nie ganz dunkel.

Was mir noch aufgefallen ist: bei dem MSGEQ7, der auf gar nix reagiert: irgendwie floated der Output des MSGEQ7 enorm, alle Bänder messen immer die gleiche Spannung, und die variiert, wenn ich am Kabel zum Uno rumwackel. (bei dem halb funktionierendem MSGEQ7 ist das nicht so)

Ich denke schon, dass die Teile hinüber sind... mal schauen, was der Händer dazu sagt...