注釈

こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。

参加する理由は?

  • エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。

  • 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。

  • 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。

  • 特別割引:最新製品の独占割引をお楽しみください。

  • 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。

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

1.1.1 LEDの点滅

はじめに

このプロジェクトでは、プログラミングによってLEDを点滅させる方法を学びます。 あなたの設定により、LEDが一連の面白い現象を生み出すことができます。さあ、始めましょう。

必要な部品

このプロジェクトには、以下の部品が必要です。

../_images/blinking_led_list1.png

一式をまとめて購入するのは非常に便利です。以下がそのリンクです:

名前

このキットのアイテム

リンク

Raphael Kit

337

Raphael Kit

以下のリンクからも個別に購入することができます。

コンポーネントの紹介

購入リンク

GPIO拡張ボード

購入

ブレッドボード

購入

ジャンパーワイヤー

購入

抵抗器

購入

LED

購入

回路図

この実験では、LEDのアノード(LEDの長いピン)に220Ωの抵抗を接続し、抵抗を3.3 Vに、LEDのカソード(短いピン)をRaspberry PiのGPIO17に接続します。したがって、LEDを点灯させるには、GPIO17を低(0V)レベルにする必要があります。これはプログラムで実現できます。

../_images/image481.png

実験手順

ステップ1: 回路を作成します。

../_images/image491.png

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

cd ~/raphael-kit/nodejs/

注釈

cd を使用して、この実験のコードのパスにディレクトリを変更します。

ステップ3: コードを実行します

sudo node blink.js

注釈

ここでのsudoはsuperuser doを意味し、pythonはPythonでファイルを実行することを意味します。

コードを実行すると、LEDが点滅するのがわかります。

ステップ4: コードファイルblink.jsを編集したい場合は、 Ctrl + C を押してコードの実行を停止します。次に、blink.jsを開くための以下のコマンドを入力します:

nano blink.js

注釈

nanoはテキストエディタツールです。このコマンドは、このツールで コードファイルblink.jsを開くために使用されます。

Ctrl+X を押して終了します。コードを変更した場合、変更を保存するかどうかを尋ねるプロンプトが表示されます。 Y (保存する)または N (保存しない)を入力します。

次に Enter を押して終了します。再度nano blink.jsを入力して、変更後の効果を確認します。

コード

以下はプログラムコードです:

const Gpio = require('pigpio').Gpio;
const led = new Gpio(17,{mode: Gpio.OUTPUT});

var led_state = 0;

function blink_led(){
   led.digitalWrite(led_state);
   led_state = !led_state;
}

setInterval(blink_led,300);

また、コードをjs特有のアロー関数として書くこともできます:

const Gpio = require('pigpio').Gpio;
const led = new Gpio(17,{mode: Gpio.OUTPUT});

var led_state = 0;

setInterval(() => {
   led.digitalWrite(led_state);
   led_state = !led_state;
}, 300);

コード説明

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

この方法でpigpioパッケージのGpioコンストラクタをインポートし、 そのコンストラクタを表す定数 Gpio を定義します。

さまざまなコンストラクタを使用すると、jsで電子機器を制御できます。 pigpio は、高速GPIO、PWM、サーボ制御、状態変更通知、および割り込み処理を実装するために使用できます。

const led = new Gpio(17,{mode: Gpio.OUTPUT});

new キーワードは、クラスのインスタンス化されたオブジェクトを構築するために使用されます。

LEDをT字型拡張ボードのGPIO17に接続し、LedPinモードを出力に設定し、定数 led に割り当てます。 すなわち、GPIO17オブジェクト led を構築し、そのモードは出力モードです。

Raspberry PiのIOピンに番号を付ける方法は2つあります: BOARD番号とBCM番号。私たちのプロジェクトでは、BCM番号を使用しています。 使用する各チャネルを入力または出力として設定する必要があります。

function blink_led(){
   led.digitalWrite(led_state);
   led_state = !led_state;
}

setInterval(blink_led,300);

setInterval() メソッドは、指定された期間(ミリ秒単位)で関数を呼び出したり、式を計算したりすることができます。 ここでは、300msの期間でLEDの動作状態を変更します。

gpio.digitalWrite(level) メソッドは、gpioレベルを1または0に設定します。

var led_state = 0;

setInterval(() => {
   led.digitalWrite(led_state);
   led_state = !led_state;
}, 300);

コードをアロー関数として書き直して、コードを短くします。

現象の画像

../_images/image541.jpeg