目次:
これはホームセキュリティシステムをエミュレートする単純なArduinoプロジェクトです。
実際の環境では大きな違いはないはずですが、Proteus上で完全にシミュレートされています。
あなたが必要とするでしょう:
- プロテウス
- アトメルスタジオ
- Atmel Studio用のビジュアルマイクロ
- Arduino IDE
あなたはちょうどProteusとArduino IDEを使用することができますが、私は以下を利用するために完全なセットアップを好みます:
- .hexファイルはプロジェクトフォルダ内に格納されています
- 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:閉じる
モーターがドアロック解除をシミュレートするために移動した後、それは再びロックしてホーム画面を表示します