工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

変更可能なコードを備えたキーパッドドアロック

コンポーネントと消耗品

>
Arduino UNO
× 1
4x4キーパッドマトリックス
× 1
一般的なプッシュボタン
× 1
LCDi²c
× 1
リニアソレノイドロック
× 1
IRF510N MOSFET
× 1
1チャネルリレー
× 1

必要なツールとマシン

>
ブレッドボード、170ピン
10個ジャンパー線キット、長さ5 cm

このプロジェクトについて

こんにちは。このチュートリアルへようこそ(古いですがクラシックです)。今日は、Arduinoボード、キーパッド、LCDi²c画面に基づいてドアロックプロジェクトを作成しています。ロックにはソレノイドとリレーを使用します。 DCモーターを使用するロックを使用した指紋ドアロックについてのチュートリアルを確認できます。そのため、ロックシステムによっては、配線、コードを選択し、それらを適合させる必要があります。

N.B:実際のプロジェクトでは、ソレノイドを使用することはまったくお勧めしませんが、電子ロックと機械式ロックの両方で開くことができるロックをハックして、プロジェクトをそれに適合させます。

パーツ

したがって、このプロジェクトでは、これらのコンポーネントと、いくつかのジャンプワイヤ、および12Vの電源が必要になります。申し訳ありませんが、ここには追加しませんでした:

<図> <図> <図> <図> <図> <図> <図>

プッシュボタンは、内側からロックを開くためのものです。必要に応じてロックを解除できます。抵抗はデバウンス用です。

3×4を使用できる4×4キーパッドを使用しましたが、確認のためにコード内の何かを変更する必要があります。「A」を使用すると、「*」または「#」に変更できます。

ソレノイドは12V外部電源から電力を供給され、IRF510NMOSFETトランジスタによって駆動されます。

トランジスタはスイッチとして使用され、Nチャネルを使用することをお勧めします。IRF510NはArduinoと一緒に使用すると非常に人気があり、ゲートとソースに5Vの電圧を印加すると、トランジスタはドレインとソース。バイポーラのような抵抗は必要ありません。

また、電圧が印加されていない場合、トランジスタは開いたスイッチのように機能し、これがソレノイドの制御方法です。

他の例では、1チャンネルのリレーモジュールを使用しており、3.3Vで動作し、トランジスタを制御するように入力を制御します。唯一の違いは、それらが反転していることです(コードで確認します)。

アルゴリズムのフローチャート

わかりやすくするために、ここにフローチャートがあります。これは完全に詳細ではありませんが、コードの概要です。

<図>

注:リレーを使用して、最大250VACの電気錠を制御できます。また、ソレノイドを使用してソレノイドを制御することもできます…

コードはまったく同じですが、唯一のことは、ロックを開くために(LOWとHIGH)を切り替えることです。

初めてコードをアップロードしてパスコードを変更し、いくつかの行のコメントを外して(コードを読んでそれらを見つける(セットアップ中))、EEPROMからパスコードを読み取れるようにコードを再アップロードする必要があることを覚えておいてください。 。

また、コードの長さを変更することもできます。最初は4桁にしましたが、コードで「4」ではなく「sizeof(code)」を使用したため、デフォルトのコードから変更できます。 4桁のコードを6桁のパスコードに変更することはできません。最初に、コードソースから最初のパスコードを変更してください。

テスト

下の写真でテストを見つけて、それらをナビゲートします

<図> <図> <図> <図> <図> <図> <図> <図> <図> <図> <図> <図>

これがプロジェクトのテストでした。ソレノイドやリレーでも同じです。必要に応じて、プッシュボタンを内側から開くか、取り外すことができます。

お役に立てば幸いです。問題や質問がある場合はコメントを残してください。

コード

  • Keypad_doorlock_solenoid.ino
  • Keypad_doorlock_relay.ino
