Message board with arduino uno rev 3

hello,

I have a question about my message board.
All my connections are properly connected.
The only problem is that all my display show the same thing.
I have a photo attached.

Does anyone know how to solve this problem?

Kind regards,
Joey

image1-geconverteerd.pdf (348 KB)

Hello,

I 'm making a message board with the MAX7219CNG IC.
Now i have a problem.
All four of my displays show the same.
I've attached some photo's

Does anyone know the fault?

Kind regards,
Joey

image0.pdf (123 KB)

image1-geconverteerd.pdf (348 KB)

Please post your images as JPG or PNG files and make them visible in your Post so we don't have to download them. See this Simple Image Posting Guide

Please also post your program. If it is too long to include in your Post using the code button </> then please attach your .ino file

...R

// Use the Parola library to scroll text on the display
//
// Demonstrates the use of the scrolling function to display text received
// from the serial interface
//
// User can enter text on the serial monitor and this will display as a
// scrolling message on the display.
// Speed for the display is controlled by a pot on SPEED_IN analog in.
// Scrolling direction is controlled by a switch on DIRECTION_SET digital in.
// Invert ON/OFF is set by a switch on INVERT_SET digital in.
//
// UISwitch library can be found at https://github.com/MajicDesigns/MD_UISwitch
// MD_MAX72XX library can be found at https://github.com/MajicDesigns/MD_MAX72XX
//

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

// set to 1 if we are implementing the user interface pot, switch, etc
#define USE_UI_CONTROL 0

#if USE_UI_CONTROL
#include <MD_UISwitch.h>
#endif

// Turn on debug statements to the serial output
#define DEBUG 0

#if DEBUG
#define PRINT(s, x) { Serial.print(F(s)); Serial.print(x); }
#define PRINTS(x) Serial.print(F(x))
#define PRINTX(x) Serial.println(x, HEX)
#else
#define PRINT(s, x)
#define PRINTS(x)
#define PRINTX(x)
#endif

// Define the number of devices we have in the chain and the hardware interface
// NOTE: These pin numbers will probably not work with your hardware and may
// need to be adapted
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 11
#define CLK_PIN   13
#define DATA_PIN  11
#define CS_PIN    10

// HARDWARE SPI
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// SOFTWARE SPI
//MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

// Scrolling parameters
#if USE_UI_CONTROL
const uint8_t SPEED_IN = A5;
const uint8_t DIRECTION_SET = 8;  // change the effect
const uint8_t INVERT_SET = 9;     // change the invert

const uint8_t SPEED_DEADBAND = 5;
#endif // USE_UI_CONTROL

uint8_t scrollSpeed = 25;    // default frame delay value
textEffect_t scrollEffect = PA_SCROLL_LEFT;
textPosition_t scrollAlign = PA_LEFT;
uint16_t scrollPause = 2000; // in milliseconds

// Global message buffers shared by Serial and Scrolling functions
#define BUF_SIZE 75
char curMessage[BUF_SIZE] = { "" };
char newMessage[BUF_SIZE] = { "Hello!" };
bool newMessageAvailable = true;

#if USE_UI_CONTROL

MD_UISwitch_Digital uiDirection(DIRECTION_SET);
MD_UISwitch_Digital uiInvert(INVERT_SET);

void doUI(void)
{
 // set the speed if it has changed
 {
   int16_t speed = map(analogRead(SPEED_IN), 0, 1023, 10, 150);

   if ((speed >= ((int16_t)P.getSpeed() + SPEED_DEADBAND)) ||
     (speed <= ((int16_t)P.getSpeed() - SPEED_DEADBAND)))
   {
     P.setSpeed(speed);
     scrollSpeed = speed;
     PRINT("\nChanged speed to ", P.getSpeed());
   }
 }

 if (uiDirection.read() == MD_UISwitch::KEY_PRESS) // SCROLL DIRECTION
 {
   PRINTS("\nChanging scroll direction");
   scrollEffect = (scrollEffect == PA_SCROLL_LEFT ? PA_SCROLL_RIGHT : PA_SCROLL_LEFT);
   P.setTextEffect(scrollEffect, scrollEffect);
   P.displayClear();
   P.displayReset();
 }

 if (uiInvert.read() == MD_UISwitch::KEY_PRESS)  // INVERT MODE
 {
   PRINTS("\nChanging invert mode");
   P.setInvert(!P.getInvert());
 }
}
#endif // USE_UI_CONTROL

void readSerial(void)
{
 static char *cp = newMessage;

 while (Serial.available())
 {
   *cp = (char)Serial.read();
   if ((*cp == '\n') || (cp - newMessage >= BUF_SIZE-2)) // end of message character or full buffer
   {
     *cp = '\0'; // end the string
     // restart the index for next filling spree and flag we have a message waiting
     cp = newMessage;
     newMessageAvailable = true;
   }
   else  // move char pointer to next position
     cp++;
 }
}

void setup()
{
 Serial.begin(57600);
 Serial.print("\n[Parola Scrolling Display]\nType a message for the scrolling display\nEnd message line with a newline");

#if USE_UI_CONTROL
 uiDirection.begin();
 uiInvert.begin();
 pinMode(SPEED_IN, INPUT);

 doUI();
#endif // USE_UI_CONTROL

 P.begin();
 P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect, scrollEffect);
}

void loop()
{
#if USE_UI_CONTROL
 doUI();
#endif // USE_UI_CONTROL

 if (P.displayAnimate())
 {
   if (newMessageAvailable)
   {
     strcpy(curMessage, newMessage);
     newMessageAvailable = false;
   }
   P.displayReset();
 }
 readSerial();



Moderator edit:
</mark> <mark>[code]</mark> <mark>

</mark> <mark>[/code]</mark> <mark>
tags added.

image0.pdf (123 KB)

You say you have 4 displays but your code says you have 11 devices in the chain

#define MAX_DEVICES 11

It will also depend on how you have them wired up. Please post a schematic.

jvdooij:
Does anyone know the fault?

It may be in your code, but "#define MAX_DEVICES 11" appears correct.

You need to illustrate how you have connected these displays.