Skip to content

Instantly share code, notes, and snippets.

@heatxsink
Created July 7, 2012 03:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save heatxsink/dae96d4658745cd966ec to your computer and use it in GitHub Desktop.
Save heatxsink/dae96d4658745cd966ec to your computer and use it in GitHub Desktop.
#include "TinyWireM.h"
#include <Arduino.h>
void setup() {
pinMode(3, OUTPUT);
TinyWireM.begin();
delay(100);
blinkm_stop_script(0x01);
blinkm_stop_script(0x02);
blinkm_stop_script(0x03);
blinkm_stop_script(0x04);
}
void loop() {
/*
delay(50);
blinkm_change_color(0x01, 0x00, 0x00, 0x00);
blinkm_change_color(0x02, 0x00, 0x00, 0x00);
blinkm_change_color(0x03, 0x00, 0x00, 0x00);
blinkm_change_color(0x04, 0x00, 0x00, 0x00);
blinkm_change_color(0x01, 0x00, 0x00, 0x00);
blinkm_change_color(0x02, 0x00, 0x00, 0x00);
blinkm_change_color(0x03, 0x00, 0x00, 0x00);
blinkm_change_color(0x04, 0x00, 0x00, 0x00);
delay(500);
*/
run_pattern(1000, 1, 0, 0);
run_pattern(1000, 0, 1, 0);
run_pattern(1000, 0, 0, 1);
//red_light_pattern(500);
//blink_led(3);
}
static void blink_led(int pin) {
digitalWrite(pin, HIGH);
delay(1000);
digitalWrite(pin, LOW);
delay(1000);
}
byte addresses[] = { 0x01, 0x02, 0x03, 0x04 };
static void run_pattern(int interval, int red, int green, int blue) {
int second_interval = interval * 2;
for (int i = 0; i < sizeof(addresses); i++) {
byte address = addresses[i];
if(red == 1) {
blinkm_change_color(address, 0xFF, 0x00, 0x00);
} else if (green == 1) {
blinkm_change_color(address, 0x00, 0xFF, 0x00);
} else if (blue == 1) {
blinkm_change_color(address, 0x00, 0x00, 0xFF);
}
delay(interval);
}
delay(interval);
}
static void red_light_pattern(int interval) {
int second_interval = interval * 2;
blinkm_change_color(0x01, 0xFF, 0x00, 0x00);
blinkm_change_color(0x02, 0x00, 0x00, 0x00);
blinkm_change_color(0x03, 0x00, 0x00, 0x00);
blinkm_change_color(0x04, 0x00, 0x00, 0x00);
delay(interval);
blinkm_change_color(0x01, 0x00, 0x00, 0x00);
blinkm_change_color(0x02, 0xFF, 0x00, 0x00);
blinkm_change_color(0x03, 0x00, 0x00, 0x00);
blinkm_change_color(0x04, 0x00, 0x00, 0x00);
delay(interval);
blinkm_change_color(0x01, 0x00, 0x00, 0x00);
blinkm_change_color(0x02, 0x00, 0x00, 0x00);
blinkm_change_color(0x03, 0xFF, 0x00, 0x00);
blinkm_change_color(0x04, 0x00, 0x00, 0x00);
delay(interval);
blinkm_change_color(0x01, 0x00, 0x00, 0x00);
blinkm_change_color(0x02, 0x00, 0x00, 0x00);
blinkm_change_color(0x03, 0x00, 0x00, 0x00);
blinkm_change_color(0x04, 0xFF, 0x00, 0x00);
delay(interval);
delay(second_interval);
blinkm_change_color(0x01, 0x00, 0x00, 0x00);
blinkm_change_color(0x02, 0x00, 0x00, 0x00);
blinkm_change_color(0x03, 0x00, 0x00, 0x00);
blinkm_change_color(0x04, 0xFF, 0x00, 0x00);
delay(interval);
blinkm_change_color(0x01, 0x00, 0x00, 0x00);
blinkm_change_color(0x02, 0x00, 0x00, 0x00);
blinkm_change_color(0x03, 0xFF, 0x00, 0x00);
blinkm_change_color(0x04, 0x00, 0x00, 0x00);
delay(interval);
blinkm_change_color(0x01, 0x00, 0x00, 0x00);
blinkm_change_color(0x02, 0xFF, 0x00, 0x00);
blinkm_change_color(0x03, 0x00, 0x00, 0x00);
blinkm_change_color(0x04, 0x00, 0x00, 0x00);
delay(interval);
blinkm_change_color(0x01, 0xFF, 0x00, 0x00);
blinkm_change_color(0x02, 0x00, 0x00, 0x00);
blinkm_change_color(0x03, 0x00, 0x00, 0x00);
blinkm_change_color(0x04, 0x00, 0x00, 0x00);
delay(interval);
delay(second_interval);
}
static void blinkm_stop_script(byte address) {
TinyWireM.beginTransmission(address);
TinyWireM.send(0x6F);
TinyWireM.endTransmission();
}
static void blinkm_change_color(byte address, byte red, byte green, byte blue) {
TinyWireM.beginTransmission(address);
TinyWireM.send(0x6E);
TinyWireM.send(red);
TinyWireM.send(green);
TinyWireM.send(blue);
TinyWireM.endTransmission();
delay(50);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment