|  
 | RGB-Matrix und Arduino NanoEine interessante Abwechslung in der Matrix-Welt stellt eine RGB-Matrix dar. Statt der Standardleuchtdioden mit 
        einer bestimmten Farbe besteht eine solche Matrix aus RGB-Dioden. Neben den Grundfarben Rot, Gelb und Blau stellt solche Matrix 
        eine Unmenge an Farbtönen, die aus Kombinationen der Grundfarben entstehen, zur Verfügung. Bei einer 8x8-Matrix gilt es in einem 
        solchen Fall 3x8x8 = 192 Leuchtdioden anzusteuern. Im Handel werden solche LEDs-Anordnungen in unterschiedlichen Größen von 
        verschiedenen 
        Herstellern angeboten. In dem kurzen Beispiel wird die Matrix CJMCU-8x8 verwendet.   RGB-Matrix CJMCU 8x8 
 Schaltplan Schaltplan (Arduino ohne USB-Anschluss: Vin > 6 V) Testschaltung ProgrammFür das Programm muss die passende Bibliothek installiert werden. In dem Beispiel wird die Bibliothek 
        „Adafruit_NeoPixel.h“ verwendet.  Mit dem Programm werden auf der Matrix vier einfache LEDs-Szenarien erzeugt. In dem Hauptprogramm „loop()“ werden 
        entsprechend vier Unterprogramme „show1()“ bis „show4()“ nacheinander aufgerufen. „show1()“ schaltet die einzelnen LEDs mit 
        einer bestimmten Farbe nacheinander ein. Diese Sequenz wird viermal wiederholt. „show2 ()“ schaltet die einzelnen LEDs nach 
        dem Zufallsprinzip ein und aus. Die erste Zufallszahl „Pixel“ entscheidet hier, welche Leuchtdiode angesteuert wird. Die zweite 
        Zufallszahl, „Farbe“, bestimmt die Farbe der Leuchtdiode. In dem dritten Unterprogramm „show3()“ wandern über die Matrix senkrechte 
        und waagerechte Balken, die aus acht LEDs bestehen und jeweils eine andere Farbe aufweisen. Schließlich im Unterprogramm „show4()“ werden alle Leuchtioden der 
        Matrix hochgedimmt. Auch hier kommen verschieden Farben zum Einsatz.  // Arduino Nano steuert 8x8 RGB-Matrix // ---------------------------------------------------------- #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif #define LED_PIN 6 #define LED_COUNT 64 Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); strip.show(); strip.setBrightness(50); } void loop() { show1(); show2(); show3(); show4(); } void show1 () { int i; for (i = 0; i < 64; i++) { strip.show(); strip.setPixelColor(i, 255, 0, 0); delay (40); } strip.clear(); for (i = 63; i > -1; i--) { strip.show(); strip.setPixelColor(i, 0, 255, 0); delay (40); } strip.clear(); for (i = 0; i < 64; i++) { strip.show(); strip.setPixelColor(i, 0, 0, 255); delay (40); } strip.clear(); for (i = 63; i > -1; i--) { strip.show(); strip.setPixelColor(i, 127, 127, 127); delay (40); } } void show2 () { for (int i = 1; i < 5000; i++) { strip.show(); int Pixel = random (0,64); int Farbe = random (1, 5); switch (Farbe) { case 1: { strip.setPixelColor(Pixel, 255, 0, 0); break; } case 2: { strip.setPixelColor(Pixel, 0, 255, 0); break; } case 3: { strip.setPixelColor(Pixel, 0, 0, 255); break; } case 4: { strip.setPixelColor(Pixel, 0, 0, 0); break; } } } strip.clear(); } void show3 () { for (int i = 0; i < 8; i++) { strip.clear(); for (int j = i; j < 64; j = j + 8) { strip.setPixelColor(j, 0, 255, 0); delay (30); } strip.show(); } for (int i = 0; i < 57; i=i+8) { strip.clear(); for (int j = 0; j < 8; j++) { strip.setPixelColor(i+j, 255, 0, 0); delay (30); } strip.show(); } for (int i = 7; i > -1; i--) { strip.clear(); for (int j = i; j < 64; j = j + 8) { strip.setPixelColor(j, 0, 0, 255); delay (30); } strip.show(); } for (int i = 56; i > -1; i=i-8) { strip.clear(); for (int j = 0; j < 8; j++) { strip.setPixelColor(i+j, 127, 127, 127); delay (30); } strip.show(); } } void show4 () { for (int a = 1; a < 4; a++) { unsigned int Farbton = a * 21500; for(int i=0; i<256; i++) { for (int j=0; j<64; j++) { strip.setPixelColor(j, strip.gamma32(strip.ColorHSV(Farbton, 255, i))); } strip.show(); delay(10); } delay (500); } } // ---------------------------------------------------------- KurzvideoKurzvideo (Lichtspiele mit RGB-Matrix und Arduino Nano) Weitere Themen:
 |