検索コード

レッスン07:Arduinoから追加の5VとGNDを取得する | Arduinoステップバイステップコース

レッスン07:Arduinoから追加の5VとGNDを取得する | Arduinoステップバイステップコース

このRobojax Arduinoステップバイステップコースのレッスンでは、Arduinoボードの5VおよびGND接続が不足するという一般的な問題に対する実用的な解決策を探ります。サーボモーター、LCDディスプレイ、超音波センサー、または複数のデバイスの組み合わせに電力を供給するプロジェクトを構築している場合でも、Arduino UnoやNanoの電源ピンが限られていることがすぐにボトルネックになる可能性があります。このガイドでは、任意のデジタルI/Oピンを追加の5Vソースまたはグランド接続として創造的に使用する方法を説明し、低電流デバイス用に外部電源を必要とせずに複数のコンポーネントに電力を供給する柔軟性を提供します。

このテクニックは、以下のようないくつかの実世界のアプリケーションで特に役立ちます:

  • 単一のプロジェクトでサーボモーターと一緒に小型のOLEDまたはLCDディスプレイに電力を供給する。
  • 超音波センサーやPIRモーション検出器などの複数のセンサーに同時に電力を供給する。
  • ブレッドボード上で一時的なテストセットアップを作成し、新しいモジュール用の迅速かつ簡単な電源が必要な場合。
  • クリーンな5Vリファレンスを必要とする低電力LEDやロジックレベル回路を駆動する。

Arduinoの電力制限を理解する

解決策に飛び込む前に、Arduinoボードの電力アーキテクチャを理解することが重要です。標準的なArduino Unoでは、通常、専用の5Vピンが1つだけあります。ビデオで述べられているように、一部のサードパーティ製ボードには2番目の5Vピンがある場合がありますが、それでもさらに必要になることがあります(ビデオの00:26時点)。

これらのピンから引き出せる電流の量は、電源によって異なります。USB経由でボードに電力を供給している場合、電流は使用しているUSBポートまたは充電器によって制限されます。たとえば、1A充電器では最大1Aまで許可され、2.4A充電器ではより多く許可されます(ビデオの01:55時点)。7〜12V電源を備えたバレルジャックを使用している場合、電流はオンボードのAMS1117電圧レギュレータチップによって調整され、通常の電流制限は1.1Aです(ビデオの02:20時点)。

ボード上のICSPヘッダーにも注意することが重要です。ビデオで説明されているように、このヘッダーはSPI(シリアルペリフェラルインターフェース)ピンへのアクセスを提供し、右側のピンは実際にはVCC(5V)であり、最後のピンはGNDです(ビデオの00:54時点)。これにより、5Vレールにアクセスするための別の物理的な場所が得られます。

ただし、覚えておくべき最も重要な制限は、デジタルI/Oピンに関するものです。公式のArduinoドキュメントによると、各デジタルピンは最大20ミリアンペア(mA)を供給または吸収できます(ビデオの03:30時点)。これはLED、ロジック回路、および多くのセンサーには十分以上ですが、モーターや高出力サーボなどの高電流デバイスには不十分です。そのような場合は、常にメインの5Vピンまたは外部電源を使用する必要があります。

ハードウェアとコンポーネント

このデモンストレーションには、次のコンポーネントが必要です:

  • 1x Arduinoボード(Uno、Nano、または類似のもの)
  • 1x LED(任意の色)
  • 1x 1kΩ抵抗
  • 1x ブレッドボード
  • ジャンパーワイヤー
  • (オプション)デモンストレーション用のLCD 1602ディスプレイまたはリレーモジュール

配線ガイド

このプロジェクトの配線は簡単です。主にデジタルピンをコンポーネントの電源レールに接続し、別のデジタルピンをそのグランドに接続することを含みます。ビデオでは、インストラクターがLEDに電力を供給してこれをデモンストレーションしています。

セットアップ方法は次のとおりです:

  1. LEDを接続する: LEDのアノード(長い方の脚)を1kΩの電流制限抵抗を介してArduinoのデジタルピン5に接続します。
  2. グランドを接続する: LEDのカソード(短い方の脚)をArduinoのデジタルピン2に直接接続します。

この簡単な回路により、ピン5が5Vソースとして機能し、ピン2がグランドとして機能して回路を完成させます(ビデオの06:05時点)。

よりスケーラブルなアプローチとして、ビデオで示されているようにブレッドボードを使用して電力を分配できます。ブレッドボードの赤い電源レールをピン5に接続し、青/黒のグランドレールをピン2に接続することで、それぞれのレールにコンポーネントを差し込むだけで複数のコンポーネントに簡単に電力を供給できます(ビデオの06:59時点)。