Keypad_doorlock_solenoid.ino Arduino
最初にコードをアップロードしてから、62行目から64行目までのコメントを外して再アップロードすることを忘れないでください。これは、1回だけ実行されます。
 / *このコードは、4x4 Keypad Matrix、LCD ic、IRF510Nトランジスタ、およびプッシュボタンで機能します正しいコードで開くか、内部からプッシュボタンで開くことができるソレノイドロック*コードはキーパッドで直接変更でき、コードを再度アップロードする必要はありません*コードはEEPROMに保存されます* www.surtrtech.comを参照してください詳細* /#include  #include  #include  #define Solenoid 11 //実際にはソレノイドを制御するトランジスタのゲート#defineO_Button 10 //プッシュボタン#define I2C_ADDR 0x27 // I2Cアドレス、最初にアドレスをスキャンするコードを使用する必要があります(0x27)ここで#define BACKLIGHT_PIN 3 // LCDピンを宣言します#defineEn_pin 2#define Rw_pin 1#define Rs_pin 0#define D4_pin 4#define D5_pin 5#define D6_pin 6#define D7_pin 7const byte numRows =4; //キーパッドの行数constbyte numCols =4; //キーパッドの列数keymap [numRows] [numCols] ={{'1'、 '2'、 '3'、 'A'}、{'4'、 '5'、 '6'、 'B '}、{' 7 '、' 8 '、' 9 '、' C '}、{' * '、' 0 '、'# '、' D '}}; char keypressed; //キーが保存されている場所では、頻繁に変更されますchar code [] ={'6'、 '6'、 '0'、 '1'}; //デフォルトのコード。変更するか、「n」桁にすることができますonechar code_buff1 [sizeof(code)]; //新しいキーが保存されている場所charcode_buff2 [sizeof(code)]; //新しいキーが再び保存され、前のキーと比較される場所a =0、i =0、s =0、j =0; //後で使用される変数byterowPins [numRows] ={9,8,7,6}; //行0から3 //ピンを変更する場合は、このtoobyte colPins [numCols] ={5,4,3,2};を変更する必要があります。 //列0〜3LiquidCrystal_I2C lcd(I2C_ADDR、En_pin、Rw_pin、Rs_pin、D4_pin、D5_pin、D6_pin、D7_pin); Keypad myKeypad =Keypad(makeKeymap(keymap)、rowPins、colPins、numRows、numCols); .begin(16,2); lcd.setBacklightPin(BACKLIGHT_PIN、POSITIVE); lcd.setBacklight(HIGH); //照明バックライトlcd.home(); lcd.print( "スタンバイ"); // LCDに書かれていることは、pinMode(Solenoid、OUTPUT);を変更できます。 pinMode(O_Button、INPUT); // for(i =0; i  
Keypad_doorlock_relay.ino Arduino
最初にコードをアップロードしてから、62行目から64行目までのコメントを外して再アップロードすることを忘れないでください。これは、1回だけ実行されます。
 / *このコードは、4x4 Keypad Matrix、LCD ic、リレーモジュール、およびプッシュボタンで機能します。正しいコードまたは内部からのプッシュボタンのいずれかで開くことができるロックを制御します*コードはキーパッドで直接変更でき、コードを再度アップロードする必要はありません*コードはEEPROMに保存されます* www.surtrtech.comを参照してください詳細* /#include  #include  #include  #define Relay 11 //リレーを制御します#defineO_Button 10 //プッシュボタン#defineI2C_ADDR 0x27 // I2Cアドレス、最初にアドレスをスキャンするコードを使用する必要があります(0x27)here#define BACKLIGHT_PIN 3 // LCDピンの宣言#defineEn_pin 2#define Rw_pin 1#define Rs_pin 0#define D4_pin 4#define D5_pin 5#define D6_pin 6# D7_pin7constバイトnumRows =4を定義します。 //キーパッドの行数constbyte numCols =4; //キーパッドの列数keymap [numRows] [numCols] ={{'1'、 '2'、 '3'、 'A'}、{'4'、 '5'、 '6'、 'B '}、{' 7 '、' 8 '、' 9 '、' C '}、{' * '、' 0 '、'# '、' D '}}; char keypressed; //キーが保存されている場所では、頻繁に変更されますchar code [] ={'6'、 '6'、 '0'、 '1'}; //デフォルトのコード。変更するか、「n」桁にすることができますonechar code_buff1 [sizeof(code)]; //新しいキーが保存されている場所charcode_buff2 [sizeof(code)]; //新しいキーが再び保存され、前のキーと比較される場所a =0、i =0、s =0、j =0; //後で使用される変数byterowPins [numRows] ={9,8,7,6}; //行0から3 //ピンを変更する場合は、このtoobyte colPins [numCols] ={5,4,3,2};を変更する必要があります。 //列0〜3LiquidCrystal_I2C lcd(I2C_ADDR、En_pin、Rw_pin、Rs_pin、D4_pin、D5_pin、D6_pin、D7_pin); Keypad myKeypad =Keypad(makeKeymap(keymap)、rowPins、colPins、numRows、numCols); .begin(16,2); lcd.setBacklightPin(BACKLIGHT_PIN、POSITIVE); lcd.setBacklight(HIGH); //照明バックライトlcd.home(); lcd.print( "スタンバイ"); // LCDに書き込まれる内容は、pinMode(Relay、OUTPUT);を変更できます。 pinMode(O_Button、INPUT); // for(i =0; i  

回路図


製造プロセス

  1. 銀行の金庫室
  2. スマートフォンの近接センサーで自動ロック式のオフィスドアを作る
  3. マルチ温度センサー
  4. MotionSense
  5. 3Dプリンターの火災安全
  6. パスワードベースのドアロック
  7. Arduino、Yaler、IFTTTを使用したIoTゲージ
  8. Arduinoの反発電磁浮上
  9. リモコングリッパーボット
  10. マイクロコントローラーラボ
  11. CoroFence-熱検出器🖖