Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<meta name="description" content="Blinkenlights" />
<html>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script src="http://blinken.eecs.umich.edu/client.js"></script>
<body></body>
</html>
(new Blinken({title: "RGBY", author: "Clayton Webb"})).run(function (lights) {
    var strandLength = 100;
    var stripeColor1 = [1, 0, 0];
    var stripeColor2 = [0, 1, 0];
    var stripeColor3 = [0, 0, 1];
    var stripeColor4 = [1, 1, 0];
    var stripeWidth = 7;
    var updateDelay = 100;
    var direction = "up";
    var stripeOffset = 0;
    var repeatWidth = 4 * stripeWidth;
    for (var i = 0; i < strandLength; i++) {
        var offsetInRepeat = i % repeatWidth;
        var thisColor;
        if (offsetInRepeat < stripeWidth*4)
            thisColor = stripeColor4;
        if (offsetInRepeat < stripeWidth*3)
            thisColor = stripeColor3;
        if (offsetInRepeat < stripeWidth*2)
            thisColor = stripeColor2;
        if (offsetInRepeat < stripeWidth) 
            thisColor = stripeColor1;
        lights[i].rgb(thisColor[0], thisColor[1], thisColor[2]);
    }
    // Update lights and return number of ms until
    // this function gets called again.
    return function () {
        if (direction === "up") {
            stripeOffset--;
            if (stripeOffset < 0)
                stripeOffset = repeatWidth;
        } else {
            stripeOffset++;
            if (stripeOffset >= repeatWidth)
                stripeOffset = 0;
        }
        for (var i = 0; i < strandLength; i++) {
            var offsetInRepeat = (i + stripeOffset) % repeatWidth;
            var thisColor;
            if (offsetInRepeat < stripeWidth*4)
                thisColor = stripeColor4;
            if (offsetInRepeat < stripeWidth*3)
                thisColor = stripeColor3;
            if (offsetInRepeat < stripeWidth*2)
                thisColor = stripeColor2;
            if (offsetInRepeat < stripeWidth) 
                thisColor = stripeColor1;
            lights[i].rgb(thisColor[0], thisColor[1], thisColor[2]);
    }
        return updateDelay;
    };
});
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers