#include short b1, b2; short x; int delayAmount; int pin[] = {10, 9, 8, 5, 4, 3, 2, 1, 0}; void setup() { Wire.begin(13); Wire.onReceive(receiveEvent); for (int i = 0; i < 9; i++) { pinMode(pin[i], OUTPUT); } } int numLEDs; void loop() { if (0 <= x && x <= 999) { numLEDs = 1; delayAmount = 1000; } else if (1000 <= x && x <= 1999) { numLEDs = 2; delayAmount = 1000; } else if (2000 <= x && x <= 2999) { numLEDs = 3; delayAmount = 1000; } else if (3000 <= x && x <= 3999) { numLEDs = 4; delayAmount = 1000; } else if (4000 <= x && x <= 4999) { numLEDs = 5; delayAmount = 1000; } else if (5000 <= x && x <= 5699) { numLEDs = 6; delayAmount = 600; } else if (5700 <= x && x <= 6299) { numLEDs = 7; delayAmount = 400; } else if (6300 <= x && x <= 6899) { numLEDs = 8; delayAmount = 200; } else { numLEDs = 9; delayAmount = 80; } LEDon(numLEDs); if (delayAmount < 900) { delay(delayAmount); allOff(); delay(delayAmount); } } void receiveEvent(int howMany) { b1 = Wire.read(); b2 = Wire.read(); x = (b2 << 8) + b1; } void LEDon(int num) { for (int i = 0; i < num; i++) { digitalWrite(pin[i], HIGH); } } void allOff() { for (int i = 0; i < 9; i++) { digitalWrite(pin[i], LOW); } }