37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来—小小的进步或是搞不定的问题,希望能够抛砖引玉。
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验二十二:MAX7219点阵显示模块(8X8 LED共阴屏幕)
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二十二:MAX7219点阵显示模块(8X8 LED共阴屏幕)
Arduino实验开源代码
/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验二十二:MAX7219点阵显示模块(8X8 LED共阴)1、下载安装库:GitHub | riyas-org/max7219 https://github.com/riyas-org/max72192、项目:应用多种函数,显示字母,笑脸等图案以及左向移动3、连线:VCC → 5VGND → GNDDIN → D11CS → D12CLK → D13*/#include <MaxMatrix.h>int DIN = 11; // DIN pin of MAX7219 moduleint CLK = 13; // CLK pin of MAX7219 moduleint CS = 12; // CS pin of MAX7219 moduleint maxInUse = 1;MaxMatrix m(DIN, CS, CLK, maxInUse);char A[] = {4, 8,B01111110,B00010001,B00010001,B01111110,};char B[] = {4, 8,B01111111,B01001001,B01001001,B00110110,};char smile01[] = {8, 8,B00111100,B01000010,B10010101,B10100001,B10100001,B10010101,B01000010,B00111100};char smile02[] = {8, 8,B00111100,B01000010,B10010101,B10010001,B10010001,B10010101,B01000010,B00111100};char smile03[] = {8, 8,B00111100,B01000010,B10100101,B10010001,B10010001,B10100101,B01000010,B00111100};void setup() {m.init(); // MAX7219 initializationm.setIntensity(8); // initial led matrix intensity, 0-15}void loop() {// Seting the LEDs On or Off at x,y or row,column positionm.setDot(6,2,true);delay(1000);m.setDot(6,3,true);delay(1000);m.clear(); // Clears the displayfor (int i=0; i<8; i++){m.setDot(i,i,true);delay(300);}m.clear();// Displaying the character at x,y (upper left corner of the character) m.writeSprite(2, 0, A);delay(1000);m.writeSprite(2, 0, B);delay(1000);m.writeSprite(0, 0, smile01);delay(1000);m.writeSprite(0, 0, smile02);delay(1000);m.writeSprite(0, 0, smile03);delay(1000);for (int i=0; i<8; i++){m.shiftLeft(false,false);delay(300);}m.clear();}
/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验二十二:MAX7219点阵显示模块(8X8 LED共阴)1、下载库 https://www.pjrc.com/teensy/arduino_libraries/Matrix_Sprite.zip2、项目:快速扫描所有64个点(国外网站上的示例)3、连线:VCC → 5VGND → GNDDIN 接 D11 (MOSI)CS 接 D10 (SS)CLK 接 D13 (SCK)*/#include <Sprite.h> // Sprite before Matrix#include <Matrix.h>const int numChips = 1;//DIN, CLK, CS, #chipsMatrix myLeds = Matrix(11, 13, 10, numChips);void setup() {myLeds.clear();}void loop() {byte x, y;// light one LED at a time, scanning left to right// and top to bottom... useful for testing the matrixfor (y=0; y<8; y++) {for (x=0; x<(numChips * 8); x++) {myLeds.write(x, y, HIGH);delay(20);myLeds.write(x, y, LOW);}}}
实验开源图形编程(Mind+、编玩边学)
编玩边学平台
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二十二:MAX7219点阵显示模块(8X8 LED共阴)
1、下载库 https://www.pjrc.com/teensy/arduino_libraries/Matrix_Sprite.zip
2、项目之一:快速扫描所有64个点阵(对于测试矩阵很有用)
/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验二十二:MAX7219点阵显示模块(8X8 LED共阴)1、下载库 https://www.pjrc.com/teensy/arduino_libraries/Matrix_Sprite.zip2、项目之一:快速扫描所有64个点阵(对于测试矩阵很有用)3、连线:MAX7219 UNOVCC →→→→→ 5VGND →→→→→ GNDDIN →→→→→ D12 (MOSI)CS →→→→→ D11 (SS)CLK →→→→→ D10 (SCK)*/#include <Sprite.h> // Sprite before Matrix#include <Matrix.h>const int numChips = 1;//DIN, CLK, CS, #chipsMatrix myLeds = Matrix(12, 10, 11, numChips);void setup() {myLeds.clear();}void loop() {byte x, y;// 一次点亮一个 LED,从左到右扫描// 从上到下......对于测试矩阵很有用for (y = 0; y < 8; y++) {for (x = 0; x < (numChips * 8); x++) {myLeds.write(x, y, HIGH);delay(40);myLeds.write(x, y, LOW);}}}
Arduino实验场景图
下载相关驱动库
1、 https://github.com/riyas-org/max7219
2、 https://github.com/wayoda/LedControl
3、 https://www.pjrc.com/teensy/arduino_libraries/Matrix_Sprite.zip
4、 Https://github.com/shaai/Arduino_LED_matrix_sketch/archive/master.zip
最简单的8*8点阵屏的程序
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二十二:MAX7219点阵显示模块(8X8 LED共阴)
项目之二:在屏幕上闪烁欢迎面孔(间隔1秒)
/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验二十二:MAX7219点阵显示模块(8X8 LED共阴)项目之二:在屏幕上闪烁欢迎面孔(间隔1秒)接脚连线:MAX7219 UNOVCC →→→→→ 5VGND →→→→→ GNDDIN →→→→→ D12(数据)CS →→→→→ D11(负载)CLK →→→→→ D10(时钟)
*/#include <Sprite.h>
#include <Matrix.h>
Matrix myMatrix = Matrix(12, 10, 11);// Matrix(DIN, CLK, CS)void setup(){
}void loop(){myMatrix.clear(); // 显示清屏delay(1000);myMatrix.write(2, 5, HIGH); // 打开相关位置的像素(点阵)myMatrix.write(3, 2, HIGH);myMatrix.write(3, 6, HIGH);myMatrix.write(4, 6, HIGH);myMatrix.write(5, 6, HIGH);myMatrix.write(6, 2, HIGH);myMatrix.write(6, 6, HIGH);myMatrix.write(7, 5, HIGH);delay(1000);
}