Comments (26)
Sorry, I don't understand.
Please explain more clearly, what is a problem
from dmd_stm32.
this is p6 module using PICO board
from dmd_stm32.
working fine after few hour display showing garbage please check video.
VIDEO-2023-05-30-14-33-12.mp4
At the garbage time Restart the controller going to normal working
same issue I will face p10 red color module.
from dmd_stm32.
Good afternoon
Too little information to give advice
This behavior can be caused by many reasons - errors in the code, power problems, some kind of electromagnetic interference.
For example, one of the options is memory problems in the library code or in the main program. Could you please provide a example code, where the problem is observed.
from dmd_stm32.
please check
/*--------------------------------------------------------------------------------------
Demo for RGB panels
DMD_STM32a example code for STM32F103xxx board
------------------------------------------------------------------------------------- */
#include <Wire.h>
#include <EEPROM.h>
#include <IRremote.h>
#include "DMD_RGB.h"
#define RGB32x32plainS8 34 // 32x32 1/8
//###########################################################################################
template
class DMD_RGB<RGB32x32plainS8, COL_DEPTH> : public DMD_RGB_BASE2<COL_DEPTH>
{
public:
DMD_RGB(uint8_t* mux_list, byte _pin_nOE, byte _pin_SCLK, uint8_t* pinlist,
byte panelsWide, byte panelsHigh, bool d_buf = false) :
DMD_RGB_BASE2<COL_DEPTH>(3, mux_list, _pin_nOE, _pin_SCLK, pinlist,
panelsWide, panelsHigh, d_buf, COL_DEPTH, 8, 32, 32)
{}
protected:
uint16_t get_base_addr(int16_t x, int16_t y) override {
this->transform_XY(x, y);
uint8_t pol_y = y % this->pol_displ;
x += (y / this->DMD_PIXELS_DOWN) * this->WIDTH;
uint16_t base_addr = (pol_y % this->nRows) * this->x_len + (x / this->DMD_PIXELS_ACROSS) * this->multiplex * this->DMD_PIXELS_ACROSS;
if (pol_y / this->nRows) base_addr += x % this->DMD_PIXELS_ACROSS ;
else base_addr += x % this->DMD_PIXELS_ACROSS + this->DMD_PIXELS_ACROSS;
return base_addr;
}
};
//################################################################################
byte second1, minute1, hour1, dayOfWeek1, dayOfMonth1, month1,year1;
char a[15];
char b[15];
// Fonts includes
#include "st_fonts/SystemFont5x7.h"
#include "st_fonts/max32.h"
#include "st_fonts/Font6x16.h"
#include "st_fonts/Font7x16.h"
#include "st_fonts/Basket_16.h"
#pragma GCC diagnostic ignored "-Wnarrowing"
#pragma GCC diagnostic ignored "-Woverflow"
#include "gfx_fonts/GlametrixLight12pt7b.h"
#include "gfx_fonts/FreeSans9pt7b.h"
#pragma GCC diagnostic warning "-Wnarrowing"
#pragma GCC diagnostic warning "-Woverflow"
//Number of panels in x and y axis
#define DISPLAYS_ACROSS 2
#define DISPLAYS_DOWN 1
#define ENABLE_DUAL_BUFFER true
#define ARDUINO_ARCH_RP2040
// ==== DMD_RGB pins ====
// mux pins - A, B, C... all mux pins must be selected from same port!
#define DMD_PIN_A 6
#define DMD_PIN_B 7
#define DMD_PIN_C 8
#define DMD_PIN_D 9
#define DMD_PIN_E 10
// put all mux pins at list
uint8_t mux_list[] = { DMD_PIN_A , DMD_PIN_B , DMD_PIN_C , DMD_PIN_D , DMD_PIN_E };
// pin OE must be one of PB0 PB1 PA6 PA7
#define DMD_PIN_nOE 15
#define DMD_PIN_SCLK 12
#define Start_Timer 26
#define Stop_Timer 27
#define Reset_Timer 28
// Pins for R0, G0, B0, R1, G1, B1 channels and for clock.
// By default the library uses RGB color order.2
// If you need to change this - reorder the R0, G0, B0, R1, G1, B1 pins.
// All this pins also must be selected from same port!
uint8_t custom_rgbpins[] = { 11, 16,17,18,19,20,21 }; // CLK, R0, G0, B0, R1, G1, B1
// Fire up the DMD object as dmd<MATRIX_TYPE, COLOR_DEPTH>
// We use 64x32 matrix with 16 scans and 4bit color:
DMD_RGB <RGB32x32plainS8 , COLOR_4BITS> dmd(mux_list, DMD_PIN_nOE, DMD_PIN_SCLK, custom_rgbpins, DISPLAYS_ACROSS, DISPLAYS_DOWN, ENABLE_DUAL_BUFFER);
// --- Define fonts ----
// DMD.h old style font
DMD_Standard_Font UkrRusArial_F(SystemFont5x7);
DMD_Standard_Font basket_32(max32);
DMD_Standard_Font font6x16(Font6x16);
DMD_Standard_Font font7x16(Font7x16);
DMD_Standard_Font basket_16(Basket_16);
// GFX font with sepatate parts for Latin and Cyrillic chars
DMD_GFX_Font GlametrixL((uint8_t*)&GlametrixLight12pt7b, (uint8_t*)&GlametrixLight12pt8b_rus, 0x80, 13);
//###############################################################
uint16_t col[] = {
dmd.Color888(255,0, 0), // red
dmd.Color888(0, 255, 0), // green
dmd.Color888(0, 0, 255), // blue
dmd.Color888(0, 255, 255), // blue
dmd.Color888(255, 255, 0), // blue
dmd.Color888(255, 255, 255), // blue
};
//##############################################################
int utf8_rus(char* dest, const unsigned char* src) {
uint16_t i, j;
for ( i =0, j =0; src[i]; i++) {
if ((src[i] == 0xD0 )&& src[i+1]) { dest[j++] = src[++i] - 0x10;}
else if ((src[i] == 0xD1 )&& src[i+1]) {dest[j++] = src[++i] + 0x30; }
else dest[j++] = src[i];
}
dest[j] ='\0';
return j;
}
const int dimmerValues[11] = {10, 25 , 50, 64 , 100 , 160, 210, 500, 750, 1000,1024};
byte Select_RTC = 0; // 1 - MCP7940 0 - Ds1307
byte ON = 0;
int16_t brightness=6;
int8_t switchhour=12;
int8_t Timer_start = 0;
int8_t Timer_counter =0;
int8_t prestate = 0;
void setup(void)
{
// initialize DMD objects
dmd.init();
Wire.begin();
delay(100);
EEPROM.begin(512);
delay(100);
brightness = EEPROM.read(1);
Timer_counter = EEPROM.read(2);;
delay(10);
dmd.setBrightness(dimmerValues[brightness]);
Serial.begin(9600);
Serial.println("PICO P10 RTC");
pinMode(Start_Timer, INPUT_PULLUP);
pinMode(Stop_Timer, INPUT_PULLUP);
pinMode(Reset_Timer, INPUT_PULLUP);
digitalWrite(Start_Timer,HIGH);
digitalWrite(Stop_Timer,HIGH);
digitalWrite(Reset_Timer,HIGH);
delay(1000);
}
/--------------------------------------------------------------------------------------
loop
Arduino architecture main loop
--------------------------------------------------------------------------------------/
void loop(void)
{
dmd.selectFont(&basket_16);
dmd.setTextColor(0, 0);
Serial.print("WELCOME PICO P4 RGB");
// Cycle for tests:
// -- running texts moving at x and y axis with single and double speed
// -- vertical scrolling message
while (1)
{
if(ON == 0)
{
int start_timer = digitalRead(Start_Timer);
int stop_timer = digitalRead(Stop_Timer);
int reset_timer = digitalRead(Reset_Timer);
//#########################read ball count
if(start_timer == LOW && prestate == 0)
{
hour1 =0;minute1=0;second1=0;
setDate_DS1307();
Timer_start = 1;
prestate = 1;
}
else if(stop_timer == LOW && prestate == 0 && Timer_start == 1)
{
Timer_start = 2;
Timer_counter++;
EEPROM.write(2, Timer_counter);
EEPROM.commit();
delay(100);
prestate = 1;
}
else if(reset_timer == LOW && prestate == 0)
{
Timer_start = 2;
Timer_counter =0;
hour1 =0;minute1=0;second1=0;
setDate_DS1307();
EEPROM.write(2, Timer_counter);
EEPROM.commit();
delay(100);
dmd.clearScreen(true);
prestate = 1;
}
else if (start_timer == HIGH && stop_timer == HIGH && reset_timer == HIGH)
{
prestate = 0;
}
if(Timer_start == 1)
{
if(Select_RTC == 0)getDate_DS1307();
if(Select_RTC == 1)getDate_MCP7940();
}
//sprintf(a,"%02d:%02d:%02d",hour1,minute1,second1);
//sprintf(b,"%02d:%02d:%02d",dayOfMonth1,month1,year1);
dmd.selectFont(&basket_16);
sprintf(a,"%02d:%02d",minute1,second1);
sprintf(b,"%4d",Timer_counter);
dmd.drawString(17,0,a,sizeof(a),col[1]);
dmd.selectFont(&basket_16);
dmd.drawString(24,17,b,sizeof(b),col[2]);
dmd.selectFont(&UkrRusArial_F);
dmd.drawString(1,5,"CT",3,col[4]);
dmd.drawString(1,22,"QTY",4,col[4]);
dmd.swapBuffers(true);
}
}
}
//###################################### DS3232 clock code ########################
byte decToBcd(byte val)
{
return ( (val/1016) + (val%10) );
}
byte bcdToDec(byte val)
{
return ( (val/1610) + (val%16) );
}
void setDate_DS1307()
{
Wire.beginTransmission(104);
Wire.write(0);
Wire.write(decToBcd(second1));
Wire.write(decToBcd(minute1));
Wire.write(decToBcd(hour1));
Wire.write(decToBcd(dayOfWeek1));
Wire.write(decToBcd(dayOfMonth1));
Wire.write(decToBcd(month1));
Wire.write(decToBcd(year1));
Wire.endTransmission();
}
void getDate_DS1307()
{
Wire.beginTransmission(104);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(104,7);
second1 = bcdToDec(Wire.read() & 0x7f);
minute1 = bcdToDec(Wire.read());
hour1 = bcdToDec(Wire.read() & 0x3f);
dayOfWeek1 = bcdToDec(Wire.read());
dayOfMonth1 = bcdToDec(Wire.read());
month1 = bcdToDec(Wire.read());
year1 = bcdToDec(Wire.read());
}
//##################################### end of code ####################
void setDate_MCP7940()
{
Wire.beginTransmission(111);
Wire.write(0);
Wire.write(decToBcd(second1) | 0x80);
Wire.write(decToBcd(minute1));
Wire.write(decToBcd(hour1));
Wire.write(decToBcd(dayOfWeek1) | 0x08);
Wire.write(decToBcd(dayOfMonth1));
Wire.write(decToBcd(month1));
Wire.write(decToBcd(year1));
Wire.endTransmission();
}
void getDate_MCP7940()
{
Wire.beginTransmission(111);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(111,7);
second1 = bcdToDec(Wire.read() & 0x7f);
minute1 = bcdToDec(Wire.read());
hour1 = bcdToDec(Wire.read() & 0x3f);
dayOfWeek1 = bcdToDec(Wire.read() & 0x07);
dayOfMonth1 = bcdToDec(Wire.read());
month1 = bcdToDec(Wire.read());
year1 = bcdToDec(Wire.read());
}
from dmd_stm32.
I am not sure is this a cause of the problem or not, but there are errors in the code.
At the end of the loop()
dmd.drawString(17,0,a,sizeof(a),col[1]);
The using of sizeof()
is incorrect in this case, it returns the size of array rather than a length of string. Use the strlen()
instead:
dmd.drawString(17,0,a,strlen(a),col[1]);
There are a several lines with the same error.
Next, these two methods are wrong:
byte decToBcd(byte val)
{
return ( (val/1016) + (val%10) );
}
byte bcdToDec(byte val)
{
return ( (val/1610) + (val%16) );
}
Since the calculation is carried out in integers, the first expression, (val/1610)
, is always zero and whole result will be val % 10
in first function and val %16
in second.
from dmd_stm32.
thanks sir
i will change this code and check
from dmd_stm32.
this is copy past issue
byte decToBcd(byte val)
{
return ( (val/1016) + (val%10) );
}
byte bcdToDec(byte val)
{
return ( (val/1610) + (val%16) );
}
from dmd_stm32.
(val/10x16)
from dmd_stm32.
i get new error in p10 red module
Untitled.4.mp4
please check and give the solution sir
from dmd_stm32.
from dmd_stm32.
please check txt file code sir
from dmd_stm32.
Showing junk display at this time PICO Serial data received
from dmd_stm32.
Sorry but your code seems to have a some errors:
What are you try to achieve in this line?
if((Adjust_Temp/1000)== '+') {
your Adjust_Temp is integer, comparing it with char not making sense for me
This line is not the one with errors...
If you find a bug in a library, please prepare a short code example where the bug appears. I don't have the ability to run your entire project with modbus, serial and sensors.
from dmd_stm32.
i am trying to find this bug ,every 2 to 3 hour create this issue
from dmd_stm32.
please need help
every 1 hour, how to restart your library or Software restart for raspberry pi pico
from dmd_stm32.
how to restart your library or Software restart for raspberry pi pico
Hi
To soft restart a Pico board you can use a watchdog feature:
https://github.com/raspberrypi/pico-examples/blob/master/watchdog/hello_watchdog/hello_watchdog.c
from dmd_stm32.
I completely remove DHT library code ,Now no error on the led display
thanks for your support
from dmd_stm32.
I have another one question
i have custom led board 74 hc595 and uln2803 driver ic
1/2 scan method it is possible drive your library
16x48 pixel
from dmd_stm32.
have custom led board 74 hc595 and uln2803 driver ic
Uln2803 driver? Are you sure? It is not common for LED panels using this driver.
Is the panel has a HUB75 connector ?
Please show the pictures
from dmd_stm32.
it is old board design using railway application
from dmd_stm32.
1 and 9 column connected 16x48 total 6 74hc595 ic
8 and 16 connected
tomorrow will send picture
from dmd_stm32.
Right side is first input for 74hc595
from dmd_stm32.
this code working only move 6 char One shiftRegiter load One char
please help
int latchPin = 12; // pis connected to shift registors
int clockPin = 9;
int dataPin = 8;
const int mrpin = 11; // Connects to the DS pin of 74HC595
int pins [8] = {16 ,17,18, 19, 20,21, 10, 6}; // common cathode pinsint pins [8] = {20, 19,18, 17, 16, 6, 10, 21}; // common cathode pins
byte Railway_8x16[][16] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Code for char num 32
0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x18,0x18, // Code for char num 33
0x00,0x1B,0x1B,0x1B,0x1B,0x1B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Code for char num 34
0x00,0xB0,0xB0,0xD8,0xFE,0xFE,0xD8,0xD8,0x6C,0x6C,0x6C,0xFF,0xFF,0x6C,0x36,0x36, // Code for char num 35
0x0C,0x1E,0x3F,0x33,0x33,0x33,0x07,0x0E,0x1C,0x38,0x38,0x33,0x33,0x33,0x3F,0x1E, // Code for char num 36
0x00,0x1E,0x33,0x33,0x33,0x33,0x33,0x33,0x9E,0x40,0x40,0x20,0x10,0x10,0x08,0x04, // Code for char num 37
0x00,0x3E,0x7F,0x63,0x63,0x63,0x03,0xFE,0xFE,0x63,0x63,0x63,0x63,0x63,0x7F,0x7E, // Code for char num 38
0x00,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Code for char num 39
0x00,0x18,0x0C,0x0C,0x0C,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0C,0x0C, // Code for char num 40
0x00,0x03,0x06,0x0C,0x0C,0x0C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0C,0x0C,0x0C, // Code for char num 41
0x00,0x18,0x5A,0xFE,0x18,0xFE,0x5A,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Code for char num 42
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0xFE,0xFE,0x30,0x30,0x30,0x00,0x00, // Code for char num 43
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x02,0x03, // Code for char num 44
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Code for char num 45
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18, // Code for char num 46
0x00,0xC0,0x60,0x60,0x60,0x30,0x30,0x18,0x18,0x18,0x0C,0x0C,0x06,0x06,0x06,0x03, // Code for char num 47
0x00,0x7C,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0x7C, // Code for char num 48
0x00,0x0C,0x1C,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, // Code for char num 49
0x00,0x7C,0xFE,0xC6,0xC6,0xC6,0x06,0x0C,0x0C,0x18,0x38,0x30,0x60,0xC0,0xFE,0xFE, // Code for char num 50
0x00,0x7C,0xFE,0xC6,0xC6,0x06,0x0E,0x1C,0x30,0x1C,0x0E,0x06,0xC6,0xC6,0xFE,0x7C, // Code for char num 51
0x00,0x0C,0x0C,0x1C,0x3C,0x3C,0x3C,0x6C,0x6C,0x6C,0xCC,0xFE,0xFE,0x0C,0x0C,0x0C, // Code for char num 52
0x00,0xFE,0xFE,0xC0,0xC0,0xC0,0xFC,0xFE,0x06,0x06,0x06,0x06,0xC6,0xC6,0xFE,0x7C, // Code for char num 53
0x00,0x7C,0xFE,0xC6,0xC6,0xC0,0xC0,0xFC,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0x7C, // Code for char num 54
0x00,0xFE,0xFE,0xC6,0x06,0x06,0x06,0x0C,0x0C,0x18,0x18,0x30,0x30,0x60,0x60,0x60, // Code for char num 55
0x00,0x7C,0xFE,0xC6,0xC6,0xC6,0xC6,0x7C,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0x7C, // Code for char num 56
0x00,0x7C,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0x7E,0x06,0x06,0xC6,0xC6,0xFE,0x7C, // Code for char num 57
0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00, // Code for char num 58
0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00, // Code for char num 59
0x00,0x00,0x00,0x00,0x00,0x40,0x60,0x38,0x1C,0x06,0x1C,0x38,0x60,0x40,0x00,0x00, // Code for char num 60
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x00,0x00,0xFE,0xFE,0x00,0x00,0x00, // Code for char num 61
0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x0E,0x1C,0x30,0x1C,0x0E,0x03,0x01,0x00,0x00, // Code for char num 62
0x00,0x1E,0x3F,0x33,0x33,0x30,0x30,0x18,0x0C,0x06,0x06,0x06,0x06,0x00,0x06,0x06, // Code for char num 63
0x00,0xFE,0x01,0x01,0x71,0xD9,0xD9,0xC1,0xF1,0xD9,0xD9,0xD9,0xF1,0x01,0x01,0xFE, // Code for char num 64
0x00,0x7C,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6, // Code for char num 65
0x00,0xFC,0xFE,0xC6,0xC6,0xC6,0xC6,0xFC,0xFC,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0xFC, // Code for char num 66
0x00,0x7C,0xFE,0xC6,0xC6,0xC6,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC6,0xC6,0xFE,0x7C, // Code for char num 67
0x00,0xFC,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0xFC, // Code for char num 68
0x00,0xFE,0xFE,0xC0,0xC0,0xC0,0xC0,0xF8,0xF8,0xC0,0xC0,0xC0,0xC0,0xC0,0xFE,0xFE, // Code for char num 69
0x00,0xFE,0xFE,0xC0,0xC0,0xC0,0xC0,0xF8,0xF8,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0, // Code for char num 70
0x00,0x7C,0xFE,0xC6,0xC6,0xC0,0xC0,0xDE,0xDE,0xD6,0xC6,0xC6,0xC6,0xC6,0xFE,0x7C, // Code for char num 71
0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6, // Code for char num 72
0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, // Code for char num 73
0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0xC6,0xC6,0xC6,0xFE,0x7C, // Code for char num 74
0x00,0xC6,0xCC,0xCC,0xD8,0xD8,0xD0,0xF0,0xE0,0xF0,0xF0,0xD8,0xD8,0xCC,0xCC,0xC6, // Code for char num 75
0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFE,0xFE, // Code for char num 76
0x00,0x82,0xC6,0xEE,0xFE,0xD6,0xD6,0xD6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6, // Code for char num 77
0x00,0xC6,0xC6,0xC6,0xC6,0xE6,0xF6,0xF6,0xDE,0xDE,0xCE,0xCE,0xC6,0xC6,0xC6,0xC6, // Code for char num 78
0x00,0x7C,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0x7C, // Code for char num 79
0x00,0xFC,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0xFC,0xC0,0xC0,0xC0,0xC0,0xC0, // Code for char num 80
0x00,0x7C,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xCE,0xCE,0xC6,0xFF,0x7F, // Code for char num 81
0x00,0xFC,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0xF8,0xD8,0xCC,0xCC,0xCE,0xC6,0xC6, // Code for char num 82
0x00,0x7C,0xFE,0xC6,0xC6,0xC6,0xE0,0x70,0x38,0x1E,0x0E,0x06,0xC6,0xC6,0xFE,0x7C, // Code for char num 83
0x00,0xFE,0xFE,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, // Code for char num 84
0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0x7C, // Code for char num 85
0x00,0xC3,0xC3,0xC3,0x66,0x66,0x66,0x66,0x66,0x24,0x3C,0x3C,0x3C,0x3C,0x18,0x18, // Code for char num 86
0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xD6,0xD6,0xD6,0xD6,0xFE,0xEE,0xC6,0xC6,0x82, // Code for char num 87
0x00,0xC6,0xC6,0x6C,0x6C,0x6C,0x38,0x38,0x38,0x38,0x38,0x6C,0x6C,0x6C,0xC6,0xC6, // Code for char num 88
0x00,0xC3,0xC3,0x66,0x66,0x66,0x3C,0x3C,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18, // Code for char num 89
0x00,0xFE,0xFE,0x06,0x0C,0x0C,0x08,0x18,0x10,0x30,0x20,0x60,0x60,0xC0,0xFE,0xFE, // Code for char num 90
0x00,0x1C,0x1E,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, // Code for char num 91
0x00,0x06,0x06,0x0C,0x0C,0x0C,0x0C,0x18,0x18,0x18,0x30,0x30,0x30,0x30,0x60,0x60, // Code for char num 92
0x00,0x0E,0x1E,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, // Code for char num 93
0x00,0x08,0x1C,0x36,0x36,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Code for char num 94
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Code for char num 95
0x00,0x00,0x38,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Code for char num 96
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x3F,0x33,0x30,0x3E,0x33,0x33,0x3F,0x36, // Code for char num 97
0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x3F,0x1F, // Code for char num 98
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x3F,0x33,0x03,0x03,0x03,0x33,0x3F,0x1E, // Code for char num 99
0x00,0x30,0x30,0x30,0x30,0x30,0x30,0x3E,0x3F,0x33,0x33,0x33,0x33,0x33,0x3F,0x36, // Code for char num 100
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x3F,0x33,0x33,0x3F,0x03,0x33,0x3F,0x1E, // Code for char num 101
0x00,0x06,0x07,0x03,0x03,0x03,0x03,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03, // Code for char num 102
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x3F,0x33,0x33,0x33,0x33,0x33,0x3F,0x3E, // Code for char num 103
0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x1B,0x3F,0x37,0x33,0x33,0x33,0x33,0x33,0x33, // Code for char num 104
0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, // Code for char num 105
0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, // Code for char num 106
0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x33,0x1B,0x1B,0x0F,0x0F,0x0F,0x1B,0x1B,0x33, // Code for char num 107
0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, // Code for char num 108
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9B,0xFF,0x77,0x33,0x33,0x33,0x33,0x33,0x33, // Code for char num 109
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x3F,0x37,0x33,0x33,0x33,0x33,0x33,0x33, // Code for char num 110
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x3F,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E, // Code for char num 111
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x3F,0x1F, // Code for char num 112
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x3F,0x33,0x33,0x33,0x33,0x33,0x3F,0x3E, // Code for char num 113
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x3F,0x37,0x33,0x03,0x03,0x03,0x03,0x03, // Code for char num 114
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x3F,0x33,0x07,0x1C,0x30,0x33,0x3F,0x1E, // Code for char num 115
0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x07,0x06, // Code for char num 116
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3E, // Code for char num 117
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x12,0x1E,0x1E,0x1E,0x0C,0x0C,0x0C, // Code for char num 118
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x32,0xFE,0xFE,0xFE,0xCC,0xCC,0xCC, // Code for char num 119
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x36,0x36,0x1C,0x1C,0x1C,0x36,0x36,0x63, // Code for char num 120
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x12,0x1E,0x1E,0x1E,0x1E,0x0C,0x0C, // Code for char num 121
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x18,0x18,0x0C,0x06,0x06,0x3F,0x3F, // Code for char num 122
0x00,0x38,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x06,0x03,0x06,0x0C,0x0C,0x0C,0x0C, // Code for char num 123
0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, // Code for char num 124
0x00,0x0E,0x1E,0x18,0x18,0x18,0x18,0x18,0x18,0x30,0x60,0x30,0x18,0x18,0x18,0x18, // Code for char num 125
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCE,0xFE,0xE6,0x00,0x00,0x00,0x00, // Code for char num 126
0x00,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x00 // Code for char num 127
};
char a[20]="ABCD12";
static char Message[20] = "0";
void setup() {
Serial.begin(9600); // Serial begin
pinMode(latchPin, OUTPUT); // Pin configuration
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(mrpin, OUTPUT);
for (int i = 0; i < 8; i++) { // for loop is used to configure common cathodes
pinMode(pins[i], OUTPUT);
digitalWrite(pins[i], HIGH);
}
}
void loop() {
digitalWrite(mrpin, HIGH);
for (int j = 0; j < 8; j++)
{
digitalWrite(latchPin, LOW);
digitalWrite(pins[j], LOW);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[5]-32][j+8]);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[5]-32][j]);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[4]-32][j+8]);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[4]-32][j]);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[3]-32][j+8]);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[3]-32][j]);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[2]-32][j+8]);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[2]-32][j]);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[1]-32][j+8]);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[1]-32][j]);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[0]-32][j+8]);
shiftOut(dataPin, clockPin, LSBFIRST, Railway_8x16[a[0]-32][j]);
digitalWrite(latchPin, HIGH);
delayMicroseconds(1000);
digitalWrite(latchPin, LOW);
for (int i = 0; i < 12; i++) {
shiftOut(dataPin, clockPin, LSBFIRST, B00000000);
}
digitalWrite(latchPin, HIGH);
digitalWrite(pins[j], HIGH);
}
}
from dmd_stm32.
total 6 74hc595 ic
It seems to me that for 16x48 panel it should be 12 74hc595 ic in total.
What for do you plan to use this panels? Without major code modification, they will not work with this library. I could add support for these panels to the code if I had them available. Without panels for tests, this is hardly possible.
Why would you like to use exact this panels? Do you have dozens or hundreds? Apparently, this is a very old design and it is unlikely that anyone will actively use them. If you have only a few panels, it is hardly worth spending so much effort on them, it is more profitable to buy modern ones.
from dmd_stm32.
ok thanks
from dmd_stm32.
Related Issues (20)
- Error When Uploading HOT 1
- Sending matrix include values of image in format RGB565 via FTDI to receive through USART1 in STM32F411CEU6 HOT 16
- Add a new panel 80x40 s10 ShiftReg DP5125D RUL5158C HOT 14
- flickering problem in 2 panels HOT 28
- STM32F407VGT6 + 32*16 (hub12) mono LED panel HOT 23
- P2.5 (128x64) RGB Panel with stm32F103RCT6 and stm32F411CE test results HOT 16
- I need help with RGB panel and STM32F103 HOT 13
- Проблема с панелью 128*64 пикселя HOT 33
- Artefacts on 128x64 panel using overclocked RP2040 board
- how to add number with different background HOT 4
- Scrolling text is not smooth HOT 22
- RGB P5 MODULE PIN CONNECTION HOT 54
- Add a new panel p4 80x40 s10 TC7258, DP5125 HOT 8
- Pi Pico with P5 panels "crashing" the displays HOT 25
- issues with P8 40x20 1/5 scan panel HOT 11
- Add a new panel 128x64 s32 DP3364 driver HOT 3
- STM32CubeIDE HOT 1
- Switch On the Pico board Showing horizontal line after few second working HOT 10
- Add a new panel 32x16 s4 DP5125 HOT 4
- Multiline scrolling possible HOT 20
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dmd_stm32.