ADVERTISING PANEL V1

by ElectronicaABC in Circuits > Electronics

95 Views, 0 Favorites, 0 Comments

ADVERTISING PANEL V1

WhatsApp Image 2022-01-27 at 3.40.59 PM.jpeg

Many times we have seen advertising lighting signs of different colors or images with texts sliding from left to right or vice versa, mostly in shopping centers or businesses, and we wonder how expensive it is to have one. But here we will learn how to make an expandable advertising panel (8x40) through the ATMEGA328P-AU(SMD) microcontroller.

Supplies

GERBER DEL PCB

https://mega.nz/file/Kd40GBCa#hh5WNz4eHy24ywPyZN9Gq8O_wNC7hQWsYoROIYh5yrU

DATASHEET ATMEGA328P-AU

https://mega.nz/file/CM5imBTb#XwQ2-X6fQGMp3nv5a_pfC13LZuHpoJuD1Lt_-7jMom8

DATASHEET CH340C

https://mega.nz/file/XBgAGJQK#qQgzdaxvzKvIpuA2bXqwoNivkQ017ndzww7F2CLIXHc

DATASHEET MAX7219CNG

https://mega.nz/file/6ZwyiLyL#1NVYfOsd7tRC3arU-hVszt4Vbili4ojUbbTBU0zxqwM

DATASHEET 7805 SMD

https://mega.nz/file/aMo03ZIB#rrRcrYjqTRfAxjCnJBQ62hXYYR4ltB39aGpndoEJwjo

Module MAX7219

max7219modulo.jpg
matrix8x8.jpg

MAX7219 MODULE

Our project is based on the integrated MAX7219CNG is an integrated to control 8x8 matrices, for our project we will use this module as a reference to be able to assemble 5 matrices in a single pcb and with 5mm leds. Next we will see the characteristics of this module:

•       Serial control interface: with only 3 pins we can control an entire matrix of LEDs

•      Simple external circuit – requires few external components

•      Cascading: Multiple MAX7219s can be cascaded. In this way you can control several LED arrays using only 3 pins of the Arduino board.

•      Low power mode: can consume only 120 uA.

The matrix of our project is 5 max7219 modules connected in cascade as we will see below:


CODE

CASCADA MAX7219.png

In our case there are 5 max7219 connected in cascade and we only control it with 3 DIN-CS-CLOCK pins.

Now we will see the test code to upload our program, We will use the arduino IDE, for this we must know that we need the MAX7219 library. This library is very good and will allow us to move the text from one side to another, for this we must include it in the Arduino libraries. Next we will see the code:

/* Matriz de Desplazamiento LED 8x8 
 
Usando Arduino UNO y el Controlador MAX7219 
Debe instalar la libreria MaxMatrix para que funcione el programa
Libreria: MaxMatrix
Autor: Marcelo Moraes (Brazil)
Por: http://elprofegarcia.com/
Tienda: http://dinastiatecnologica.com/


Conexiones del Arduino al Modulo MAX7219:
ARDUINIO    MAX7219
 10          CLK
 9           CS
 8           DIN
 GND         GND
 5V          VCC
 
Conexion  de la cascada de MAX7219(1)  al MAX7219(2)
MAX7219(1)   MAX7219(2)  
  CLK          CLK
  CS           CS
  DOUT         DIN
  GND          GND
  VCC          VCC
La cascada se hace conectano de los pines Superiores a los inferiores del modulo MAX7219
y los modulos se instalan de derecha a izquierda        
*/


#include <MaxMatrix.h>
#include <avr/pgmspace.h>


PROGMEM unsigned char const CH[] = {
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "
5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #
4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $
5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %
5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &
1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '
3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (
3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )
5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *
5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +
2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,
4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -
2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .
4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0
3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1
4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2
4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3
4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4
4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5
4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6
4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7
4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8
4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9
2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :
2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;
3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <
3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =
3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >
4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?
5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C
4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E
4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H
3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I
4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K
4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M
5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P
4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q
4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R
4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T
4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U
5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V
5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X
5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y
4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z
2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [
4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash
2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]
3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat
4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _
2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a
4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b
4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c
4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d
4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f
4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g
4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h
3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j
4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k
3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l
5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m
4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o
4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p
4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q
4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u
5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v
5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x
4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y
3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |
3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }
4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~
};


