Example application for two 16x8 Adafruit LED Backpacks to make a 32 x 8 matrix.
Dependencies: Adafruit_32x8matrix
Fork of Adafruit_LEDBackpack_16x8_App by

This project uses two 16x8 1.2" LED Matrix + Backpacks stuck together to make a 32x8 double-length matrix.
Revision 5:f2820d1efc08, committed 2017-04-10
- Comitter:
- maclobdell
- Date:
- Mon Apr 10 14:43:42 2017 +0000
- Parent:
- 4:8641e4da6744
- Commit message:
- wait to display (send data) until frame buffer written. speeds performance significantly. Also added function to show text without scroll
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sat Apr 08 02:57:54 2017 +0000
+++ b/main.cpp Mon Apr 10 14:43:42 2017 +0000
@@ -18,6 +18,8 @@
Adafruit_16x8matrix matrix2 = Adafruit_16x8matrix(&i2c);
void scrollText(char * buffer, uint8_t buf_len, uint8_t speed);
+void showText(char * buffer, uint8_t buf_len, uint8_t duration);
+
void myidlethread(void);
int main() {
@@ -36,11 +38,18 @@
matrix.writeDisplay();
char buffer [50];
+
+ sprintf(buffer, "This\0");
+ showText(buffer,strlen(buffer), 1);
+ sprintf(buffer, "is\0");
+ showText(buffer,strlen(buffer), 1);
+ sprintf(buffer, "the\0");
+ showText(buffer,strlen(buffer), 1);
sprintf (buffer, "IoT Lab\0");
-
+
while(1)
{
- scrollText(buffer,strlen(buffer), 1000);
+ scrollText(buffer,strlen(buffer), 100);
Thread::attach_idle_hook (myidlethread);
@@ -67,18 +76,33 @@
for(int j=0; j<buf_len; j++){ /*loop over all of the chars in the text*/
if(xoff > 15){
matrix2.drawChar(xoff + j*6 - 16, 0, buffer[j], 1, 0, 1);
- matrix2.writeDisplay();
+
}else
{
matrix.drawChar(xoff + j*6, 0, buffer[j], 1, 0, 1);
- matrix.writeDisplay();
matrix2.drawChar(xoff + j*6 - 16, 0, buffer[j], 1, 0, 1);
- matrix2.writeDisplay();
}
}
xoff--; /* decrement x offset*/
- Thread::wait(1000/speed);
+ matrix.writeDisplay();
+ matrix2.writeDisplay();
+ Thread::wait(2000/speed);
matrix.clear();
matrix2.clear();
}
}
+
+
+void showText(char * buffer, uint8_t buf_len, uint8_t duration)
+{
+ for(int j=0; j<buf_len; j++){ /*loop over all of the chars in the text*/
+ matrix.drawChar(j*6, 0, buffer[j], 1, 0, 1);
+ matrix2.drawChar(j*6 - 16, 0, buffer[j], 1, 0, 1);
+ }
+ matrix.writeDisplay();
+ matrix2.writeDisplay();
+ Thread::wait(1000*duration);
+ matrix.clear();
+ matrix2.clear();
+
+}
\ No newline at end of file
