資料介紹
描述
很多時候,我們看到過不同顏色的廣告照明標志或文字從左向右滑動或反之亦然的圖像,主要是在購物中心或企業(yè)中,我們想知道擁有一個有多貴。但在這里我們將學習如何通過 ATMEGA328P-AU(SMD) 微控制器制作可擴展的廣告面板 (8x40)。
?
?
MAX7219模塊
我們的項目基于集成的 MAX7219CNG 是一個用于控制 8x8 矩陣的集成,對于我們的項目,我們將使用該模塊作為參考,以便能夠在單個 pcb 中組裝 5 個矩陣并配備 5mm LED。接下來我們就來看看這個模塊的特點:
- 串行控制接口:僅需 3 個引腳,我們就可以控制整個 LED 矩陣
- 簡單的外部電路——需要很少的外部元件
- 級聯(lián):多個MAX7219可以級聯(lián)。通過這種方式,您可以僅使用 Arduino 板的 3 個引腳來控制多個 LED 陣列。
- 低功耗模式:僅消耗 120 uA。
我們項目的矩陣是 5 個級聯(lián)的 max7219 模塊,如下所示:
?
在我們的例子中,有 5 個 max7219 級聯(lián)連接,我們只用 3 個 DIN-CS-CLOCK 引腳控制它。
現(xiàn)在我們將看到上傳程序的測試代碼,我們將使用 arduino IDE,為此我們必須知道我們需要 MAX7219 庫。這個庫非常好,可以讓我們將文本從一側(cè)移動到另一側(cè),為此我們必須將它包含在 Arduino 庫中。接下來我們將看到代碼:
/* Matriz de Desplazamiento LED 8x8 Usando Arduino UNO y el Controlador MAX7219 Debe instalar la libreria MaxMatrix para que funcione el programa Libreria:MaxMatrix
/* 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
#include
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[0]+1;>
{
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++;
}
}
在這個項目中,我們使用以下電子元件:
- 320顆5mm
- 5個MAX7219CNG IC
- 1 集成電路 CH340C
- 1 調(diào)節(jié)器 7805
- 2顆3MM
- 5只電解電容10UF16V
- 2個電解電容100UF16V
- 1 IC ATMEGA328P-AU(貼片)
- 5個電阻1206 OF 1K
- 1個按鈕
- 1個晶振16MHZ
- 2個電容22PF
- 1 個 D 型連接器
- 1 個直流插孔
- 5個電容104
- 5個電阻1/4W 1K
- 10個電阻1/4W 100歐姆
- 5 個電阻 1/4W 220 歐姆
- 2個電容100nf貼片1206
?
?
?
- 基于ATmega328P微控制器的Ardu鍵盤
- 基于ATmega328P的DIY macropad
- 簡單的獨立ATMega328p微控制器
- 帶ATMEGA328P的定制LoRa基礎(chǔ)模塊
- Atmega328P脈寬調(diào)制控制器
- 基于ATmega328P的電感計 6次下載
- 帶有ATMEGA328P設(shè)備的Arduino Uno門鈴項目
- 使用ATmega328p的迷你示波器
- 基于Atmega328P的PWM控制器卡
- 具有集成LoRa和CAN總線的ATMEGA328P模塊
- 最低系統(tǒng)ATmega328p開源
- Atmega328P不帶Arduino PCB設(shè)計
- ATMEGA328P詳細資料數(shù)據(jù)手冊免費下載 459次下載
- 1469416411ATmega328P中文翻譯資料 414次下載
- Arduino Atmega328P開發(fā)板軟件下載與安裝 130次下載
- 如何利用ATmega328P構(gòu)建一個可靠的LoRa設(shè)備 5274次閱讀
- 如何為ATmega328P刷bootloader? 6919次閱讀
- LED燈箱廣告制作步驟及注意事項 7090次閱讀
- 基于ATmega324p單片機實現(xiàn)便攜式控制器模塊的軟硬件設(shè)計 2850次閱讀
- 基于使用Atmega328P和ULN2003步進驅(qū)動器制造繪圖儀機器人 3370次閱讀
- 如何用空糖果盒制作LED面板? 3485次閱讀
- 如何使用BA328設(shè)計制作一個音調(diào)控制電路 6676次閱讀
- 微雪電子Arduino開發(fā)板UNO PLUS簡介 5411次閱讀
- 典型LED廣告燈線路原理圖 9893次閱讀
- 如何采用Arduino系統(tǒng)板進行單片機編程 6269次閱讀
- PCB雙面板的定義及制作流程 1w次閱讀
- 自制四軸飛行器之路 2.3w次閱讀
- 基于RDA5807P芯片的遙控收音機設(shè)計和制作 2.5w次閱讀
- cob光源和smd有什么區(qū)別_cob光源和smd光源區(qū)別介紹 5w次閱讀
- 12au7電子管引腳圖及參數(shù) 6.6w次閱讀
下載排行
本周
- 1使用單片機實現(xiàn)七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 2聯(lián)想E46L DAOLL6筆記本電腦圖紙
- 1.10 MB | 2次下載 | 5 積分
- 3MATLAB繪圖合集
- 27.12 MB | 2次下載 | 5 積分
- 4PR735,使用UCC28060的600W交錯式PFC轉(zhuǎn)換器
- 540.03KB | 1次下載 | 免費
- 5UCC38C42 30W同步降壓轉(zhuǎn)換器參考設(shè)計
- 428.07KB | 1次下載 | 免費
- 6DV2004S1/ES1/HS1快速充電開發(fā)系統(tǒng)
- 2.08MB | 1次下載 | 免費
- 7模態(tài)分解合集matlab代碼
- 3.03 MB | 1次下載 | 2 積分
- 8美的電磁爐維修手冊大全
- 1.56 MB | 1次下載 | 5 積分
本月
- 1使用單片機實現(xiàn)七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 2UC3842/3/4/5電源管理芯片中文手冊
- 1.75 MB | 15次下載 | 免費
- 3DMT0660數(shù)字萬用表產(chǎn)品說明書
- 0.70 MB | 13次下載 | 免費
- 4TPS54202H降壓轉(zhuǎn)換器評估模塊用戶指南
- 1.02MB | 8次下載 | 免費
- 5STM32F101x8/STM32F101xB手冊
- 1.69 MB | 8次下載 | 1 積分
- 6HY12P65/HY12P66數(shù)字萬用表芯片規(guī)格書
- 0.69 MB | 6次下載 | 免費
- 7華瑞昇CR216芯片數(shù)字萬用表規(guī)格書附原理圖及校正流程方法
- 0.74 MB | 6次下載 | 3 積分
- 8華瑞昇CR215芯片數(shù)字萬用表原理圖
- 0.21 MB | 5次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評論
查看更多