Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Arduino Lektion 8: Max7219 8×8 LED Shield

Posted on 7. März 20152. Mai 2023 by Stefan Draeger

Heute möchte ich gerne das Max7219 8×8 LED Shield präsentieren.
Dieses Shield kann für wenig Geld über Amazon.de bezogen werden, ca 3-5 €.

Wenn dieses Shield geliefert wird ist es komplett zerlegt d.h. man muss es selbst zusammenlöten. Aber dieses ist auch mit geringen Kentnissen lösbar.

Max7219 8x8 LED Shield, zerlegt
Max7219 8×8 LED Shield

Wenn dieses zusammen gesetzt ist welches in ca. 30min lösbar sein sollte, sieht dieses Shield folgendermaßen aus.

Max7219 8x8 LED Shield, zusammen gesetzt
Max7219 8×8 LED Shield

  •  Der Schaltplan
  • Der Quellcode
    • Einbinden der MaxLib
    • Verwenden der MAXLIB
    • Das Beispiel
      • Die Datei statics.h
      • Einstellungen zu den PIN’s und dem Shield
  • Das Video

Der Schaltplan

Zum Schaltplan braucht es nicht viel Erwähnung, die PINs VSS, GND, DIN, CS, CLK werden wie folgt mit dem Sainsmart Mega2560 R3 verbunden.

VCC – 5V
GND – GND
DIN – digitaler PIN 8
CS – digitaler PIN 9
CLK – digitaler PIN 10

Max7219 8x8 LED Shield, Anschlussplan
Max7219 8×8 LED Shield, Anschlussplan

Die oben genannten Einstellungen können auch beliebig angepasst werden, jedoch muss dann auch das Beispiel angepasst werden. Ich habe diese Einstellungen so belassen da ich „nur“ das Shield an dem Mikrocontroller habe.

Der Quellcode

Für dieses Shield benötigt man die MaxLib welche aus dem GitHub von Arduinobymyself geladen werden kann. Hier sollte man sich nicht an der Bezeichnung „16×8“ beirren lassen. Das mitgelieferte Beispiel war in meinem Falle nicht sofort lauffähig und bedarf einiger kleiner Änderungen, welche ich später erläutere.

Einbinden der MaxLib

Wenn man die ZIP Datei heruntergeladen hat dann kopiert man diese in ein beliebiges Verzeichnis. Jetzt muss diese Bibliothek in die Arduino IDE eingebunden werden. Wie dieses erfolgt habe ich im Tutorial „Arduino IDE, Einbinden einer Bibliothek“ beschrieben.

Verwenden der MAXLIB

Nachdem wir die Arduino IDE geöffnet UND die benötigte Bibliothek eingebunden haben können wir die einfach mit:

#include <MaxMatrix.h>

einbinden.

Das Beispiel

Wie schon angesprochen werden die Bibliotheken in den meisten Fällen mit Beispielen zu den Shields ausgeliefert, wie auch in diesem Falle. Da ich mich erstmal mit dem Shield vertraut machen wollte und später in meinem großen Projekt einbinden wollte habe ich mir das Beispiel genommen und kleinere Änderungen vorgenommen.

Als erstes habe ich diese riesen Array Deklaration welche benötigt wird um die Zeichen auf dem Shield auszugeben in eine separate Datei ausgelagert.

#include "statics.h"

Die Datei statics.h

Die nachfolgenden Zeichen können alle auf dem Shield dargestellt werden, möchte man nun eigene oder zusätzliche Zeichen haben, so muss man das Array „einfach“ erweitern. In der MaxMatrix liegt eine Microsoft Excel Arbeitsmappe womit dieses relativ einfach zu erledigen ist.

