aboutsummaryrefslogtreecommitdiff
path: root/Arduino/i2cNeopixelSlave.ino
diff options
context:
space:
mode:
Diffstat (limited to 'Arduino/i2cNeopixelSlave.ino')
-rw-r--r--Arduino/i2cNeopixelSlave.ino95
1 files changed, 95 insertions, 0 deletions
diff --git a/Arduino/i2cNeopixelSlave.ino b/Arduino/i2cNeopixelSlave.ino
new file mode 100644
index 0000000..dd9f7e0
--- /dev/null
+++ b/Arduino/i2cNeopixelSlave.ino
@@ -0,0 +1,95 @@
+#include <Wire.h>
+#include <Adafruit_NeoPixel.h>
+
+
+#define PIN 3
+#define SLAVE_ADDRESS 0x04
+
+// Parameter 1 = number of pixels in strip
+// Parameter 2 = pin number (most are valid)
+// Parameter 3 = pixel type flags, add together as needed:
+// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
+// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
+// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
+// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
+Adafruit_NeoPixel strip = Adafruit_NeoPixel(10, PIN, NEO_GRB + NEO_KHZ800);
+
+int number = 0;
+int state = 0;
+
+void setup() {
+
+ pinMode(13, OUTPUT);
+ Serial.begin(9600);
+
+ Wire.begin(SLAVE_ADDRESS);
+
+ Wire.onReceive(receiveData);
+ Wire.onRequest(sendData);
+
+ strip.begin();
+ strip.show(); // Initialize all pixels to 'off'
+
+ Serial.println("Ready!");
+
+}
+
+void loop() {
+ delay(100);
+}
+
+void receiveData(int byteCount) {
+ int bytes[byteCount];
+ int i = 0;
+
+ while (Wire.available()) {
+ number = Wire.read();
+ bytes[i] = number;
+
+ Serial.println(number);
+ i++;
+ }
+
+ switch (bytes[0]) {
+
+ case 0x01:
+ Serial.println("Life is discovered");
+ number = 1;
+ break;
+
+ case 0x02:
+ /*long byteN = bytes[1];
+ int byteState = bytes[2];
+ int byteGreen = bytes[3];
+ int byteRed = bytes[4];
+ int byteBlue = bytes[5];*/
+ Serial.println("0x02");
+
+ strip.setPixelColor(bytes[2], bytes[3], bytes[4], bytes[5]);
+ Serial.println(bytes[1]);
+ Serial.println(bytes[2]);
+ Serial.println(bytes[3]);
+ Serial.println(bytes[4]);
+ break;
+
+ case 0x03:
+ strip.show();
+ break;
+
+ default:
+ Serial.println("Nothing New");
+ break;
+
+ }
+
+}
+
+void sendData() {
+ Wire.write(number);
+}
+
+void sendString(int Data) {
+ Wire.write(Data);
+}
+
+