Simple 8x8 LED Matrix controller which interfaces with a Processing GUI over serial to display sketches
Dependencies: Multi_WS2811 mbed
Fork of Multi_WS2811_test by
Revision 27:88c2abdf5eb9, committed 2014-01-03
- Comitter:
- bikeNomad
- Date:
- Fri Jan 03 15:45:56 2014 +0000
- Parent:
- 26:ac5d0e18c7b6
- Child:
- 28:dbe551a3dd64
- Commit message:
- made rainbows change with accelerometer.
Changed in this revision
| MMA8451Q.lib | Show annotated file Show diff for this revision Revisions of this file |
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MMA8451Q.lib Fri Jan 03 15:45:56 2014 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/users/emilmont/code/MMA8451Q/#c4d879a39775
--- a/main.cpp Thu Jan 02 19:44:43 2014 +0000
+++ b/main.cpp Fri Jan 03 15:45:56 2014 +0000
@@ -2,6 +2,9 @@
#include "WS2811.h"
#include "Colors.h"
#include "TSISensor.h"
+#include "MMA8451Q.h"
+
+#define MMA8451_I2C_ADDRESS (0x1d<<1)
// per LED: 3 * 20 mA = 60mA max
// 60 LEDs: 60 * 60mA = 3600 mA max
@@ -21,6 +24,8 @@
Timer timeRunning;
TSISensor touchSensor;
+MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
+
Ticker touchTicker;
float touchPercentage;
unsigned frames;
@@ -107,13 +112,15 @@
for (;;) {
unsigned running = timeRunning.read_us();
- float hueShift = running / rainbowPeriod;
+ // float hueShift = running / rainbowPeriod;
if (!printed && running >= 10000000U) {
pc.printf("%u frames in %u usec = %u frames / sec\r\n", frames, running, frames * 1000000 / running);
printed = true;
}
- showRainbow(lightStrip1, sat, brite, hueShift);
- showRainbow(lightStrip2, sat, brite, hueShift + 0.5);
+ float xyz[3];
+ acc.getAccAllAxis(xyz);
+ showRainbow(lightStrip1, sat, brite, xyz[0]);
+ showRainbow(lightStrip2, sat, brite, xyz[1]);
WS2811::startDMA();
frames ++;