コードの説明

このレッスンで提供されるコードは非常にシンプルで、その唯一の目的は2つのデジタルピンを電源供給ピンとして構成することです。この機能の鍵は、スケッチの先頭で定義された2つの構成定数にあります。

コードのユーザー設定可能な部分は次のとおりです:

#define VCC2  5 // ここでピン5または他のデジタルピンをVCC2として定義
#define GND2  2 // ここでピン2または他のデジタルピンをグランド2として定義

これらの2行がカスタマイズの核心です。#defineディレクティブはプリプロセッサコマンドであり、コードがコンパイルされる前に、VCC2のすべてのインスタンスを数字5に、GND2のすべてのインスタンスを数字2に置き換えるようにArduinoコンパイラに指示します。これにより、電源に使用するピンを非常に簡単に変更できます。ピン8を5Vソースとして使用したい場合は、最初の行の58に変更するだけです。同様に、2行目を編集してグランドピンを変更できます。

コードの残りの部分は、setup()関数内の初期化ロジックにすぎません。VCC2として定義されたピンをOUTPUTに設定し、それをHIGHに書き込むことで、5Vを出力します。逆に、GND2として定義されたピンをOUTPUTに設定し、それをLOWに書き込むことで、グランド接続として機能させます。これがsetup()内で行われると、ピンはArduinoに電源が供給されている間ずっとその状態を維持し、メインのプログラムロジックをloop()関数に追加できます。

ライブプロジェクトデモ

ビデオでは、講師がコードをArduinoに読み込んでこの概念を実演しています。アップロードが完了すると、ピン5とピン2の間に接続されたLEDがすぐに点灯し、ピン5が電圧を供給し、ピン2がグランドとして電流を吸収していることを証明しています。この点をさらに明確にするため、LEDの電源接続を別の未設定のデジタルピンに移動すると、そのピンが5Vを出力するように設定されていないため、LEDが点灯しないことを示しています(ビデオの06:37時点)。

デモには、ブレッドボードを使用した実用的な例も含まれています。5Vピンをブレッドボードの電源レールに、グランドピンをグランドレールに接続することで、1602 LCDディスプレイとリレーモジュールを同時に動作させています。これは、この手法を使用して、低電流コンポーネント用の小型で専用の電源分配バスを作成し、配線を清潔で整理された状態に保つ方法を示しています(ビデオの06:59時点)。

結論

このレッスンでは、Arduinoボードの機能を拡張するためのシンプルかつ強力なテクニックを提供します。デジタルピンを電源として再定義することで、5VおよびGND接続が限られているという一般的な問題を解決できます。ピンあたりの重要な20mA制限を覚えておけば、将来のプロジェクトでさまざまなセンサーや小型モジュールに安全に電力を供給できます。

チャプター

  • [00:00] 5Vピンの紹介と概要
  • [00:54] ICSPヘッダーとSPIピンの理解
  • [01:55] 電源ソースに基づく電流制限
  • [03:30] デジタルピンの電流制限と使用例
  • [04:51] 追加の5VおよびGNDを作成するためのコード解説
  • [06:05] LEDを使用した配線デモ
  • [06:59] ブレッドボード電源分配によるスケールアップ

画像

Arduino UNO R3 compatible development board
Arduino UNO R3 compatible development board
538-Lesson 7: Getting Additional 5V and GND from Arduino
言語: C++
/*
 * S01-07 Additional 5V or GND pin.
If your Arduino board voltage is 3.3V, then we will get 3.3V and GND pin

 * Arduino Sketch to give you extra 5V pin from Arduino
  Please watch video instruction here https://youtu.be/pQKrl5Kpi50
 This code is available at http://robojax.com/course1/?vid=lecture07

with over 100 lectures Free On YouTube. Watch it here http://robojax.com/L/?id=338
Get the code for the course: http://robojax.com/L/?id=339 
 * Written by Ahmad Shamshiri for Robojax, robojax.com http://youtube.com/robojaxTV
 * on Jan 01, 2019 at 08:54 in Ajax, Ontario, Canada
 * 
 */
#define VCC2  5 // define pin 5 or any other digital pin here as VCC2
#define GND2  2 // define pin 2 or any other digital pin as Ground 2

void setup() {
    
  pinMode(VCC2,OUTPUT);//define a digital pin as output
  digitalWrite(VCC2, HIGH);// set the above pin as HIGH so it acts as 5V

  pinMode(GND2,OUTPUT);//define a digital pin as output
  digitalWrite(GND2, LOW);// set the above pin as LOW so it acts as Ground  

}

void loop() {
	//Robojax Step By Step Arduino Course http://robojax.com/L/?id=338


}

ファイル📁

ファイルは利用できません。