قفل رمز درب بازکن با آردینو (  Arduino Safety Lock  )

الکترونیک قفل رمز درب بازکن با آردینو ( Arduino Safety Lock ) 2022-05-17

دسترسی دریافت را ندارید
  • نویسنده موضوع نویسنده موضوع SONIC
  • تاریخ شروع تاریخ شروع

اطلاعات موضوع

درباره موضوع در تاریخ, در دسته الکترونیک ایجاد شده و آغاز کننده آن SONICمی باشد و موضوع آن: قفل رمز درب بازکن با آردینو ( Arduino Safety Lock ) است. این موضوع تا کنون 88 بازدید کننده و, 0 پاسخ داشته و 3 بار پسندیده شده...
نام دسته الکترونیک
نام موضوع قفل رمز درب بازکن با آردینو ( Arduino Safety Lock )
آغاز کننده موضوع SONIC
تاریخ شروع
پاسخ‌ها
بازدیدها
پسندها
آخرین ارسال توسط SONIC

SONIC

مدیر بخش برق و الکترونیک (SONIC)
پرسنل مدیریت
مدیر انجمن
استاد و مشاور الکترونیک
عضو افتخاری گروه الکترونیک
به شدت دوست داشتنی مدیر انجمن
تاریخ ثبت‌نام
Oct 14, 2021
نوشته‌ها
1,845
راه‌حل‌ها
1
در این پست قصد دارم یک قفل رمز ایمنی چهارقمی با نمایشگر و صفحه کی برد خازنی 12 کلیدی همراه با باز کردن قفل مکانیکی را با آردینو برای شما نمایش و ارائه کنم.

برای دیدن تصاویر باید ثبت نام کنید

صفحه LCD پیامی را نمایش می دهد که از کاربر می خواهد رمز عبور را وارد کند. رمز عبور پیش فرض این است: <1036> و در حافظه فلش میکروکنترلر ذخیره می شود. پس از وارد کردن رمز عبور، کاربر باید کلید '#' را که به عنوان <Enter> عمل می کند فشار دهد. اگر کاربر در وارد کردن رمز عبور اشتباه کند، می تواند با فشردن کلید "*" آن را پاک کند. اگر کاربر رمز عبور را درست وارد کرده باشد، سرو موتور چند درجه می چرخد تا درب باز شود. بعد از دو ثانیه سروو موتور به حالت اولیه خود باز می گردد. یک خازن 1000 uF / 16 ولت به همراه کابل های سروو برق + 5 ولت برای از بین بردن تلاطم سروموتور اضافه شده است.

برای دیدن تصاویر باید ثبت نام کنید


من یک طرح ساده نوشتم فایل آن باز است تا شما بتوانید به راحتی آن را تغییر دهید و آن را برای مطابقت با نیازهای خود پیچیده تر کنید (تغییر رمز عبور، لیست دسترسی کاربر و غیره).
/*
* قفل ایمنی الکترونیک v2

#define SERVO_1 3 /* D3 به عنوان خروجی. موتور سروو را درایو می کند */
#define SERVO_ON 160
#define SERVO_OFF 20

#define KBD_TX 10 /* Pin D10. داده از صفحه کلید خازنی تا آردوینو (9600 bps) */
#define KBD_RX 11 /* این پین استفاده نمی شود */
#define KBD_ASTERISK 0x0A /* <*> */
#define KBD_ZERO 0x0B /* <0> */
#define KBD_SH 0x0C /* <#> */

#include < Wire . h >
#include < سروو . h >
#include "rgb_lcd.h"
#include < SoftwareSerial . ساعت>

const byte my_password [ ] = { 1 , 0 , 3 , 6 } ;
const byte SIZE_OF_MY_PASS = sizeof ( my_password ) ;
بایت success_digits = 0 ;
بایت lcd_position = 0 ;

سروو میسروو ; /* ایجاد شی سروو برای کنترل سروو */
rgb_lcd lcd ;
نرم افزار CapKeypad سریال ( KBD_TX , KBD_RX ) ؛ // Arduino RX، Arduino TX


void setup ( ) {

CapKeypad . شروع ( 9600 ) ;
pinMode ( KBD_TX , INPUT ) ;
ال سی دی . شروع ( 16 , 2 ) ;
clear_lcd_password_area ( ) ;
میسروو . پیوست ( SERVO_1 ) ؛
}

void loop ( ) {

if ( read_keyboard( ) == true ) { /* اگر رمز عبور درست است، */
unlock_door ( ) ; /* قفل در را باز کنید */
}
}

read_keyboard boolean ( ) { byte val ; if ( CapKeypad . موجود ( ) > 0 ) { val = CapKeypad . خواندن ( ) - 0xe0 ; /* اگر ( val == ) پیشوند 0xE0 را از مقدار صفحه کلید */ حذف کنید


KBD_ASTERISK ) { /* <Clear password> Button */
clear_lcd_password_area ( ) ;
بازگشت نادرست _
}

if ( val == KBD_ZERO ) { /* <0> : جایگزین مقدار Zero-Button */
val = 0 ;
}

if ( val == KBD_SHARP ) { /* دکمه <Enter> */
if ( ( success_digits == SIZE_OF_MY_PASS ) && ( success_digits == lcd_position )) {
ارقام_ موفقیت = 0 ;
بازگشت درست _
} else {
ال سی دی . روشن ( ) ;
ال سی دی . print ( F ( "رمز عبور اشتباه" ) ) ;
تاخیر ( 1000 ) ;
ال سی دی . روشن ( ) ;
clear_lcd_password_area ( ) ;
بازگشت نادرست _
}
}

if ( ( lcd_position < 14 ) && ( val < 0x0a ) ) {
lcd_position ++ ;
ال سی دی . نوشتن ( '*' ) ;
}

if ( val == my_password [ success_digits ] ) {
success_digits ++ ;
} else {
success_digits = 0 ;
}

}
return false ;
}

void clear_lcd_password_area ( ) {
lcd_position = 0 ;
ارقام_موفقیت = 0 ;
ال سی دی . setCursor ( 0 , 0 ) ;
ال سی دی . چاپ ( " رمز عبور را وارد کنید" ) ;
ال سی دی . setCursor ( 0 , 1 ) ;
ال سی دی . چاپ ( F ( " " ) ) ;
ال سی دی . setCursor ( 0 , 1 ) ;
}

خالی unlock_door ( ) {
ال سی دی . روشن ( ) ;
ال سی دی . چاپ ( F ( "قفل در باز است " ) ; میسروو . نوشتن ( SERVO_ON ) ; تاخیر ( 2000 ) ; ال سی دی . روشن ( ) ; ال سی دی . چاپ ( F ( "در قفل است" ) ) ; میسروو . بنویسید ( SERVO_OFF

) ؛
تاخیر ( 2000 ) ;
clear_lcd_password_area ( ) ;
}

برای دیدن تصاویر باید ثبت نام کنید
برای دیدن تصاویر باید ثبت نام کنید
برای دیدن تصاویر باید ثبت نام کنید

لطفا نظرات ارزشمند خود را کامنت کنید.
 
عقب
بالا