const unsigned char CH[] PROGMEM = {
3, 8, B0000000, B0000000, B0000000, B0000000, B0000000, // space
1, 8, B1011111, B0000000, B0000000, B0000000, B0000000, // !
3, 8, B0000011, B0000000, B0000011, B0000000, B0000000, // "
5, 8, B0010100, B0111110, B0010100, B0111110, B0010100, // #
4, 8, B0100100, B1101010, B0101011, B0010010, B0000000, // $
5, 8, B1100011, B0010011, B0001000, B1100100, B1100011, // %
5, 8, B0110110, B1001001, B1010110, B0100000, B1010000, // &
1, 8, B0000011, B0000000, B0000000, B0000000, B0000000, // '
3, 8, B0011100, B0100010, B1000001, B0000000, B0000000, // (
3, 8, B1000001, B0100010, B0011100, B0000000, B0000000, // )
5, 8, B0101000, B0011000, B0001110, B0011000, B0101000, // *
5, 8, B0001000, B0001000, B0111110, B0001000, B0001000, // +
2, 8, B10110000, B1110000, B0000000, B0000000, B0000000, // ,
4, 8, B0001000, B0001000, B0001000, B0001000, B0000000, // -
2, 8, B1100000, B1100000, B0000000, B0000000, B0000000, // .
4, 8, B1100000, B0011000, B0000110, B0000001, B0000000, // /
4, 8, B0111110, B1000001, B1000001, B0111110, B0000000, // 0
3, 8, B1000010, B1111111, B1000000, B0000000, B0000000, // 1
4, 8, B1100010, B1010001, B1001001, B1000110, B0000000, // 2
4, 8, B0100010, B1000001, B1001001, B0110110, B0000000, // 3
4, 8, B0011000, B0010100, B0010010, B1111111, B0000000, // 4
4, 8, B0100111, B1000101, B1000101, B0111001, B0000000, // 5
4, 8, B0111110, B1001001, B1001001, B0110000, B0000000, // 6
4, 8, B1100001, B0010001, B0001001, B0000111, B0000000, // 7
4, 8, B0110110, B1001001, B1001001, B0110110, B0000000, // 8
4, 8, B0000110, B1001001, B1001001, B0111110, B0000000, // 9
2, 8, B01010000, B0000000, B0000000, B0000000, B0000000, // :
2, 8, B10000000, B01010000, B0000000, B0000000, B0000000, // ;
3, 8, B0010000, B0101000, B1000100, B0000000, B0000000, // <
3, 8, B0010100, B0010100, B0010100, B0000000, B0000000, // =
3, 8, B1000100, B0101000, B0010000, B0000000, B0000000, // >
4, 8, B0000010, B1011001, B0001001, B0000110, B0000000, // ?
5, 8, B0111110, B1001001, B1010101, B1011101, B0001110, // @
4, 8, B1111110, B0010001, B0010001, B1111110, B0000000, // A
4, 8, B1111111, B1001001, B1001001, B0110110, B0000000, // B
4, 8, B0111110, B1000001, B1000001, B0100010, B0000000, // C
4, 8, B1111111, B1000001, B1000001, B0111110, B0000000, // D
4, 8, B1111111, B1001001, B1001001, B1000001, B0000000, // E
4, 8, B1111111, B0001001, B0001001, B0000001, B0000000, // F
4, 8, B0111110, B1000001, B1001001, B1111010, B0000000, // G
4, 8, B1111111, B0001000, B0001000, B1111111, B0000000, // H
3, 8, B1000001, B1111111, B1000001, B0000000, B0000000, // I
4, 8, B0110000, B1000000, B1000001, B0111111, B0000000, // J
4, 8, B1111111, B0001000, B0010100, B1100011, B0000000, // K
4, 8, B1111111, B1000000, B1000000, B1000000, B0000000, // L
5, 8, B1111111, B0000010, B0001100, B0000010, B1111111, // M
5, 8, B1111111, B0000100, B0001000, B0010000, B1111111, // N
4, 8, B0111110, B1000001, B1000001, B0111110, B0000000, // O
4, 8, B1111111, B0001001, B0001001, B0000110, B0000000, // P
4, 8, B0111110, B1000001, B1000001, B10111110, B0000000, // Q
4, 8, B1111111, B0001001, B0001001, B1110110, B0000000, // R
4, 8, B1000110, B1001001, B1001001, B0110010, B0000000, // S
5, 8, B0000001, B0000001, B1111111, B0000001, B0000001, // T
4, 8, B0111111, B1000000, B1000000, B0111111, B0000000, // U
5, 8, B0001111, B0110000, B1000000, B0110000, B0001111, // V
5, 8, B0111111, B1000000, B0111000, B1000000, B0111111, // W
5, 8, B1100011, B0010100, B0001000, B0010100, B1100011, // X
5, 8, B0000111, B0001000, B1110000, B0001000, B0000111, // Y
4, 8, B1100001, B1010001, B1001001, B1000111, B0000000, // Z
2, 8, B1111111, B1000001, B0000000, B0000000, B0000000, // [
4, 8, B0000001, B0000110, B0011000, B1100000, B0000000, // backslash
2, 8, B1000001, B1111111, B0000000, B0000000, B0000000, // ]
3, 8, B0000010, B0000001, B0000010, B0000000, B0000000, // hat
4, 8, B1000000, B1000000, B1000000, B1000000, B0000000, // _
2, 8, B0000001, B0000010, B0000000, B0000000, B0000000, // `
4, 8, B0100000, B1010100, B1010100, B1111000, B0000000, // a
4, 8, B1111111, B1000100, B1000100, B0111000, B0000000, // b
4, 8, B0111000, B1000100, B1000100, B0101000, B0000000, // c
4, 8, B0111000, B1000100, B1000100, B1111111, B0000000, // d
4, 8, B0111000, B1010100, B1010100, B0011000, B0000000, // e
3, 8, B0000100, B1111110, B0000101, B0000000, B0000000, // f
4, 8, B10011000, B10100100, B10100100, B01111000, B0000000, // g
4, 8, B1111111, B0000100, B0000100, B1111000, B0000000, // h
3, 8, B1000100, B1111101, B1000000, B0000000, B0000000, // i
4, 8, B1000000, B10000000, B10000100, B1111101, B0000000, // j
4, 8, B1111111, B0010000, B0101000, B1000100, B0000000, // k
3, 8, B1000001, B1111111, B1000000, B0000000, B0000000, // l
5, 8, B1111100, B0000100, B1111100, B0000100, B1111000, // m
4, 8, B1111100, B0000100, B0000100, B1111000, B0000000, // n
4, 8, B0111000, B1000100, B1000100, B0111000, B0000000, // o
4, 8, B11111100, B0100100, B0100100, B0011000, B0000000, // p
4, 8, B0011000, B0100100, B0100100, B11111100, B0000000, // q
4, 8, B1111100, B0001000, B0000100, B0000100, B0000000, // r
4, 8, B1001000, B1010100, B1010100, B0100100, B0000000, // s
3, 8, B0000100, B0111111, B1000100, B0000000, B0000000, // t
4, 8, B0111100, B1000000, B1000000, B1111100, B0000000, // u
5, 8, B0011100, B0100000, B1000000, B0100000, B0011100, // v
5, 8, B0111100, B1000000, B0111100, B1000000, B0111100, // w
5, 8, B1000100, B0101000, B0010000, B0101000, B1000100, // x
4, 8, B10011100, B10100000, B10100000, B1111100, B0000000, // y
3, 8, B1100100, B1010100, B1001100, B0000000, B0000000, // z
3, 8, B0001000, B0110110, B1000001, B0000000, B0000000, // {
1, 8, B1111111, B0000000, B0000000, B0000000, B0000000, // |
3, 8, B1000001, B0110110, B0001000, B0000000, B0000000, // }
4, 8, B0001000, B0000100, B0001000, B0000100, B0000000, // ~
};

