You are reading a single comment by @GarrettL and its replies. Click here to read the full conversation.
  • /*var sensor = require("HC-SR04").connect(C6,C7,functio­n(dist) {
      console.log(dist+" cm away");
    });
    setInterval(function() {
      sensor.trigger(); // send pulse
    }, 500);
    */
    
    SPI2.setup({baud:3200000, mosi:B15});
    var rgb = new Uint8Array(50*3);
    
    var pos=0;
    
    function lightsOff() {
      clearInterval(cycle);
      pos++;
      for (var i=0;i<rgb.length;i+=3) {
        rgb[i  ] = 0;
        rgb[i+1] = 0;
        rgb[i+2] = 0;
      }
     
      SPI2.send4bit(rgb, 0b0001, 0b0011);
      
    }
     
    var patterns = [];
    //patterns.push(lightsOff);
    patterns.push(function() {
      // Fading white lights
      LCD.clear();
     
      pos++;
      for (var i=0;i<rgb.length;i+=3) {
         var col = (Math.sin(i+pos*0.2)+1) * 127;
         rgb[i  ] = col;
         rgb[i+1] = col;
         rgb[i+2] = col;
    
      }
    });
    patterns.push(function() {
      // Red Light
       
      
      pos++;
      for (var i=0;i<rgb.length;i+=3) {
         var col = 255;
         rgb[i  ] = col;
         rgb[i+1] = 0;
         rgb[i+2] = 0;
     
      }
    });
    patterns.push(function() {
      // Green Light 
      pos++;
      for (var i=0;i<rgb.length;i+=3) {
         var col = 255;
         rgb[i  ] = 0;
         rgb[i+1] = col;
         rgb[i+2] = 0;
    
      }
    });
    patterns.push(function() {
      // Blue Light 
      pos++;
      for (var i=0;i<rgb.length;i+=3) {
         var col = 255;
         rgb[i  ] = 0;
         rgb[i+1] = 0;
         rgb[i+2] = col;
    
      }
    });
    patterns.push(function() {
      // Yellow light
      pos++;
      for (var i=0;i<rgb.length;i+=3) {
         var col = 255;
         rgb[i  ] = col;
         rgb[i+1] = col;
         rgb[i+2] = 0;
    
      }
    });
    patterns.push(function() {
      // Cyan light
      pos++;
      for (var i=0;i<rgb.length;i+=3) {
         var col = 255;
         rgb[i  ] = 0;
         rgb[i+1] = col;
         rgb[i+2] = col;
    
      }
    });
    patterns.push(function() {
      // Fading colours
      pos++;
      for (var i=0;i<rgb.length;i+=3) {
         rgb[i  ] = (1 + Math.sin((i+pos)*0.1324))*127;
         rgb[i+1] = (1 + Math.sin((i+pos)*0.1654))*127;
         rgb[i+2] = (1 + Math.sin((i+pos)*0.1)) * 127;
    
      }
    });
    patterns.push(function() {
      // Random blue lights
      for (var i=0;i<rgb.length;i+=3) {
         rgb[i  ] = 0;
         rgb[i+1] = 0;
         rgb[i+2] = Math.random()*255;
    
        }
    });
    
    var getPattern = patterns[0];
    
    function changePattern() {
      patternNumber = (patternNumber+1) % patterns.length;
      getPattern = patterns[patternNumber];
    
    
      SPI2.send4bit(rgb, 0b0001, 0b0011);
    }
    
    var patternNumber = 0;
    function changePattern() {
      patternNumber = (patternNumber+1) % patterns.length;
      getPattern = patterns[patternNumber];
    }
    
    setWatch(changePattern, BTN, { repeat: true, edge:'rising', debounce: 50 });
    
    //cycle = setInterval(doLights,50);
    // this below was ^
    function doLights() {
      getPattern();  
      for (var i=0;i<rgb.length;i+=3) {
        LCD.setColor(rgb[i+0]/256,rgb[i+1]/256,r­gb[i+2]/256);
        LCD.fillRect(i,0,i+2,10);
      }
      SPI2.send4bit(rgb, 0b0001, 0b0011);
    }
    
About

Avatar for GarrettL @GarrettL started