MCP3321 mit zwei MCP23017 als Balkenanzeige

Hallo,
Ich hätte mal eine Frage. Wie muss ich das Meßergebnis eines MCP3221 mit der Bilbliothek MCP3x21 so umstellen, damit ich damit eine Balkenanzeige bestehend aus 32 LED über zwei MCP23017 ansteuern kann ?
Ich möchte dass bei 0 Volt keine LED leuchtet und bei 3,3 Volt alle 32 LEDs.

Danke im Voraus
Franky

Ist es programmieren?

Ja, das was du vor hast, nennt sich programmieren!

EDIT:
Programm entfernt, da nicht den Anforderungen genügend.

Was soll mir dieser Wertvolle Hinweis sagen ?
Ja, oder in Einzelschritten, den MCP3221 auslesen damit ich eine Ergebnis habe, das klappt und bekomme ich hin. Im Ergebnis Value habe ich nun eine Zahl zwischen 0 und 3300 welches der Spannung in mV entspricht.
Um die MCP23017 anzusteuern müßte ich dieses Ergebnis in binäre Blöcke zu je 8 Bit aufteilen, um die Portregister GPIOA und GPIOB entsprechend zu versorgen.
Und genau um diesen Programmteil geht es mir, wie teile ich dieses Ergebnis so auf das ich die GPIOA/GPIOB Register beschreiben kann ?

Franky

Mit welcher Library steuerst du den MCP an?
Sind die LEDs der Reihe nach angeschlossen?

wie teilst du das nun auf:
du hast ein Ergebnis zwischen 0 .. 3300
das mapst du (z.B. mit map) auf eine Ledausgabe 0..31
genau so viele pins schaltest du mit einer Forschleife ein.

Und?
Leider hast du das vergessen im Eingangsposting zu sagen.
Ich gehe mal davon aus, dass du das selber lösen kannst.

Einmal habe ich mir jetzt Arbeit mit dir gemacht.
Die neue Salamischeibe lasse ich für dich übrig.

Hallo,

nur über Wire.h.
Direktes schreibend er Busadresse + Registeradresse ( GPIOa oder GPIOb) + dem Zahlenwert 0 bis 255 um jeweils 8 Ausgänge / LEDs anzusteuern.
Das heißt dann wohl, das Value gemapt auf 32.
Und nun muss ich diese 32 auf 4 Blöcke aufteilen mit je den Werten 0-255 aufteilen.

Zu den LEDs die hängen jeweils eine mit einem Vorwiderstand an einem Ausgangsport der/des MCP23017. Also jede LED ist einzeln ansteuerbar.

Franky

Entschuldige, dass ich mit der Typenangbe des Portexpander Chips eine eindeutige Aussage getroffen habe.
Oder hätte ich den Link zum Datasheet beifügen sollen ?

MCP23017

Franky

Du schaffst es also nicht, einen 32 Bit Wert in 4 Byte aufzuteilen....
Oje....
Du hast mein volles Mitgefühl!

nein ein Sketch hätte auch gereicht dann hätten wir gesehen was du hast.

so, das ist keine Schönheit, macht aber in etwa was du willst:

edit: link entfernt wegen Benehmen des TO

Warum stellt man hier überhaupt eine Frage, wenn die Super Poster zum ersten nicht lesen wollen was man geschrieben hat, und dann nur von oben Herab dumme und nicht hilfreiche Antworten geben ?
Ihr vergeßt alle, dass auch ihr mal Klein angefangen habt !

Offensichtlich bist du mir an fachlicher, und vor allen Dingen, an sozialer Kompetenz weit überlegen. Zudem scheinst du über eine so massive Dominanz zu verfügen, so dass dir ALLE sofort zu Diensten sind.

Ich bitte untertänigst um Verzeihung, dass ich deinen hohen Erwartungen nicht gerecht werden kann/konnte.

Bitte bestrafe mich, für meinen unzulänglichen Versuch, mit Sarkasmus und schütte nach belieben Verachtung über mich.

Du solltest das nicht als Plattform sehen, wo man einfach Leute und Menschen dumm anmacht denen man nicht gegenüber steht !
Einfach mit der Kotzbrocken-Methode hier entwürdigende Sprüche ablassen scheint deiner Kernkompetenz am Nächsten zu kommen.

Inzwischen ist dieses Forum schon derart verschrien, dass man hier nicht wirklich Hilfe geboten bekommt, sondern das man hier nur von oben herab mit blöden Sprüchen vollgekloppt wird.

Warum bist du dann in diesem Forum, wenn du nicht wirklich gewillt bist, eine Erläuterung oder Erklärung abzugeben ?

Und zu einer Unterstützungskompetenz gehört es auch, dass man ggf mal Nachfragt, wenn einem nicht alle Begriffe, Bezeichnungen oder den daraus resultierenden Gegebenheiten bekannt sind ?
Nein, das schadet ja deinem EGO !

Hier kannst du ungestraft jeden volltuffeln, ohne das du befürchten müßtet, dass dir einer auf die Backen haut. So würdest du niemals mit einem Menschen umgehen der dir im Angesicht gegenüber steht .

