Arduinoのロックメカニズム:5つのステップ

Arduinoのロックメカニズム:5つのステップ

目次:

Anonim

これはホームセキュリティシステムをエミュレートする単純なArduinoプロジェクトです。

実際の環境では大きな違いはないはずですが、Proteus上で完全にシミュレートされています。

あなたが必要とするでしょう:

  1. プロテウス
  2. アトメルスタジオ
  3. Atmel Studio用のビジュアルマイクロ
  4. Arduino IDE

あなたはちょうどProteusとArduino IDEを使用することができますが、私は以下を利用するために完全なセットアップを好みます:

  1. .hexファイルはプロジェクトフォルダ内に格納されています
  2. Atmel Studioは魅力的なオートコンプリート機能を備えています

基本的にプロジェクトがロードされるとき、あなたはそのようなセットアップを見るでしょう

用品:

ステップ1:設定、コード化

#含める

#include #include #include

int greenLed = 22。 int redLed = 23。 int servPin = 24; //サーボintピエゾピン= 25; char * ourCode = "1234"; int currentPosition = 0;サーボmyservo。 int pos = 0;

const byte rows = 4; const byte cols = 3;

char keys rows cols = {{'1'、 '2'、 '3'}、{'4'、 '5'、 '6'}、{'7'、 '8'、 '9' }、{'*'、 '0'、 '#'}}; byte rowPins rows = {13,10,9,8}; byte colPins cols = {7,6,1};キーパッドキーパッド=キーパッド(makeKeymap(keys)、rowPins、colPins、rows、cols);液晶クリスタル(12,11,5,4,3,2)。

void setup(){Lcd.begin(16,2); myservo.attach(24)。 displayCodeEntryScreen(); pinMode(ピエゾピン、出力); pinMode(servPin、OUTPUT); pinMode(redLed、OUTPUT); pinMode(greenLed、OUTPUT); digitalWrite(赤、LOW)。 digitalWrite(緑色LED、LOW)。 }

void loop(){int l; char key = keypad.getKey(); Lcd.setCursor(0,0); Lcd.print( "ENTER PASSWORD"); if(int(key)!= 0){Lcd.setCursor(4,1); for(l = 0; l <= currentPosition; ++ l){Lcd.print( "*");} if(key == ourCode currentPosition){++ currentPosition; if(currentPosition == 4){unlockDoor(); currentPosition = 0; else {invalidCode();}} currentPosition = 0; void invalidCode(){digitalWrite(redLed、HIGH);}}}} digitalWrite(servPin、LOW); digitalWrite(ピエゾピン、HIGH)。 clearScreen(); Lcd.setCursor(0,0); Lcd.print( "アクセス拒否!"); Lcd.setCursor(0,1); Lcd.print( "INVALID CODE");遅延(5000)。 digitalWrite(赤、LOW)。 digitalWrite(ピエゾピン、LOW)。

displayCodeEntryScreen(); }

void turnHandle(){((pos = 0; pos <= 180; pos + = 1)の場合// // 0度から180度まで{// 1度単位でmyservo.write(pos); //変数 'pos' delay(15)の位置に移動するようにサーボに指示します。 //(pos = 180; pos> = 0; pos- = 1)//サーボが位置に達するまで15ms待つ// // 180度から0度になる{myservo.write(pos);} //変数 'pos' delay(15)の位置に移動するようにサーボに指示します。 //サーボが位置に到達するまで15ms待つ

void unlockDoor(){digitalWrite(greenLed、HIGH); clearScreen(); Lcd.setCursor(0,0); Lcd.print( "ACCESS GRANTED"); Lcd.setCursor(0,1); Lcd.print( "ようこそ!!"); digitalWrite(servPin、HIGH); turnHandle();遅延(500)。 digitalWrite(緑色LED、LOW)。 digitalWrite(servPin、LOW); displayCodeEntryScreen(); void displayCodeEntryScreen(){clearScreen();} Lcd.setCursor(0,0); Lcd.print( "こんにちはAND"); Lcd.setCursor(0,1); Lcd.print( "ようこそ!");遅延(3000)。 clearScreen(); void clearScreen(){Lcd.setCursor(0,0);} Lcd.print( ""); Lcd.setCursor(0,1); Lcd.print( ""); }

ステップ2:ようこそ画面

成功した構築で、ファイルは例えば以下のファイル ディレクトリに格納されるべきです。C: Users ユーザー名 Documents Atmel Studio 6.2 ProjectFolder ProjectName Debug

ようこそ画面は表示のとおりです…

ステップ3:パスワード要求

パスワードを入力してください

私たちの場合1234

ステップ4:アクセス許可

入場に成功しました

ステップ5:閉じる

モーターがドアロック解除をシミュレートするために移動した後、それは再びロックしてホーム画面を表示します