bonjour je revient sur un ancien projet (clôturer depuis) sur un module led 16X32X2 qui ne fonctionnais pas j'ai re tester de diffèrent façon et j'ai pas grand chose de plus
commander par un arduino mega
lien du site ou j'ai acheter les module led
jai tester diffèrent codes exemples de la librairie
code tester
/*--------------------------------------------------------------------------------------
dmd_clock_readout.cpp
Example clock readout project for the Freetronics DMD, a 512 LED matrix display
panel arranged in a 32 x 16 layout.
Copyright (C) 2011 Marc Alexander (info <at> freetronics <dot> com)
See http://www.freetronics.com/dmd for resources and a getting started guide.
Note that the DMD library uses the SPI port for the fastest, low overhead writing to the
display. Keep an eye on conflicts if there are any other devices running from the same
SPI port, and that the chip select on those devices is correctly set to be inactive
when the DMD is being written to.
USAGE NOTES
-----------
- Place the DMD library folder into the "arduino/libraries/" folder of your Arduino installation.
- Get the TimerOne library from here: http://code.google.com/p/arduino-timerone/downloads/list
or download the local copy from the DMD library page (which may be older but was used for this creation)
and place the TimerOne library folder into the "arduino/libraries/" folder of your Arduino installation.
- Restart the IDE.
- In the Arduino IDE, you can open File > Examples > DMD > dmd_demo, or dmd_clock_readout, and get it
running straight away!
* The DMD comes with a pre-made data cable and DMDCON connector board so you can plug-and-play straight
into any regular size Arduino Board (Uno, Freetronics Eleven, EtherTen, USBDroid, etc)
* Please note that the Mega boards have SPI on different pins, so this library does not currently support
the DMDCON connector board for direct connection to Mega's, please jumper the DMDCON pins to the
matching SPI pins on the other header on the Mega boards.
This example code is in the public domain.
The DMD library is open source (GPL), for more see DMD.cpp and DMD.h
--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------
Includes
--------------------------------------------------------------------------------------*/
#include <SPI.h> //SPI.h must be included as DMD is written by SPI (the IDE complains otherwise)
#include <DMD.h> //
#include <TimerOne.h> //
#include "Arial_black_16.h"
//Fire up the DMD library as dmd
DMD dmd(1,1);
/*--------------------------------------------------------------------------------------
Interrupt handler for Timer1 (TimerOne) driven DMD refresh scanning, this gets
called at the period set in Timer1.initialize();
--------------------------------------------------------------------------------------*/
void ScanDMD()
{
dmd.scanDisplayBySPI();
}
/*--------------------------------------------------------------------------------------
Show clock numerals on the screen from a 4 digit time value, and select whether the
flashing colon is on or off
--------------------------------------------------------------------------------------*/
void ShowClockNumbers( unsigned int uiTime, byte bColonOn )
{
dmd.clearScreen(true);
dmd.drawChar( 1, 3,'0'+((uiTime%10000)/1000), GRAPHICS_NORMAL ); // thousands
dmd.drawChar( 8, 3, '0'+((uiTime%1000) /100), GRAPHICS_NORMAL ); // hundreds
dmd.drawChar( 17, 3, '0'+((uiTime%100) /10), GRAPHICS_NORMAL ); // tens
dmd.drawChar( 25, 3, '0'+ (uiTime%10), GRAPHICS_NORMAL ); // units
if( bColonOn )
dmd.drawChar( 15, 3, ':', GRAPHICS_OR ); // clock colon overlay on
else
dmd.drawChar( 15, 3, ':', GRAPHICS_NOR ); // clock colon overlay off
}
/*--------------------------------------------------------------------------------------
setup
Called by the Arduino architecture before the main loop begins
--------------------------------------------------------------------------------------*/
void setup(void)
{
//initialize TimerOne's interrupt/CPU usage used to scan and refresh the display
Timer1.initialize( 5000 ); //period in microseconds to call ScanDMD. Anything longer than 5000 (5ms) and you can see flicker.
Timer1.attachInterrupt( ScanDMD ); //attach the Timer1 interrupt to ScanDMD which goes to dmd.scanDisplayBySPI()
//clear/init the DMD pixels held in RAM
dmd.clearScreen( true ); //true is normal (all pixels off), false is negative (all pixels on)
dmd.selectFont(Arial_Black_16);
}
/*--------------------------------------------------------------------------------------
loop
Arduino architecture main loop
--------------------------------------------------------------------------------------*/
void loop(void)
{
unsigned int ui;
// 10 x 14 font clock, including demo of OR and NOR modes for pixels so that the flashing colon can be overlayed
ui = 1234;
ShowClockNumbers( ui, true );
delay( 1000 );
ShowClockNumbers( ui, false );
delay( 1000 );
ShowClockNumbers( ui, true );
delay( 1000 );
ShowClockNumbers( ui, false );
delay( 1000 );
ui = 2345;
ShowClockNumbers( ui, true );
delay( 1000 );
ShowClockNumbers( ui, false );
delay( 1000 );
ShowClockNumbers( ui, true );
delay( 1000 );
ShowClockNumbers( ui, false );
delay( 1000 );
}
et
#include <DMD.h>
#include <TimerOne.h>
#include "SystemFont5x7.h"
#include "Arial_black_16.h"
#define ROW 1
#define COLUMN 1
#define FONT Arial_Black_16
DMD led_module(ROW, COLUMN);
void scan_module()
{
led_module.scanDisplayBySPI();
}
void setup()
{
Timer1.initialize(2000);
Timer1.attachInterrupt(scan_module);
led_module.clearScreen( true );
}
void loop()
{
led_module.selectFont(FONT);
led_module.drawMarquee("Welcome to Circuit Digest",25, (32 * ROW), 0);
long start = millis();
long timming = start;
boolean flag = false;
while (!flag)
{
if ((timming + 20) < millis())
{
flag = led_module.stepMarquee(-1, 0);
timming = millis();
}
}
}
mes sa marche pas
apres plusieurs recherche je suis tomber sur le meme câblage qui me parais bon
dans le pire des cas j'ai rien qui s'allume dans le meilleur j'ai deux ligne sauf si je branche pin A sur vcc ou la j'ai 1ligne sur 3 qui fonctionne
(petite différence avec l'ancien que j'avais pas fait c'est de lier le gnd de l'Arduino avec celle de l'alimentions externe mes sa ne marche toujours pas
si quelqu'un a une ider de pour quoi sa ne marche pas
j'ai trouver un exemple/librairie avec un esp32 je vais tester