Ich erkenne dein moralisch/ethisches Überlegenheitsgefühl neidlos an.

Sollte jemand daran interessiert sein, wie man einen Spannungswert in 32 Bits und diese auf vier acht Bit Ports aufteilt, habe ich was geschrieben, getestet mit ESP32, lag hier gerade rum:

void setup()
{
  delay(500);
  Serial.begin(115200);
  Serial.println("\nStart...");
}

void loop() {
  uint32_t jetzt = millis();
  static uint32_t vorhin = 0;
  const uint32_t INTERVALL = 1;
  static uint16_t spannung = 0;
  uint16_t pix = 0;
  static uint16_t alt = 0;

  if (jetzt - vorhin >= INTERVALL) {
    vorhin = jetzt;
    pix = spannung * 32UL / 3300;
    if (pix != alt)
    {
      alt = pix;
      uint8_t p[4] = {0, 0, 0, 0};
      uint32_t bits = (1ul << pix) - 1;
      if (pix == 32) bits = 0xFFFFFFFFUL;
      p[0] = (bits >> 24) & 0xFF;
      p[1] = (bits >> 16) & 0xFF;
      p[2] = (bits >> 8) & 0xFF;
      p[3] = bits & 0xFF;
      Serial.print(spannung);
      Serial.print('\t');
      binaerausgabe(bits, 32);
      Serial.print('\t');
      binaerausgabe(p[0], 8);
      Serial.print(' ');
      binaerausgabe(p[1], 8);
      Serial.print(' ');
      binaerausgabe(p[2], 8);
      Serial.print(' ');
      binaerausgabe(p[3], 8);
      Serial.println();
    }
    spannung = spannung < 3300 ? ++spannung : 0;
    if (!spannung) while (1);
  }
}

void binaerausgabe(uint32_t wert, uint8_t stellen)
{
  for (uint8_t s = 0; s < stellen; s++)
  {
    if (wert & 1U << (stellen - s - 1))
    {
      Serial.print('1');
    } else {
      Serial.print('0');
    }
  }
}

Ausgabe:

Start...
104	00000000000000000000000000000001	00000000 00000000 00000000 00000001
207	00000000000000000000000000000011	00000000 00000000 00000000 00000011
310	00000000000000000000000000000111	00000000 00000000 00000000 00000111
413	00000000000000000000000000001111	00000000 00000000 00000000 00001111
516	00000000000000000000000000011111	00000000 00000000 00000000 00011111
619	00000000000000000000000000111111	00000000 00000000 00000000 00111111
722	00000000000000000000000001111111	00000000 00000000 00000000 01111111
825	00000000000000000000000011111111	00000000 00000000 00000000 11111111
929	00000000000000000000000111111111	00000000 00000000 00000001 11111111
1032	00000000000000000000001111111111	00000000 00000000 00000011 11111111
1135	00000000000000000000011111111111	00000000 00000000 00000111 11111111
1238	00000000000000000000111111111111	00000000 00000000 00001111 11111111
1341	00000000000000000001111111111111	00000000 00000000 00011111 11111111
1444	00000000000000000011111111111111	00000000 00000000 00111111 11111111
1547	00000000000000000111111111111111	00000000 00000000 01111111 11111111
1650	00000000000000001111111111111111	00000000 00000000 11111111 11111111
1754	00000000000000011111111111111111	00000000 00000001 11111111 11111111
1857	00000000000000111111111111111111	00000000 00000011 11111111 11111111
1960	00000000000001111111111111111111	00000000 00000111 11111111 11111111
2063	00000000000011111111111111111111	00000000 00001111 11111111 11111111
2166	00000000000111111111111111111111	00000000 00011111 11111111 11111111
2269	00000000001111111111111111111111	00000000 00111111 11111111 11111111
2372	00000000011111111111111111111111	00000000 01111111 11111111 11111111
2475	00000000111111111111111111111111	00000000 11111111 11111111 11111111
2579	00000001111111111111111111111111	00000001 11111111 11111111 11111111
2682	00000011111111111111111111111111	00000011 11111111 11111111 11111111
2785	00000111111111111111111111111111	00000111 11111111 11111111 11111111
2888	00001111111111111111111111111111	00001111 11111111 11111111 11111111
2991	00011111111111111111111111111111	00011111 11111111 11111111 11111111
3094	00111111111111111111111111111111	00111111 11111111 11111111 11111111
3197	01111111111111111111111111111111	01111111 11111111 11111111 11111111
3300	11111111111111111111111111111111	11111111 11111111 11111111 11111111

Möge es irgendjemandem nützen :slightly_smiling_face:

Wenn das Forum schon vorher so verschrien ist, warum bist Du dann überhaupt erst hier her gekommen?
Es wird Dir auch in den anderen Foren nicht anders ergehen.

Gruß Tommy

Wie ist die Quellenlage? Bitte Quellen offenlegen.
Oder ist das nur Deine persönliche Meinung die Du veralgemeinerst damit sie mehr bewirkt bzw Du nicht als alleinig Quelle enttarnt wirst.
Grüße Uwe

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