Arduinoを使用した自動ナイトランプ
Arduinoを使用した自動ナイトランプ–コード、作業、シミュレーション
自動化とは、基本的に、人間の労力を削減または排除する方法を発明することを意味します。このチュートリアルでは、Proteusソフトウェアを使用して、ArduinoとRelayの簡単なインターフェースを介して常夜灯を自動化する方法を説明します。アプリケーションは、単純なサーモスタットを使用したボイラー制御から、大量の入力および出力データを使用した大規模な業界管理にまで及ぶため、自動化は1時間の必要性です。自動化の複雑さは、基本的な「オン/オフ」制御から、産業用自動化システムなどの非常に複雑な多変数アルゴリズムまでさまざまです。自動化を目的とした制御システムは、開ループまたは閉ループのいずれかです。つまり、単一の入力パラメーターで動作するか、閉ループシステムの場合のように入力として供給される出力に応答して動作します。
すべてのテクノロジーの場合と同様に、自動化にも長所と短所があります:
長所
- 生産性の向上
- 予測可能な品質(品質改善)
- 堅牢性の向上
- 優れた出力の一貫性
- 人件費の削減
- 非常に正確
- 単調な作業での人間の労力を削減します
短所
- セキュリティの脅威に弱い
- 開発コストが予測を超える可能性があります
- 高いセットアップコスト
- 多くのセクターでの失業の原因
言及された長所は短所をはるかに上回り、それが全世界が自動化の時代に足を踏み入れている理由です。
このチュートリアルでは、回路が光の強度のかなりの変化を検出したときに、ランプを自動的にオンまたはオフにしようとしています。自動化に使用される最も一般的な2つのツール、つまりArduinoとRelay、およびシミュレーションとのインターフェースは、Proteusソフトウェアによって実現されます。
- 関連プロジェクト:自動LED非常灯回路
必要なコンポーネント
- Arduino UNO
- 5ボルトをリレー
- LDR(光依存抵抗器)
- 抵抗10Kオーム
- トランジスタBC547
- DC供給5ボルト
- AC供給220ボルト
必要なソフトウェア
- Arduino IDE
- プロテウス
自動常夜灯回路図
- 関連記事:緊急LEDライト回路–LED-716LEDライトの回路図
コンポーネントの説明
Arduino UNO
Arduinoは基本的にオープンソースの開発ボードであり、主にMicrochip ATmega328Pマイクロコントローラーを利用し、Arduino.ccによって製造されています。ボードには、さまざまな拡張ボードや外部回路に接続できるデジタルとアナログで構成される入力/出力ピンのセットが付属しています。ボードには、IDE(統合開発環境)の助けを借りて利用またはプログラム可能にされた6つのアナログピンと一緒に14のデジタルピンが付いています。プログラムは、USBケーブルタイプBを介して書き込まれます。
ボードの電源投入方法は、USBケーブルまたは12ボルトのDC電源を接続することによって行うことができます。デザインと動作の観点から、他のファミリーメンバーであるArduinoNanoやArduinoLeonardoとそれほど違いはありません。
STK500は、Unoが通信するための元のプロトコルです。以前のバージョンとの主な違いは、FTDI(USB-シリアルドライバーチップ)を使用していないことです。
- 関連記事:Arduinoとは何ですか?プログラム方法は?
リレー
リレーは、電気的に操作してAC/DCアプライアンスのオンとオフを切り替えることができる電磁スイッチです。 Arduinoピンが提供する出力のように、5ボルトの低電圧でも制御できます。これは、片側(低電圧側)に金属接点を備えたコイルで構成されており、磁化および消磁して、反対側(高電圧側)に接続されている回路を開閉できます。高電圧側は、コモン(COM)、ノーマルクローズ(NC)、ノーマルオープン(NO)の3つのソケットを備えたコネクタで構成されています。リレーには、12V、9V、5V、3Vなどのさまざまな定格があります。
- 関連記事:リレーをテストする方法は? SSRとコイルリレーの確認
LDR
LDR(光依存抵抗器)は、光の強度の変化に応じて抵抗値を変化させることができる可変抵抗コンポーネントであり、光伝導性の原理に基づいて機能します。抵抗の値は、光の強度が増すにつれて減少します。感光性検出器回路および光活性化スイッチング回路で使用されます。
LDRは、光がない場合はメガオーム、光がある場合は数百オームの抵抗を持つ高抵抗半導体で構成されています。
- 関連記事:LDRとトランジスタBC547を使用した自動街路灯制御システム
BC547 –NPNトランジスタ
トランジスタは基本的に、電子信号と電力を増幅または切り替えるために使用される半導体デバイスです。半導体材料でできており、外部回路に接続するための3つの端子があります。この回路では、NPNバイポーラ接合トランジスタであるBC547を使用しました。
- 関連プロジェクト:555タイマーとBC547トランジスタを使用したシンプルなタッチセンシティブスイッチ回路
ベース端子の小さな値の電流は、エミッタ端子とコレクター端子の大きな値の電流を制御します。特性曲線の目的の領域で動作するには、トランジスタ端子に固定DC電圧が必要です。トランジスタは、増幅の目的で使用される場合、すべての入力で部分的にオンになり、増幅された出力信号がエミッタで取得されるようにバイアスがかけられたままになります。スイッチングアプリケーションの場合、トランジスタはバイアスされているため、ベース端子に信号が存在する場合は完全にオンのままになり、ベース信号がない場合は完全にオフになります。
- 関連記事:マルチメータでトランジスタをチェックする方法–NPNとPNP–4つの方法
評価
- V CEO =45 Vdc
- I c =100mAdc
- V CBO =50 Vdc
- V EBO =6 Vdc
ソフトウェアの説明
プロテウス
Proteusデザインスイートは、電子設計自動化を実行するために使用されるプロプライエタリソフトウェアのカテゴリに分類されます。このソフトウェアは、PCBレイアウトと呼ばれる電子形式で回路図と印刷物を作成する目的で、電子設計エンジニアとそれぞれの技術者にとって非常に便利です。このソフトウェアは、英国のヨークシャーでLabcenter Electronics Ltd.によって開発され、英語、フランス語、スペイン語、北京語の多言語サポートが付属しています。
定期的にアドバンスコンポーネントで構成される新しいライブラリで定期的に更新され、既存のライブラリリストに簡単に追加できます。
このソフトウェアは、回路やマイクロコントローラーをシミュレートできるため、広く使用されています。シミュレーションは、物理コンポーネントを使用しなくても、設計された回路の動作とテストを理解するのに役立ちます。そのユーザーインターフェイスは、市場に出回っている他のソフトウェアよりも優れています。ライブラリセクションには1500万を超えるコンポーネントが用意されているため、ユーザーはフットプリントやコンポーネントの作成に時間を費やす必要がありません。
Arduino IDE
Arduino IDEは、さまざまなプラットフォームで使用できるソフトウェアです。したがって、これはクロスプラットフォームアプリケーションであり、プログラミング言語javaを使用して開発されました。スケッチを書き、Arduino互換ボードにアップロードするという魂の目的があります。サポートされている言語はCおよびC++であり、これらは少し変更されており、使用されているライブラリによって異なります。ソフトウェアにはさまざまなライブラリが組み込まれており、他のライブラリはサードパーティベンダーからダウンロードできます。 IDEは、avrdudeと呼ばれるプログラムを使用して、ボードのファームウェアにプリインストールされているローダープログラムを使用して、コードを16進エンコーディングのファイルに変換します。このファイルはボードにロードされます。
プロジェクトコード
コードの説明
まず、整数型の2つのグローバル変数を定義します。変数analogIN 回路からアナログ値を受け取るアナログピンと、2番目の変数トリガーを示すために使用されます。 十分な電圧のトリガー出力を供給するデジタルピンを示します。
int analogIN =A3;
int Trigger =12;
ボーレートは、データ転送速度を表す9600ビット/秒に設定されています。 pinMode()関数は、ピンの状態を定義するために使用されます。ここでは、ピン12を出力として、ピンA3を入力として設定します。これらのステートメントはすべて関数voidsetup()で記述され、実行期間全体で1回だけ実行されます。
void setup()
{
Serial.begin(9600);
pinMode(analogIN、INPUT);
pinMode(Trigger、OUTPUT);
}
回路図によると、ピンA3からアナログ値の形式の特定のデータを読み取る必要があります。この特定のタスクでは、関数 analogRead()を使用しました。 回路から生成される入力はアナログ値であるため、これがアナログピンとアナログ機能を使用する理由です。
これで、アナログピンA3からこのアナログ値を取得し、その値を変数「value」に格納します。
この変数には、0〜1234の範囲の整数値が含まれ、アナログ入力によって異なります。 Arduinoには10ビットADCコンバーターが付属しているため、これは10ビットADC値です。
「value」変数に格納されている値は、条件演算子(if-else)の実行に使用されます。この演算子を使用して、デジタルピントリガーの状態をHIGHまたはLOWに設定し、ランプのオンとオフを切り替えます。可変の「値」で保存されたデータを印刷する主な利点は、光の強度を特定の値に関連付けて、希望の光の強度でランプをオンにできることです。
関数「voidloop()」内にあるコードは、Arduinoに電力が供給されるまで繰り返し実行されます。したがって、プロジェクトが常に動作状態にあることを確認するには、ここで使用するArduinoUnoに24時間年中無休で電源を供給する必要があります。
void loop(){
int value =analogRead(analogIN);
Serial.println(value);
if(value <692)
{
digitalWrite(Trigger、HIGH);
Serial.println( "lamp is ON");
}
else {
digitalWrite(Trigger、LOW);
Serial.println( "lamp is OFF");
}
}
コードの16進ファイルの場所を取得するにはどうすればよいですか?
Arduino IDEで[ファイル]>[設定]をクリックし、[詳細出力を表示]で、コンパイルとアップロードの両方のオプションを確認し、下のウィンドウでコードをコンパイルしたら、を選択して16進ファイルの場所をコピーし、ProteusでArduinoをダブルクリックし、ファイルの場所を[プログラムファイル]オプションに貼り付けて、[OK]をクリックします。これで、回路のシミュレーションの準備が整いました。
- 555タイマーを使用した拍手スイッチ回路電子プロジェクト
シミュレーションビデオ
近日公開
近くのランプ回路が機能しています
次に、回路の動作について説明します。ここでは、5V DC電源(Arduinoの5V)を使用し、分圧回路に10kオームの抵抗とLDRを接続しました。抵抗またはLDRの両端を取り、Arduinoのアナログピン(この場合はピンA3)に供給することができる電圧。
上記のコードを使用すると、ボードは提供されたアナログ入力を検出できるようになります。読み取られるこの値は、LDRによって検出される光の強度に応じたものです。
シリアルモニターで次の値を確認しながら、光の強さに応じて回路を調整できます。したがって、コードで提供される条件ステートメントの条件を変更して、ランプを希望の光の強度で「オン」および「オフ」にして、動的にすることができます。
これで、条件ステートメントが満たされると、つまり、光の強度が(ADCと同等の形式で)提供された値を下回ると、ボードはピンで「HIGH」出力を生成します。 12「HIGH」とは、ピン12として5V出力を生成することを意味します。
この場合、トランジスタのベースに十分な電圧が発生し、トランジスタが導通を開始します。その結果、リレーのコイルに電流が流れ始め、それがオンになります。これは、NO端子がランプ回路が接続されているアクティブ状態に切り替わり、回路が完了するとランプが「オン」になることを意味します。 」。
コードのelse条件が真になると、ランプが「オフ」になります。つまり、光の強度が、指定されたしきい値から増加します。したがって、ピン12の出力は「LOW」になり、続いてリレーがオフになり、ランプがオフになります。
- IC4017および555タイマーを使用した信号機制御電子プロジェクト
結論:
私たちは皆、ライフスタイルを楽にしたいのです。ここでは、自動常夜灯が何をしているのかを説明します。常夜灯をオンまたはオフにする必要はありません。落下する光の強さに応じて自動的にON/OFFします。昼間、センサー上で暗くなるとランプはオフ状態のままになり、ランプがオンになります。このプロジェクトは、基本的な電子部品を使用して同じものを設計するのに役立ちます。また、Arduinoを使い始めるのが難しくならないように、コードについても説明しました。
関連プロジェクト:
- 自動植物散水および灌漑システム–回路、コード、およびプロジェクトレポート
- 雨警報回路–雪、水、雨の検出器プロジェクト
- 水位インジケーターの回路図-2つの簡単なプロジェクト
- その他の電気電子工学プロジェクト
産業技術