Hallo zusammen.
warum kann ich die Waveshare LED Matrix nicht mit einem ardiuno Uno betreiben?
Die pins 24-29 habe ich durch 8-3 ersetzt. Laut pinout von ardiono mega sollten es nur Digitale Pins ohne weiter Funktion sein.
Hallo zusammen.
warum kann ich die Waveshare LED Matrix nicht mit einem ardiuno Uno betreiben?
Die pins 24-29 habe ich durch 8-3 ersetzt. Laut pinout von ardiono mega sollten es nur Digitale Pins ohne weiter Funktion sein.
Wenn du das so machst und die Pins im Sketch anpasst müsste funktionieren.
Auf 2 --> 6 wurde das sogar vorgesehen
Computer sagt nein. Hab die pins noch den farben auf dem bild angepasst, ergebnis = 0
#include <RGBmatrixPanel.h>
int block=1;
int r = 5;
bool rsw = true;
#define CLK 11 // USE THIS ON ARDUINO MEGA
#define OE 9
#define LAT 10
#define A A0
#define B A1
#define C A2
#define D A3
#define R1 5
#define G1 6
#define B1 7
#define R2 2
#define G2 3
#define B2 4
RGBmatrixPanel matrix(A, B, C, D, CLK, LAT, OE, false, 64);
void setup() {
Reginit();
matrix.begin();
// draw a pixel in solid white
matrix.drawPixel(0, 0, matrix.Color333(7, 7, 7));
delay(100);
matrix.fillScreen(matrix.Color333(0, 0, 0));
// draw some text!
matrix.setTextSize(1); // size 1 == 8 pixels high
matrix.setTextWrap(false); // Don't wrap at end of line - will do ourselves
//matrix.setCursor(8, 2); // start at top left, with 8 pixel of spacing
//char *str = "Ruggiero";
//matrix.setTextColor(matrix.Color333(1,1,1));
//matrix.println(str);
}
void loop() {
switch(block){
case 1:
matrix.setCursor(8, 10);
matrix.setTextColor(matrix.Color333(r,0,2));
matrix.println("Besetzt !");
break;
case 2:
matrix.setCursor(5, 16);
matrix.setTextColor(matrix.Color333(r,0,0));
matrix.println("Komm rein");
break;
}
if( rsw){
r = 1+r;
}
else{
r=r-1;
}
if(r >= 7){
rsw=false;
}
else if(r <= 5){
rsw=true;
}
delay(150);
}
//Reginit
void Reginit()
{
//mega
// pinMode(24, OUTPUT); //R1
// pinMode(25, OUTPUT); //G1
// pinMode(26, OUTPUT); //B1
// pinMode(27, OUTPUT); //R2
// pinMode(28, OUTPUT); //G2
// pinMode(29, OUTPUT); //B2
pinMode(R1, OUTPUT); //R1
pinMode(G1, OUTPUT); //G1
pinMode(B1, OUTPUT); //B1
pinMode(R2, OUTPUT); //R2
pinMode(G2, OUTPUT); //G2
pinMode(B2, OUTPUT); //B2
pinMode(CLK, OUTPUT);
pinMode(OE, OUTPUT);
pinMode(LAT, OUTPUT);
digitalWrite(OE, HIGH);
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
int MaxLed = 64;
int C12[16] = {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int C13[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0};
for (int l = 0; l < MaxLed; l++)
{
int y = l % 16;
digitalWrite(R1, LOW);
digitalWrite(G1, LOW);
digitalWrite(B1, LOW);
digitalWrite(G2, LOW);
digitalWrite(G2, LOW);
digitalWrite(B2, LOW);
if (C12[y] == 1)
{
digitalWrite(R1, HIGH);
digitalWrite(G1, HIGH);
digitalWrite(B1, HIGH);
digitalWrite(G2, HIGH);
digitalWrite(G2, HIGH);
digitalWrite(B2, HIGH);
}
if (l > MaxLed - 12)
{
digitalWrite(LAT, HIGH);
}
else
{
digitalWrite(LAT, LOW);
}
digitalWrite(CLK, HIGH);
delayMicroseconds(2);
digitalWrite(CLK, LOW);
}
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
// Send Data to control register 12
for (int l = 0; l < MaxLed; l++)
{
int y = l % 16;
digitalWrite(R1, LOW);
digitalWrite(G1, LOW);
digitalWrite(B1, LOW);
digitalWrite(G2, LOW);
digitalWrite(G2, LOW);
digitalWrite(B2, LOW);
if (C13[y] == 1)
{
digitalWrite(R1, HIGH);
digitalWrite(G1, HIGH);
digitalWrite(B1, HIGH);
digitalWrite(G2, HIGH);
digitalWrite(G2, HIGH);
digitalWrite(B2, HIGH);
}
if (l > MaxLed - 13)
{
digitalWrite(LAT, HIGH);
}
else
{
digitalWrite(LAT, LOW);
}
digitalWrite(CLK, HIGH);
delayMicroseconds(2);
digitalWrite(CLK, LOW);
}
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
}
// Input a value 0 to 24 to get a color value.
// The colours are a transition r - g - b - back to r.
uint16_t Wheel(byte WheelPos) {
if(WheelPos < 8) {
return matrix.Color333(7 - WheelPos, WheelPos, 0);
} else if(WheelPos < 16) {
WheelPos -= 8;
return matrix.Color333(0, 7-WheelPos, WheelPos);
} else {
WheelPos -= 16;
return matrix.Color333(WheelPos, 0, 7 - WheelPos);
}
}
Warum verstümmelst du die Meldung bis zu Unkenntlichkeit?
Hier zu sehen: RGB-matrix-Panel/RGBmatrixPanel.cpp at master · adafruit/RGB-matrix-Panel · GitHub
Es werden 32*64*3=6144 Byte auf dem Heap benötigt.
Der Uno hat allerdings überhaupt nur 2k RAM.
Klartext:
Der Elefant passt leider nicht in die Butterdose.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.