Нашел баг в led.brightness();

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Vitaliy-Sh, 18 фев 2020.

  1. Vitaliy-Sh

    Vitaliy-Sh Нерд

    Сделал такую программу (одно нажатие включает светодиод, длинное нажатие увеличивает яркость на максимум, серия коротких нажатий выключает)

    Код (Javascript):

    var led = require('@amperka/led').connect(P1);
    var button = require('@amperka/button').connect(P3);

    var i = 0;

    led.turnOff();

    function myCoolButtonHandler() {
      led.brightness(0.2);
      led.turnOn();
      console.log('press');
      i++;
      print (i);
      if (i > 2) led.turnOff();
    }

    function Hand() {
      led.brightness(0.99);
      //led.turnOn();
      console.log('Up');
    }

    button.on('press', myCoolButtonHandler);
    button.on('hold', Hand);

    setInterval(function(){
       (i = 0);
    }, 3000);
     

    И если в led.brightness(0.99); указать 1, то светодиод не меняет яркость. Из-за этого поставил 0.99 )
     
    Последнее редактирование: 18 фев 2020
  2. NikitOS

    NikitOS Король шутов Администратор

    Это не баг.
    Функция brightness ожидает в параметре значение типа float (число с плавающей точкой), т.е. нужно указывать не «1», а «1.0»
     
    Vitaliy-Sh нравится это.
  3. Vitaliy-Sh

    Vitaliy-Sh Нерд

    К сожалению не работает с 1.0
     
    Последнее редактирование: 18 фев 2020
  4. Vitaliy-Sh

    Vitaliy-Sh Нерд

    Вот для ребенка сделал игрушку моргалик (светодиод моргает в такт звука и чем громче звук, тем ярче).

    Код (Javascript):

    var myLed = require('@amperka/led')
      .connect(P1)
      .turnOn();

    var a = 0.52, b = 0.55;

    setInterval(function() {

      var x = analogRead(A0);

      x = (x - a)/(b-a);
      if (x < 0) x = 0.01;
      if (x > 1) x = 0.99;

      myLed.brightness(x);

    });
     
    Так при присвоении x = 0 или 0.0 нестабильно работает светодиод. Если поставить 0.01 то светодиод в тишине стабильно выключен без микроморганий.
     
    Последнее редактирование: 19 фев 2020