言語切り替え

ラジオボタンでフルカラーLEDの色を変える

obnizに繋いだフルカラーLEDの色を、ラジオボタンによって変更します。

用意するもの

  • フルカラーLED
  • 抵抗 x3
  • obniz Board
  • モバイルバッテリーなど
  • スマートフォン or PC

接続方法

obniz LED
0
1
2
3 アノード または カソード

 

※フルカラーLEDによって脚の並び順が異なる可能性があるのでご注意ください。

プログラム

32行目 let obniz = new Obniz('OBNIZ_ID_HERE');OBNIZ_ID_HERE の部分を、お手持ちのobniz IDに書き換えてください。

35行目 let led = obniz.wired('FullColorLED', {r:2, g:0, b:1, common:3, commonType:'cathode_common'});commonType のところは、お手持ちのLEDのタイプによって、 anode_common または cathode_common を記述してください。

<!doctype html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://unpkg.com/obniz@3.0.0/obniz.js" crossorigin="anonymous"></script>
  <script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
  <title>Radio Button to Fullcolor LED</title>
</head>

<body>
  <div class="container">
    <h2 class="text-center" style="margin:40px">Control Fullcolor LED</h2>
    <form id="rgb-controls" class="text-center row">
        <div class="col-xs-4 col-md-3"></div>
        <div id="choices" class="text-left col-xs-4 col-md-6">
          <input type="radio" name="colors" value="red">red<br>
          <input type="radio" name="colors" value="green">green<br>
          <input type="radio" name="colors" value="blue">blue<br>
          <input type="radio" name="colors" value="gradation-change">gradation change<br>
          <div class="text-center">
            <button id="change" class="btn btn-warning" style="margin:20px">change!!</button>
          </div>
        </div>
        <div class="col-xs-4 col-md-3"></div>
    </form>
  </div>
<script>
  $( () => {
    const COLORS = {red: [255,0,0], green:[0,255,0], blue:[0,0,255]};
    let obniz = new Obniz('OBNIZ_ID_HERE');
    
    obniz.onconnect = async () => {
      let led = obniz.wired('FullColorLED', {r:2, g:0, b:1, common:3, commonType:'cathode_common'});
      
      $('#rgb-controls').submit(async (e) => {
        await e.preventDefault();
        let checkedVal = $('input[name="colors"]:checked').val();
        
        if(checkedVal === null || checkedVal === undefined){
          return;
        }else if(checkedVal === 'gradation-change'){
          led.gradation(1000);
        }else{
          led.stopgradation();
          led.rgb(COLORS[checkedVal][0],COLORS[checkedVal][1],COLORS[checkedVal][2]);
        }
      });
    }
  });
</script>
</body>
</html>

うごかす

色を選択して change!! を押すと、フルカラーLEDが選択した色に変わります。 gradation change を選択すると、色がグラデーションで変化し続けます。

関連記事