Hello,
I need help!!!
I want to create a scrolltext cross over 3 panels.what do I need?
I use an Arduino UNO and sketch from adafruit.
I want to create a scrolltext cross over 3 panels.what do I need?
At least 4608 bytes of RAM.
Thank you.
What kind of code do I need?
Working code.
Honestly - I have no idea what your code should be like, because I don't know what hardware you have (hint).
// scrolltext demo for Adafruit RGBmatrixPanel library.
// Demonstrates double-buffered animation on our 16x32 RGB LED matrix:
// Medium 16x32 RGB LED matrix panel - 6mm Pitch : ID 420 : $24.95 : Adafruit Industries, Unique & fun DIY electronics and kits
// Written by Limor Fried/Ladyada & Phil Burgess/PaintYourDragon
// for Adafruit Industries.
// BSD license, all text above must be included in any redistribution.
#include <Adafruit_GFX.h> // Core graphics library
#include <RGBmatrixPanel.h> // Hardware-specific library
// Similar to F(), but for PROGMEM string pointers rather than literals
#define F2(progmem_ptr) (const __FlashStringHelper *)progmem_ptr
#define CLK 8 // MUST be on PORTB! (Use pin 11 on Mega)
#define LAT A3
#define OE 9
#define A A0
#define B A1
#define C A2
// Last parameter = 'true' enables double-buffering, for flicker-free,
// buttery smooth animation. Note that NOTHING WILL SHOW ON THE DISPLAY
// until the first call to swapBuffers(). This is normal.
RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, true);
// Double-buffered mode consumes nearly all the RAM available on the
// Arduino Uno -- only a handful of free bytes remain. Even the
// following string needs to go in PROGMEM:
const char str[] PROGMEM = "Adafruit 16x32 RGB LED Matrix";
int textX = matrix.width(),
textMin = sizeof(str) * -12,
hue = 0;
int8_t ball[3][4] = {
{ 3, 0, 1, 1 }, // Initial X,Y pos & velocity for 3 bouncy balls
{ 17, 15, 1, -1 },
{ 27, 4, -1, 1 }
};
static const uint16_t PROGMEM ballcolor[3] = {
0x0080, // Green=1
0x0002, // Blue=1
0x1000 // Red=1
};
void setup() {
matrix.begin();
matrix.setTextWrap(false); // Allow text to run off right edge
matrix.setTextSize(2);
}
void loop() {
byte i;
// Clear background
matrix.fillScreen(0);
// Bounce three balls around
for(i=0; i<3; i++) {
// Draw 'ball'
matrix.fillCircle(ball[0], ball[1], 5, pgm_read_word(&ballcolor*));
_ // Update X, Y position*
ball[0] += ball*[2];
ball[1] += ball[3];
// Bounce off edges*
if((ball[0] == 0) || (ball*[0] == (matrix.width() - 1)))
ball[2] = -1;
if((ball[1] == 0) || (ball[1] == (matrix.height() - 1)))
ball[3] = -1;
}
// Draw big scrolly text on top*
* matrix.setTextColor(matrix.ColorHSV(hue, 255, 255, true));
matrix.setCursor(textX, 1);
matrix.print(F2(str));
// Move text left (w/wrap), increase hue*
* if((--textX) < textMin) textX = matrix.width();
hue += 7;
if(hue >= 1536) hue -= 1536;
// Update display*
* matrix.swapBuffers(false);
}*_
Now it run on the 3 panels the same, but I want one text over 3 panels.
...and that's why we ask you to use code tags.
Sorry I'm newbie.
I saw this comment.
// Double-buffered mode consumes nearly all the RAM available on the
// Arduino Uno -- only a handful of free bytes remain.
If that's true for one panel, imagine what it'll be like with three. (see reply #1)
Yep, looks like a '1284P with 128K flash & 16K SRAM (8 times that of an Uno and twice that of a Mega) is needed.
ok, if i take Arduino MEGA, what kind of code should I change?
Maybe I should take only 2 P10.
Assuming you mean this product, the blurb says
On the back there is a PCB with two IDC connectors (one input, one output: in theory you can chain these together)
but that
It requires a high speed processor and more RAM than the Arduino has!
Yes, actually, I just want a text that runs through 3 Panels.
MCLED:
Yes, actually, I just want a text that runs through 3 Panels.
And I've told you that you've made some bad choices.
So, now is the time to compromise.
Do you want to
A) reduce the number of colours?
B) reduce the smoothness of the animation?
C) pick a better-suited processor?
One text, one color, no animation
// scrolltext demo for Adafruit RGBmatrixPanel library.
// Demonstrates double-buffered animation on our 16x32 RGB LED matrix:
// http://www.adafruit.com/products/420
// Written by Limor Fried/Ladyada & Phil Burgess/PaintYourDragon
// for Adafruit Industries.
// BSD license, all text above must be included in any redistribution.
#include <Adafruit_GFX.h> // Core graphics library
#include <RGBmatrixPanel.h> // Hardware-specific library
// Similar to F(), but for PROGMEM string pointers rather than literals
#define F2(progmem_ptr) (const __FlashStringHelper *)progmem_ptr
#define CLK 8 // MUST be on PORTB! (Use pin 11 on Mega)
#define LAT A3
#define OE 9
#define A A0
#define B A1
#define C A2
// Last parameter = 'true' enables double-buffering, for flicker-free,
// buttery smooth animation. Note that NOTHING WILL SHOW ON THE DISPLAY
// until the first call to swapBuffers(). This is normal.
RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, true);
// Double-buffered mode consumes nearly all the RAM available on the
// Arduino Uno -- only a handful of free bytes remain. Even the
// following string needs to go in PROGMEM:
const char str[] PROGMEM = "TEST 1";
int textX = matrix.width(),
textMin = sizeof(str) * -12,
hue = 0;
void setup() {
matrix.begin();
matrix.setTextWrap(false); // Allow text to run off right edge
matrix.setTextSize(2);
}
void loop() {
byte i;
// Clear background
matrix.fillScreen(0);
// Draw big scrolly text on top
matrix.setTextColor(matrix.ColorHSV(hue, 255, 255, true));
matrix.setCursor(textX, 1);
matrix.print(F2(str));
// Move text left (w/wrap), increase hue
if((--textX) < textMin) textX = matrix.width();
hue += 7;
if(hue >= 1536) hue -= 1536;
// Update display
matrix.swapBuffers(false);
}
Now I use this sketch, it takes only 9.084 bytes (28%).
What code do I need to run over 3 panels?
Now I use this sketch, it takes only 9.084 bytes (28%).
It only take 9084 bytes of program (flash) memory.
How much RAM does it consume when running?
Again, I draw your attention to this
// Double-buffered mode consumes nearly all the RAM available on the
// Arduino Uno -- only a handful of free bytes remain.
There is no jumping balls any more, I think it will takes less memory or not?
only a crolling text. I ask you for the code for more panels.