//Se incluyen las libreria #include "mbed.h" #include "PololuLedStrip.h" #include "MMA8451Q.h" //Define las variables #define LED_COUNT 48 #define MMA8451_I2C_ADDRESS (0x1d<<1) #define REG_OUT_X_MSB 0x01 #define REG_OUT_Y_MSB 0x03 #define REG_OUT_Z_MSB 0x05 PololuLedStrip ledStrip(PTE20); rgb_color colors[LED_COUNT]; PinName const SDA = PTE25; PinName const SCL = PTE24; MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS); float hue; rgb_color hsvToRgb(float , float , float ); int main() { while(1) { hue=abs(acc.getAccZ()); for(int i = 0; i < 48; i++) { colors[i] = hsvToRgb(hue,1.0,1.0); } ledStrip.write(colors, LED_COUNT); wait_ms(10); } } //transformacion de HSV a RGB rgb_color hsvToRgb(float h, float s, float v) { int i = floor(h * 6); float f = h * 6 - i; float p = v * (1 - s); float q = v * (1 - f * s); float t = v * (1 - (1 - f) * s); float r = 0, g = 0, b = 0; switch(i % 6){ case 0: r = v; g = t; b = p; break; case 1: r = q; g = v; b = p; break; case 2: r = p; g = v; b = t; break; case 3: r = p; g = q; b = v; break; case 4: r = t; g = p; b = v; break; case 5: r = v; g = p; b = q; break; } return (rgb_color){r * 255, g * 255, b * 255}; }