“开源LED点阵屏幕/zh”的版本间的差异
| 第52行: | 第52行: | ||
成功的话则可以在点阵屏上显示0到50计数和流动显示mcookie字符,由于点阵分辨率只有8*8,因此20以后的数字屏幕会显示不全。(下一篇教程中会有多个点阵屏幕级联) | 成功的话则可以在点阵屏上显示0到50计数和流动显示mcookie字符,由于点阵分辨率只有8*8,因此20以后的数字屏幕会显示不全。(下一篇教程中会有多个点阵屏幕级联) | ||
[[File: LEDMatrix.jpg|600px|center|thumb]] | [[File: LEDMatrix.jpg|600px|center|thumb]] | ||
| + | |||
| + | *程序 | ||
| + | <source lang="cpp"> | ||
| + | #include "Microduino_Matrix.h" | ||
| + | |||
| + | uint8_t Addr[MatrixPix_X][MatrixPix_Y] = { | ||
| + | { 64} | ||
| + | }; | ||
| + | |||
| + | Matrix display = Matrix(Addr); | ||
| + | |||
| + | void setup() { | ||
| + | Serial.begin(115200); // See the connection status in Serial Monitor | ||
| + | Wire.begin(); | ||
| + | |||
| + | //getDeviceAddr | ||
| + | for (int a = 0; a < display.getMatrixNum(); a++) { | ||
| + | Serial.print(display.getDeviceAddr(a)); | ||
| + | Serial.print(" "); | ||
| + | } | ||
| + | Serial.println(""); | ||
| + | |||
| + | //setLedColor | ||
| + | for (int y = 0; y < display.getHeight() * 8; y++) { | ||
| + | for (int x = 0; x < display.getWidth() * 8; x++) { | ||
| + | randomSeed(analogRead(A0)); | ||
| + | display.setLedColor(x, y, random(0, 255), random(0, 255), random(0, 255)); //x, y, r, g, b | ||
| + | delay(5); | ||
| + | } | ||
| + | } | ||
| + | delay(1000); | ||
| + | display.clearDisplay(); | ||
| + | |||
| + | //clearColor | ||
| + | display.clearColor(); | ||
| + | //writeString H | ||
| + | display.writeString("Microduino", MODE_H, 20, 0); //string, MODE, time ,y | ||
| + | display.clearDisplay(); | ||
| + | //writeString V | ||
| + | display.writeString("Microduino", MODE_V, 20, 0); //string, MODE, time ,x | ||
| + | display.clearDisplay(); | ||
| + | } | ||
| + | |||
| + | int i; | ||
| + | void loop() { | ||
| + | i = display.getStringWidth("mCookie!"); | ||
| + | display.setColor(255, 255, 0); | ||
| + | display.setFontMode(MODE_H); | ||
| + | for (int a = display.getWidth() * 8; a > -i - display.getWidth() * 8; a--) { | ||
| + | display.setCursor(a, 0); //x, y | ||
| + | display.print("mCookie!"); | ||
| + | delay(20); | ||
| + | } | ||
| + | display.clearDisplay(); | ||
| + | |||
| + | i = display.getStringHeight("mCookie!"); | ||
| + | display.setColor(255, 0, 255); | ||
| + | display.setFontMode(MODE_V); | ||
| + | for (int a = display.getHeight() * 8; a > -i - display.getHeight() * 8; a--) { | ||
| + | display.setCursor(0, a); //x, y | ||
| + | display.print("mCookie!"); | ||
| + | delay(20); | ||
| + | } | ||
| + | display.clearDisplay(); | ||
| + | |||
| + | unsigned long timer = millis(); | ||
| + | display.setColor(0, 255, 255); | ||
| + | display.setFontMode(MODE_H); | ||
| + | while (millis() - timer < 5000) { | ||
| + | display.setCursor(0, 0); //x, y | ||
| + | display.print((millis() - timer) / 100); | ||
| + | delay(20); | ||
| + | } | ||
| + | display.clearDisplay(); | ||
| + | } | ||
| + | </source> | ||
2016年2月19日 (五) 07:01的版本
| Language | English |
|---|
概述
材料清单
文档IIC驱动库: Adafruit-LED-Backpack-Library:https://github.com/adafruit/Adafruit-LED-Backpack-Library 图形库: Adafruit-GFX-Library:https://github.com/adafruit/Adafruit-GFX-Library
测试程序:文件:01 Microduino DotMatrix.zip 调试步骤一:将microduino模块叠在一块(Microduino Core + Microduino USBTTL + Microduino-Cube-S1),连接LEDMatrix与Cube-S1的IIC引脚。 步骤二:下载使用到的库,将其解压到IDE的libraries文件夹内。 步骤三:下载示例程序并打开,编译通过后选择好板卡(Microduino Core)直接下载。 成功的话则可以在点阵屏上显示0到50计数和流动显示mcookie字符,由于点阵分辨率只有8*8,因此20以后的数字屏幕会显示不全。(下一篇教程中会有多个点阵屏幕级联) 文件:LEDMatrix.jpg 600px
#include "Microduino_Matrix.h"
uint8_t Addr[MatrixPix_X][MatrixPix_Y] = {
{ 64}
};
Matrix display = Matrix(Addr);
void setup() {
Serial.begin(115200); // See the connection status in Serial Monitor
Wire.begin();
//getDeviceAddr
for (int a = 0; a < display.getMatrixNum(); a++) {
Serial.print(display.getDeviceAddr(a));
Serial.print(" ");
}
Serial.println("");
//setLedColor
for (int y = 0; y < display.getHeight() * 8; y++) {
for (int x = 0; x < display.getWidth() * 8; x++) {
randomSeed(analogRead(A0));
display.setLedColor(x, y, random(0, 255), random(0, 255), random(0, 255)); //x, y, r, g, b
delay(5);
}
}
delay(1000);
display.clearDisplay();
//clearColor
display.clearColor();
//writeString H
display.writeString("Microduino", MODE_H, 20, 0); //string, MODE, time ,y
display.clearDisplay();
//writeString V
display.writeString("Microduino", MODE_V, 20, 0); //string, MODE, time ,x
display.clearDisplay();
}
int i;
void loop() {
i = display.getStringWidth("mCookie!");
display.setColor(255, 255, 0);
display.setFontMode(MODE_H);
for (int a = display.getWidth() * 8; a > -i - display.getWidth() * 8; a--) {
display.setCursor(a, 0); //x, y
display.print("mCookie!");
delay(20);
}
display.clearDisplay();
i = display.getStringHeight("mCookie!");
display.setColor(255, 0, 255);
display.setFontMode(MODE_V);
for (int a = display.getHeight() * 8; a > -i - display.getHeight() * 8; a--) {
display.setCursor(0, a); //x, y
display.print("mCookie!");
delay(20);
}
display.clearDisplay();
unsigned long timer = millis();
display.setColor(0, 255, 255);
display.setFontMode(MODE_H);
while (millis() - timer < 5000) {
display.setCursor(0, 0); //x, y
display.print((millis() - timer) / 100);
delay(20);
}
display.clearDisplay();
}
|