注釈

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

参加する理由

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

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

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

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

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

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

1.2.1 アクティブブザー

イントロダクション

このプロジェクトでは、PNPトランジスタを使用してアクティブブザーを鳴らす方法を学びます。

コンポーネント

../_images/list_1.2.11.png

回路図

この実験では、トランジスタのベースとGPIOの間にアクティブブザー、PNPトランジスタ、および1k抵抗を使用してトランジスタを保護します。Raspberry PiのGPIO17がプログラムによって低レベル(0V)を出力すると、トランジスタが飽和し、導通してブザーが鳴ります。しかし、Raspberry PiのIOに高レベルが供給されると、トランジスタは遮断され、ブザーは鳴りません。

../_images/image3321.png

実験手順

ステップ1: 回路を構築します。(アクティブブザーには表面に白いテーブルステッカーがあり、背面は黒色です。)

../_images/image1041.png

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

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

ステップ3: 実行します。

sudo node active_buzzer.js

コードが実行されると、ブザーが鳴ります。

コード

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

setInterval(() => {
  active.digitalWrite(!active.digitalRead());
}, 500);

process.on('SIGINT',function(){
  active.digitalWrite(1);
  process.exit();
});

コードの説明

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

pigpio モジュールをインポートし、IOポートGpio17を制御するオブジェクトactiveをインスタンス化し、モードを出力モードに設定します。

setInterval(() => {
  active.digitalWrite(!active.digitalRead());
}, 500);

アクティブブザーはLEDに似ており、 digitalWrite() で制御できます。 digitalRead() は現在のピンレベルを読み取るために使用されます。 ここでは、アクティブブザーが500msごとに動作状態を変更するようにします。

process.on('SIGINT', function() {
    /* DO SOME STUFF HERE */

    process.exit()
})

Ctrl+Cを処理します。ここでは、プログラムを終了する際にブザーの鳴動を停止するために使用します。

Process - NodeJS

現象の写真

../_images/image1051.jpeg