Einstellungen zu den PIN’s und dem Shield

Wie zuvor angesprochen kann das Shield an beliebige PINs angeschlossen werden (Außer natürlich VCC & GND.)
Diese Einstellungen hier sind aus dem Beispiel übernommen.

int data = 8;    // DIN Pin vom MAX7219 Shield
int load = 9;    // CS Pin vom MAX7219 Shield
int clock = 10;  // CLK Pin vom MAX7219 Shield

int maxInUse = 1;    //Dieser Wert bestimmt wieviele MaxMatrix Shields hintereinander (kaskadiert) verwendet werden.

Mit der Zeile

MaxMatrix m(data, load, clock, maxInUse); // Definiert nun ein Objekt der Klasse MaxMatrix.

Erstellen wir ein Objekt der Klasse MaxMatrix, nun können wir über die Variable „m“ auf die öffentlichen Routinen der MaxMatrix Bibliothek zugreifen.

Als Member Variable setzen wir unsere darzustellende Message als char Array.

char msg[] = "Hallo Welt! 123#";

Die Setup Methode für den Sketch enthält die Initialisierung der MaxMatrix sowie die Einstellung für die Übertragungsgeschwindigkeit.
Optional kann hier auch die Leucht Intensität der LEDs eingestellt werden.
(Werte von 0-15 sind hier wählbar.)

