/* 2x Matrix Output - based on the Amarino Multicolor Lamp tutorial - receives custom events from Amarino changing color accordingly author: Brad Crane - 04.02.10 */ #include // declare MeetAndroid so that you can call functions with it MeetAndroid meetAndroid; // LED_1 control signals int redLed_1 = 14; int greenLed_1 = 12; int blueLed_1 = 13; // LED_2 control signals int redLed_2 = 8; int greenLed_2 = 6; int blueLed_2 = 7; int i = 0; void setup() { // set baud rate of bluetooth module Serial.begin(57600); // register callback functions, which will be called when an associated event occurs. // 'F' is the event flag for amarino compass event meetAndroid.registerFunction(orientation, 'L'); // set all color leds as output pins pinMode(redLed_1, OUTPUT); pinMode(greenLed_1, OUTPUT); pinMode(blueLed_1, OUTPUT); pinMode(redLed_2, OUTPUT); pinMode(greenLed_2, OUTPUT); pinMode(blueLed_2, OUTPUT); } void loop() { meetAndroid.receive(); // you need to keep this in your loop() to receive events } void orientation(byte flag, byte numOfValues) { int orient_val; // get data after the flag 'F' event orient_val = meetAndroid.getInt(); switch (orient_val) { case 1: //RED RED analogWrite(redLed_1, 0); analogWrite(greenLed_1, 255); analogWrite(blueLed_1, 255); analogWrite(redLed_2, 0); analogWrite(greenLed_2, 255); analogWrite(blueLed_2, 255); break; case 2: //RED YELLOW analogWrite(redLed_1, 0); analogWrite(greenLed_1, 255); analogWrite(blueLed_1, 255); analogWrite(redLed_2, 0); analogWrite(greenLed_2, 0); analogWrite(blueLed_2, 255); break; case 3: //RED GREEN analogWrite(redLed_1, 0); analogWrite(greenLed_1, 255); analogWrite(blueLed_1, 255); analogWrite(redLed_2, 255); analogWrite(greenLed_2, 0); analogWrite(blueLed_2, 255); break; case 4: //YELLOW RED analogWrite(redLed_1, 0); analogWrite(greenLed_1, 0); analogWrite(blueLed_1, 255); analogWrite(redLed_2, 0); analogWrite(greenLed_2, 255); analogWrite(blueLed_2, 255); break; case 5: //YELLOW YELLOW analogWrite(redLed_1, 0); analogWrite(greenLed_1, 0); analogWrite(blueLed_1, 255); analogWrite(redLed_2, 0); analogWrite(greenLed_2, 0); analogWrite(blueLed_2, 255); break; case 6: //YELLOW GREEN analogWrite(redLed_1, 0); analogWrite(greenLed_1, 0); analogWrite(blueLed_1, 255); analogWrite(redLed_2, 255); analogWrite(greenLed_2, 0); analogWrite(blueLed_2, 255); break; case 7: //GREEN RED analogWrite(redLed_1, 255); analogWrite(greenLed_1, 0); analogWrite(blueLed_1, 255); analogWrite(redLed_2, 0); analogWrite(greenLed_2, 255); analogWrite(blueLed_2, 255); break; case 8: //GREEN YELLOW analogWrite(redLed_1, 255); analogWrite(greenLed_1, 0); analogWrite(blueLed_1, 255); analogWrite(redLed_2, 0); analogWrite(greenLed_2, 0); analogWrite(blueLed_2, 255); break; case 9: //GREEN GREEN analogWrite(redLed_1, 255); analogWrite(greenLed_1, 0); analogWrite(blueLed_1, 255); analogWrite(redLed_2, 255); analogWrite(greenLed_2, 0); analogWrite(blueLed_2, 255); break; } }