int data = 8;    // DIN pin del modulo MAX7219
int load = 9;    // CS pin del modulo MAX7219
int clock = 10;  // CLK pin del modulo MAX7219 


int maxInUse = 5;    //Cambie este valor dependiendo del numero de matrices que use


MaxMatrix m(data, load, clock, maxInUse); // Define el modulo


byte buffer[10];




char mensaje1[] = " Electronica ABC proyectos y circuitos"; //Escriba el mensaje a desplegar 
char mensaje2[] = " Patrocinado por JLCPCB    5PCBS A $2  https://jlcpcb.com/RAV";


void setup(){
  pinMode(8,OUTPUT);       //Conexion a DIN
  pinMode(9,OUTPUT);       //Conexion a CS
  pinMode(10,OUTPUT);      //Conexion a CLK
  m.init();               // inicializa el modulo
  m.setIntensity(8);      // intencidad de los puntos de la matriz, entre 1-5
  Serial.begin(9600);     // inicializa el puerto serial
}


void loop(){
  byte c;
                                  // Lee el mensaje que llega por el puerto serial
  while (Serial.available() > 0){
    byte c = Serial.read();
    Serial.println(c, DEC);
    printCharWithShift(c, 100);
  }
  delay(100);                 // Tiempo de inicio de un nuevo Ciclo de mensajes
  m.shiftLeft(false, true);
  
  
  // Despliega los mensajes almacenados en las variables 
 
  printStringWithShift(mensaje1, 100);       // El ultimo termino se usa para la velocidad del mensaje 
  printStringWithShift(mensaje2, 100);


}


void printCharWithShift(char c, int shift_speed){    // Imprime caracteres
  if (c < 32) return;
  c -= 32;
  memcpy_P(buffer, CH + 7*c, 7);
  m.writeSprite(maxInUse*8, 0, buffer);
  m.setColumn(maxInUse*8 + buffer[0], 0);
  
  for (int i=0; i<buffer[0]+1; i++) 
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}


void printStringWithShift(char* s, int shift_speed){        // Imprime cadena de caracteres
  while (*s != 0){
    printCharWithShift(*s, shift_speed);
    s++;
  }
}


void printString(char* s)                            // Imprime cadena
{
  int col = 0;
  while (*s != 0)
  {
    if (*s < 32) continue;
    char c = *s - 32;
    memcpy_P(buffer, CH + 7*c, 7);
    m.writeSprite(col, 0, buffer);
    m.setColumn(col + buffer[0], 0);
    col += buffer[0] + 1;
    s++;
  }

In this project we use the following electronic components:

•      320 leds 5mm

•      5 MAX7219CNG ICs

•      1 IC CH340C

•      1 regulator 7805

•      2 leds 3MM

•      5 electrolyte capacitors 10UF16V

•      2 electrolyte capacitors 100UF16V

•      1 IC ATMEGA328P-AU(SMD)

•      5 resistors 1206 OF 1K

•      1 button

•      1 crystal 16MHZ

•      2 capacitors 22PF

•      1 D-TYPE connector

•      1 DC JACK

•      5 capacitors 104

•      5 resistors 1/4W 1K

•      10 resistors 1/4W 100 ohm

•      5 resistors 1/4W 220 ohm

•      2 capacitors 100nf smd 1206

JLCPCB

JLCPCB ORDENAR AHORA.png
JLCPCB PANEL.png

This project is thanks to JLCPCB professional PCB manufacturers No. 1 worldwide

Get your pcbs at only $2 for 5pcbs of 100mm x 100mm

we thank JLCPCB for the professional pcbs you can purchase

5 pcbs a $ 2

order your pcb here:

https://jlcpcb.com/RAV

Gerber:

https://mega.nz/file/Kd40GBCa#hh5WNz4eHy24ywPyZN9Gq8O_wNC7hQWsYoROIYh5yrU