void setup(){
  m.init(); // Das Max7219 initialisieren.
  m.setIntensity(1); // LED Leucht intensität, Werte von 0-15 sind hier erlaubt.
  Serial.begin(9600); // Übertragungsgeschwindigeit der seriellen Verbindung
}

In der Loop Methode wird nun unsere Message auf die MaxMatrix geschrieben
(In einer Endlosschleife.).

void loop(){
   printStringWithShift(msg, 75); //Schreibt die Message auf die Max LED Matrix, mit einer wiederholungsgeschwindigkeit von 75ms.
}

Nun noch unsere Hilfsmethoden welche die Message (ist ein Char Array) zerlegen und aus dem vorher definierten Char Array (prog_uchar CH[], in der Datei statics.h) die entsprechenden Adressen für die LEDs raussucht.

void printCharWithShift(char c, int shift_speed){
  if (c < 32) return;
  c -= 32;
  memcpy_P(buffer, CH + 7*c, 7);
  m.writeSprite(32, 0, buffer);
  m.setColumn(32 + buffer[0], 0);
  
  for (int i=0; i<buffer[0]+1; i++) 
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}

void printStringWithShift(char* s, int shift_speed){
  while (*s != 0){
    printCharWithShift(*s, shift_speed);
    s++;
  }
}

Das Video

Max7219 8x8 LED Matrix am Saintsmart Mega2360
Dieses Video auf YouTube ansehen.

 

Hier nun wie gewohnt der Quellcode zum Download:

Max7219 8×8 LED ShieldHerunterladen

