• working with a greater distance, firing sensors individually, more stable output:

    var distanceR = 0;
    var distanceG = 0;
    var distanceB = 0;
    var running;
    var c=0;
    var sensorR = require("HC-SR04").connect(A0,A1,functio­n(dist) {
      if (dist < 300 && dist > 0) distanceR = dist;
    });
    var sensorG = require("HC-SR04").connect(A2,A3,functio­n(dist) {
      if (dist < 300 && dist > 0) distanceG = dist;
    });
    var sensorB = require("HC-SR04").connect(A4,A5,functio­n(dist) {
      if (dist < 300 && dist > 0) distanceB = dist;
    });
    SPI2.setup({baud:3200000, mosi:B15});
    function runIt(){
      if (c===0) sensorR.trigger();
      if (c===1) sensorG.trigger();
      if (c===2) {
        sensorB.trigger();
        sendToLeds();
        c=0;
      } else c++;
    }
    
    function sendToLeds(){
        
      //console.log("before("+Math.floor(dista­nceR)+","+Math.floor(distanceG)+","+Math­.floor(distanceB)+")");
      
      if(distanceR > 100 || distanceR === 0){distanceR = 0;} else {distanceR = 255-(distanceR/4)*10;}
      if(distanceG > 100 || distanceG === 0){distanceG = 0;} else {distanceG = 255-(distanceG/4)*10;}
      if(distanceB > 100 || distanceB === 0){distanceB = 0;} else {distanceB = 255-(distanceB/4)*10;}
      
    if(Math.floor(distanceR) > 0 || Math.floor(distanceG) > 0 || Math.floor(distanceB) > 0) console.log("RGB("+Math.floor(distanceR)­+","+Math.floor(distanceG)+","+Math.floo­r(distanceB)+")");
      SPI2.send4bit([distanceR,distanceG,dista­nceB,distanceR,distanceG,distanceB,dista­nceR,distanceG,distanceB,distanceR,dista­nceG,distanceB,distanceR,distanceG,dista­nceB,distanceR,distanceG,distanceB,dista­nceR,distanceG,distanceB,distanceR,dista­nceG,distanceB,distanceR,distanceG,dista­nceB,distanceR,distanceG,distanceB,dista­nceR,distanceG,distanceB,distanceR,dista­nceG,distanceB,distanceR,distanceG,dista­nceB,distanceR,distanceG,distanceB,dista­nceR,distanceG,distanceB,distanceR,dista­nceG,distanceB,distanceR,distanceG,dista­nceB,distanceR,distanceG,distanceB,dista­nceR,distanceG,distanceB,distanceR,dista­nceG,distanceB,distanceR,distanceG,dista­nceB,distanceR,distanceG,distanceB,dista­nceR,distanceG,distanceB,distanceR,dista­nceG,distanceB], 0b0001, 0b0011); // white
    }
    
    function stopIt(){
      console.log("button pressed");
      clearInterval(running);
    }
    
    running = setInterval(runIt, 100);
    
    setWatch(stopIt, BTN1, {repeat:true, edge:"rising"});
    
    
About

Avatar for Rek @Rek started