ホールセンサーは、磁場に接触すると出力で電気信号を生成するセンサーです。センサーの出力での電気信号のアナログ値は、磁場の強さの関数です。ホールセンサーは最近どこにでもあり、さまざまな理由で、携帯電話からスイッチまで、自動車やその他の自動車産業ベースの製品の速度、位置、距離の測定のために、あらゆる種類のデバイスで使用されています。ホールセンサーのこの多様性は、メーカーや電気技師にとってなくてはならないものです。そのため、今日は、ラズベリーパイベースのプロジェクトでホールセンサーを使用する方法を紹介します。
ホールセンサーとArduinoのインターフェースなど、他のホールセンサーベースのプロジェクトをいつでも確認できます。
必要なコンポーネント
このプロジェクトをビルドするには、次のコンポーネント/パーツが必要です。
- ラズベリーパイ2または3
- SDカード(最小8GB)
- ホール効果センサー
- ジャンパー線
- ブレッドボード
- LANケーブル
- 電源
使用できるオプション部品には、次のものがあります。
- モニター
- キーボードとマウス
- HDMIケーブル
- Wi-Fiドングル
このチュートリアルはRaspbianストレッチOSに基づいているため、通常どおり続行するには、RaspbianストレッチOSを使用したRaspberry Piのセットアップに精通しており、puttyなどのターミナルソフトウェアを使用してRaspberryPiにSSH接続する方法を知っていることを前提としています。 。これに問題がある場合は、このWebサイトに役立つRaspberryPiチュートリアルがたくさんあります。
RaspbianストレッチOSを初めてインストールする人にとって、私が発見した1つの問題は、ほとんどの人が抱えている、ssh経由でRaspberryPiにアクセスすることです。sshは元々OSで無効になっており、有効にするにはモニターが必要になるか、ラズベリーパイの構成オプションの下で、またはWindowsまたはLinuxコンピューターを使用して ssh という名前の空のファイルを作成し、空のファイルをにコピーする必要があることに注意してください。 SDカードのルートディレクトリ。コピーするには、SDカートをコンピューターのSDdカードスロットに挿入する必要があります。
2番目の方法を使用すると、ヘッドレスモードでpiを実行する場合に適しています。すべての部品の準備ができたら、構築に進むことができます。
回路図:
Raspberry Piでホール効果センサーを使用するには、以下の回路図に従ってコンポーネントを接続します。
このチュートリアルで使用されるホールセンサーは、出力でアナログ値とデジタル値の両方を提供できます。ただし、チュートリアルを簡略化するために、アナログ出力を使用するにはADCをRaspberry Piに接続する必要があるため、デジタル値を使用することにしました。
Pythonコードと動作説明:
このホールセンサープロジェクトのPythonコードは非常に単純なものです。必要なのは、ホールセンサーからの出力を読み取り、それに応じてLEDをオンまたはオフにすることだけです。磁石が検出された場合はLEDがオンになり、それ以外の場合はオフになります。
Raspberry Piの電源を入れ、パテを使用してSSHで接続します(私のようにヘッドレスモードで接続している場合)。ほとんどのプロジェクトでいつものように、ホームディレクトリ内に各プロジェクトに関するすべてが保存されるディレクトリを作成するので、このプロジェクトでは、 hall というディレクトリを作成します。これは、物事を整理するための個人的な好みであることに注意してください。
を使用してディレクトリを作成します。
mkdirホールセンサー
ディレクトリを作成したばかりの新しいディレクトリに変更し、エディタを開いて、を使用してPythonスクリプトを作成します。
CDホールセンサー
に続く;
nano hallsensorcode.py
エディターが開いたら、プロジェクトのコードを入力します。主要な概念を示すためにコードの簡単な内訳を行い、その後、完全なpythonコードが利用可能になります。
RPI.GPIOライブラリをインポートしてコードを開始します。これにより、Pythonスクリプトを記述してラズベリーパイのGPIOピンと対話できます。
RPi.GPIOをgpioとしてインポートします
次に、使用するRpiのGPIOの番号付け構成を設定し、GPIO警告を無効にして、コードのフリーフロー実行を許可します。
gpio.setmode(gpio.BCM) gpio.setwarnings(False)
次に、選択したBCM番号に従って、LEDとホールセンサーのデジタル出力が接続されているGPIOピンを宣言します。
ホールピン= 2 レドピン= 3
次に、GPIOピンを入力または出力として設定します。LEDが接続されているピンが出力として設定され、ホールセンサーが接続されているピンが入力として設定されます。
gpio.setup(hallpin、gpio.IN) gpio.setup(ledpin、gpio.OUT)
これで、コードの主要部分を記述します。これは、ホールセンサーからの出力を常に評価し、磁石が検出されるとLEDをオンにし、磁石が検出されない場合はLEDをオフにする while ループです。
while True: if(gpio.input(hallpin)== False): gpio.output(ledpin、True) print( " magnetdetected ")else: gpio.output(ledpin、False) print( "磁場が検出されません")
デモビデオとの完全なPythonのコードは、プロジェクトの最後に与えられています。
コードをコピーして保存し、を使用して入力した後、エディターを終了します。
CTRL + Xの 後に yが 続きます。
保存後、接続をもう一度確認し、;を使用してPythonスクリプトを実行します。
sudo python hallsensorcode.py
スクリプトを実行していると、磁石などの磁石をホールセンサーに近づけると、下の画像のようにLEDが点灯します。
スマートホーム用のリードスイッチから自転車用のスピードメーターまで、このチュートリアルをベースに構築できる非常にクールなものがいくつかあります。以下のコメントセクションで、構築する予定のプロジェクトを自由に共有してください。
以前のホールセンサーベースのプロジェクトをすべて確認してください。
- ArduinoとAndroidアプリの処理を使用したDIYスピードメーター
- PICマイクロコントローラーを使用したデジタル速度計と走行距離計回路
- Arduinoと処理を使用したバーチャルリアリティ
- Arduinoを使用した磁場強度測定