20 thoughts on “Arduino Lektion 8: Max7219 8×8 LED Shield”

  1. Frank Wagenbrenner sagt:
    7. Februar 2018 um 22:35 Uhr

    Danke das war für mich sehr wertvoll und verständlich,
    suche noch verzweifelt nach einen max7219 Uhren sketch, kann mir geholfen werden

    Antworten
    1. Stefan Draeger sagt:
      8. Februar 2018 um 06:31 Uhr

      Hi,

      eine gute Idee, jedoch mit dem Rastermaß von 8×8 LEDs etwas klein aber man kann ja 8 Shields nehmen und diese zu einem 16×16 LED Matrix Panel zusammenschließen.

      Gruß,

      Stefan

      Antworten
  2. IP sagt:
    2. März 2019 um 13:46 Uhr

    Hallo,
    das ist wirklich ein richtig gutes Projekt. Lief bei mir auch perfekt lies sich sehr gut ein meine Bedienungen anpassen,
    bis zum heutigen Tag. Beim Kompilieren kommt folgende Meldung:

    lektion8_max7219_8x8:33: error: ‚CH‘ was not declared in this scope
    memcpy_P(buffer, CH + 7*c, 7);
    ^
    exit status 1
    ‚CH‘ was not declared in this scope

    Ich habe keine Ahnung warum das von mit nichts dir nichts so ist. Vlt kann jemand helfen???

    Antworten
    1. Stefan Draeger sagt:
      2. März 2019 um 20:42 Uhr

      Hi,

      „CH“ ist unser Array mit dem Zeichensatz welcher auf der Matrix angezeigt werden kann / soll.

      Prüfe doch bitte einmal deinen Code ob vielleicht diese Variable nicht unbenannt wurde.

      Gruß,

      Stefan Draeger

      Antworten
  3. alsternerd sagt:
    27. März 2019 um 15:05 Uhr

    Moin,

    die URL zum Einbinden einer Bibliothek führt leider noch zu einer alten Domain.
    Die jetzt passende URL zum Beitrag findet man hier:

    https://draeger-it.blog/arduino-ide-einbinden-einer-bibliothek/

    Antworten
    1. Stefan Draeger sagt:
      27. März 2019 um 18:50 Uhr

      Hi,

      danke, da ist mir die Adresse wohl beim Wechsel der Domain durchgerutscht.

      Gruß,

      Stefan Draeger

      Antworten
  4. André sagt:
    16. Juli 2019 um 11:35 Uhr

    Hallo,
    ich bin noch unerfahren mit der Arduino IDE.
    Ich bekomme irgendwie die MaxLib von Arduinobymyself nicht eingebunden.
    Habe die IDE 1.8.7 und 1.8.9 probiert.
    Ich habe die ZIP Datei heruntergeladen (mehrfach und sie ist in Ordnung).
    Wenn ich .ZIP Bibliothek hinzufügen wähle, kommt immer
    „Angegebener Ordner/ZIP-Datei enthält keine gültige Bibliothek“
    egal, ob ich das ZIP File wähle, oder den ausgepackten Ordner.

    Könnt ihr mir einenen Tipp geben?
    Danke

    Antworten
    1. Stefan Draeger sagt:
      20. Juli 2019 um 13:07 Uhr

      Hi,

      manchmal sind die Ordner in den Zip Dateien nocheinmal verschachtelt d.h. „Ordner in Ordner“ die Arduino IDE benötigt jedoch eine bestimmte Struktur.
      Du musst somit die RAR Datei „Matrix16x8-master.zip\Matrix16x8-master\MaxMatrix.rar“ entpacken und separat als Zip Datei packen und einbinden.
      Ich habe dieses einmal für dich erledigt und du kannst dir die Zip Datei unter https://draeger-it.blog/download/maxlib-von-arduinobymyself/ herunterladen.

      Gruß,

      Stefan Draeger

      Antworten
  5. Bernd Reuter sagt:
    6. September 2019 um 20:26 Uhr

    Hallo,
    mir gefällt das Projekt sehr gut. Ich möchte mir eine Laufschrift mit 8 Modulen erstellen. Dank dir funktioniert das auch schon gut, aber die Schrift läuft immer quer. So sieht es bei deinem Beispiel auch aus. Hast du Ahnung, wie ich die Schrift um 90 Grad drehen kann?
    Im Voraus Viuelen Dank

    Antworten
  6. Sebastian Windt sagt:
    12. Dezember 2019 um 18:24 Uhr

    Hallo.
    In der statics.h muss in den neuen Versionen folgendes geändert werden, damit diese Fehlermeldung nicht mehr auftritt: „prog_uchar‘ does not name a type“

    alt: PROGMEM prog_uchar CH[] = { …
    neu: const unsigned char CH[] PROGMEM ={

    Antworten
  7. Sebastian Windt sagt:
    12. Dezember 2019 um 18:25 Uhr

    Vielen Dank für die tolle Anleitung 🙂

    Antworten
  8. Michael Arnold sagt:
    29. Februar 2020 um 17:04 Uhr

    Hallo Stefan ! Das Beispiel bringt mir immer folgende Meldung.. ‚pror_uchar‘ does not name a type, did you mean ‚getchar‘? kannst Du mich da weiter helfen ?

    Antworten
    1. Stefan Draeger sagt:
      1. März 2020 um 09:24 Uhr

      Hi,

      ja da hat sich in der Zeit einiges geändert. Du musst nun prog_uchar durch const unsigned char ersetzen. Dann sollte es klappen.

      Gruß,

      Stefan

      Antworten
  9. Urs sagt:
    17. Mai 2021 um 10:45 Uhr

    Hallo.
    Danke für die gute Erklärung und für die Arbeit die du dir gemacht hast.

    Ich möchte gerne 8 Max7219 shields verwenden.
    Mit 4 Stück ging alles gut. Die Schrift beginnt ganz rechts aussen um dann nach links zu laufen.
    Ab dem 5. shield folgendes Bild: die Schrift beginnt auf dem 1. shield rechts. Jedoch nicht ganz am rechten Rand, sondern in der Mitte.
    Ab dem 6. shield folgendes Bild: die Schrift beginnt auf dem 2. shield rechts in der Mitte.
    Ab dem 7. shield folgendes Bild: die Schrift beginnt auf dem 3. shield rechts in der Mitte. Bei Shield 1und 2 leuchten die waagrechten Reihen 2 bis 6 (von Oben) nun dauernd. Shield 3 leuchten die rechte Hälfte der waagrechten Reihen 2 bis 6 dauernd, und die linke Hälfte füllt die Reihen 2 bis 6 dem Buchstaben folgend auf.
    Ab dem 8. shield ist das gleiche wie bei shield 7, mit Verschiebung auf das 4. shield.

    Wie kann das Problem behoben werden, sodass die Schrift, ganz rechts startet?

    Freundliche Grüsse
    Urs

    Antworten
    1. Stefan Draeger sagt:
      17. Mai 2021 um 11:01 Uhr

      Hi,

      im Sketch muss man ggf. anpassen wieviele Shields man kaskadierend angeschlossen hat.
      Kannst du mir deinen Code bitte einmal per E-Mail senden?

      Gruß,

      Stefan

      Antworten
  10. Urs sagt:
    17. Mai 2021 um 11:15 Uhr

    Hi

    habe es mit 8 shields gepackt.

    Zeile 34 m.writeSprite(64, 0, buffer);
    Zeile 35 m.setColumn(64 + buffer[0], 0);

    Urs

    Antworten
  11. Urs sagt:
    18. Mai 2021 um 09:49 Uhr

    Hallo,

    nachdem ich nun die 8 shields zum laufen gebracht habe, möchte ich nun noch ä, ö, ü in der statics.h einbinden. das gelingt mir nur indem ich bei //& die Codierung für ä einsetze:
    4, 8, B0100000, B1010101, B1010101, B1111000, B0000000, // &
    Bei der Texteingabe im Code muss ich dann H&lfte anstatt Hälfte eingeben.
    Das müsste doch irgendwie anders gehen. Mit dem dem reinen anfügen von ä, ö, ü in Zeile 97, 98, 99 der statics.h bin ich gescheitert. es wird kein ä ausgegeben sondern Hlfte.

    Kannst du mir weiterhelfen.
    Freundliche Grüsse
    Urs

    Antworten
  12. BoKat sagt:
    3. April 2022 um 22:12 Uhr

    Hallo,

    ich versuche mich gerade an dem Projekt und bekomme beim Kompilieren die Meldung:
    ‚buffer‘ was not declared in this scope

    Viele Grüße

    Antworten
    1. Stefan Draeger sagt:
      4. April 2022 um 10:13 Uhr

      Hi,

      kannst du mir bitte deinen Sketch per Mail an info@draeger-it.blog senden?
      Ich habe den Sketch jedoch einmal angepasst da noch ein Feature verwendet wird welches es nicht mehr gibt.

      Gruß,

      Stefan Draeger

      Antworten
  13. Pingback: Grove 8x8 LED Matrix am Arduino: Einsteigerfreundliche Programmieranleitung - Technik Blog

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}