注釈

こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community on Facebookへようこそ!Raspberry Pi、Arduino、ESP32を愛好する仲間たちと一緒に、これらの技術を深く探求しましょう。

なぜ参加するのか?

  • 専門家のサポート:購入後の問題や技術的な課題を、コミュニティやチームの助けを借りて解決します。

  • 学びと共有:スキルを向上させるためのヒントやチュートリアルを交換します。

  • 独占プレビュー:新製品の発表やプレビューに早期アクセスできます。

  • 特別割引:最新の製品に対する独占割引を楽しめます。

  • フェスティバルプロモーションとギブアウェイ:ギブアウェイやフェスティバルプロモーションに参加できます。

👉 私たちと一緒に探索と創造を始める準備はできましたか?[ここ]をクリックして、今日参加しましょう!

1.1.3 LED バーグラフ

イントロダクション

このプロジェクトでは、LEDバーグラフのライトを順に点灯させます。

コンポーネント

../_images/list_led_bar2.png

回路図

../_images/schematic_led_bar2.png

実験手順

ステップ1: 回路を構築します。

注釈

接続時の方向に注意してください。逆に接続すると点灯しません。

../_images/image662.png

ステップ2: コードのフォルダに移動します。

cd ~/davinci-kit-for-raspberry-pi/nodejs/

ステップ3: コードをコンパイルします。

sudo node led_bar_graph.js

コードが実行されると、LEDバーのLEDが定期的に点灯および消灯するのが見えます。

コード

const Gpio = require('pigpio').Gpio;

var pins = [17, 18, 27, 22, 23, 24, 25, 2, 3, 8];
var leds = [];
for (let i = 0; i < pins.length; i++) {
    leds[i] = new Gpio(pins[i], { mode: Gpio.OUTPUT });
}

function oddLedBarGraph() {
    for (let i = 0; i < leds.length; i++) {
        if (i % 2 == 1) {
            leds[i].digitalWrite(1);
        } else {
            leds[i].digitalWrite(0);
        }
    }
}

function evenLedBarGraph() {
    for (let i = 0; i < leds.length; i++) {
        if (i % 2 == 0) {
            leds[i].digitalWrite(1);
        } else {
            leds[i].digitalWrite(0);
        }
    };
}

var odd_even = 0;

setInterval(() => {
    odd_even = (odd_even + 1) % 2;
    if (odd_even == 1) {
        oddLedBarGraph();
    } else {
        evenLedBarGraph();
    }
}, 500);

コードの説明

var pins = [17,18,27,22,23,24,25,2,3,8];

LEDバーグラフは複数のピンを使用するため、これらをまとめて保存する定数配列 pins を作成します。

var leds = [];
for (let i = 0; i < pins.length; i++) {
    leds[i] = new Gpio(pins[i], { mode: Gpio.OUTPUT });
}

これらのピンをループでledsオブジェクトとしてインスタンス化します。

function oddLedBarGraph() {
    for (let i = 0; i < leds.length; i++) {
        if (i % 2 == 1) {
            leds[i].digitalWrite(1);
        } else {
            leds[i].digitalWrite(0);
        }
    }
}

oddLedBarGraph() 関数を実装して、LEDバーグラフの奇数のLEDを点灯させます。

function evenLedBarGraph() {
    for (let i = 0; i < leds.length; i++) {
        if (i % 2 == 0) {
            leds[i].digitalWrite(1);
        } else {
            leds[i].digitalWrite(0);
        }
    };
}

evenLedBarGraph() 関数を実装して、LEDバーグラフの偶数のLEDを点灯させます。

var odd_even = 0;

setInterval(() => {
    odd_even = (odd_even + 1) % 2;
    if (odd_even == 1) {
        oddLedBarGraph();
    } else {
        evenLedBarGraph();
    }
}, 500);

LEDの動作状態は500msごとに切り替わります。

現象の写真

../_images/image671.jpeg