Sine you want two sets:
Set 1: leds 1 - 100
Set 2: leds 105 - 205
We could "cheat" a little with minimal modifications.
In "Step 4" we set the LED color, for each LED. So we could cheat by copying the color from set1 to set2:
for( int j = 0; j < NUM_LEDS; j++) {
setPixelHeatColor(j, heat[j] );
setPixelHeatColor(j + 104, heat[j] );
}
Now this will work but we'd run into trouble with the use of NUM_LEDS, so we define a new define for that.
#define SET_NUM_LEDS 100
and modify the previous code as such:
#define SET_NUM_LEDS 100 // might need to tweak this number
...
void loop() {
Fire(55,120,15);
}
void Fire(int Cooling, int Sparking, int SpeedDelay) {
static byte heat[SET_NUM_LEDS];
int cooldown;
// Step 1. Cool down every cell a little
for( int i = 0; i < SET_NUM_LEDS; i++) {
cooldown = random(0, ((Cooling * 10) / SET_NUM_LEDS) + 2);
if(cooldown>heat) {
heat=0;
} else {
heat=heat-cooldown;
}
}
// Step 2. Heat from each cell drifts 'up' and diffuses a little
for( int k= SET_NUM_LEDS - 1; k >= 2; k--) {
heat[k] = (heat[k - 1] + heat[k - 2] + heat[k - 2]) / 3;
}
// Step 3. Randomly ignite new 'sparks' near the bottom
if( random(255) < Sparking ) {
int y = random(7);
heat[y] = heat[y] + random(160,255);
//heat[y] = random(160,255);
}
// Step 4. Convert heat to LED colors
for( int j = 0; j < SET_NUM_LEDS; j++) {
setPixelHeatColor(j, heat[j] );
setPixelHeatColor(j + 105, heat[j] ); // might need to tweak the number 105
}
showStrip();
delay(SpeedDelay);
}
void setPixelHeatColor (int Pixel, byte temperature) {
// Scale 'heat' down from 0-255 to 0-191
byte t192 = round((temperature/255.0)*191);
// calculate ramp up from
byte heatramp = t192 & 0x3F; // 0..63
heatramp <<= 2; // scale up to 0..252
// figure out which third of the spectrum we're in:
if( t192 > 0x80) { // hottest
setPixel(Pixel, 255, 255, heatramp);
} else if( t192 > 0x40 ) { // middle
setPixel(Pixel, 255, heatramp, 0);
} else { // coolest
setPixel(Pixel, heatramp, 0, 0);
}
}
The number 100 and 105 might need some tweaking, since you counted from 1-100, where as the procedure starts counting at zero.