اطلاعیه

Collapse
No announcement yet.

راهنمایی در خصوص استارتر کیت قفل دیجیتال

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    راهنمایی در خصوص استارتر کیت قفل دیجیتال

    سلام من یک استارترکیت قفل دیجیتال از همین فروشگاه خرید و مونتاژکردم، دستگاه پس از دریافت رمز ۵ثانیه رله رو فعال میکنه و قطع میشه میخاستم ببینم میشه کاری کرد که اولا زمان فعال بودن رله رو کم و زیاد کرد
    ثانیا میشه رله تا روشن بودن دستگاه فعال بمونه مثلا با وارد کردن رمز دستگاهی یا لامپی روشن بمونه تا دستگاه رو خاموش کنیم مشخصات و سورس برنامه تو فروشگاه هست (سورس های برنامه به زبان C کامپایلر کدویژن و BASIC کامپایلر بسکام
    میکروکنترلر ATEMGA8)تشکر

    #2
    پاسخ : راهنمایی در خصوص استارتر کیت قفل دیجیتال

    نوشته اصلی توسط smmojab نمایش پست ها
    سلام من یک استارترکیت قفل دیجیتال از همین فروشگاه خرید و مونتاژکردم، دستگاه پس از دریافت رمز ۵ثانیه رله رو فعال میکنه و قطع میشه میخاستم ببینم میشه کاری کرد که اولا زمان فعال بودن رله رو کم و زیاد کرد
    ثانیا میشه رله تا روشن بودن دستگاه فعال بمونه مثلا با وارد کردن رمز دستگاهی یا لامپی روشن بمونه تا دستگاه رو خاموش کنیم مشخصات و سورس برنامه تو فروشگاه هست (سورس های برنامه به زبان C کامپایلر کدویژن و BASIC کامپایلر بسکام
    میکروکنترلر ATEMGA8)تشکر
    لینگ برنامه یا خودش رو بزارید تا بتونیم به سوالتون پاسخ بدیم من برنامه رو تو فروشگاه پیدا نکردم

    دیدگاه


      #3
      پاسخ : راهنمایی در خصوص استارتر کیت قفل دیجیتال

      سلام تشکر از توجهتون اصل سورس رو گذاشتم -این اولین کارم تو زمینه پروگرام هستش و مبتدی ولی قبلا در زمینه برنامه نویسی بزبان فاکس پرو قدری کار کردم وچند تا برنامه سبک نوشتم -برای تغییر در زمان فعال بودن رله فکر کنم تو چندخط پایانی به دستور
      "
      For Counters = 1 To 5 Step 1"میرسیم که زمان 5ثانیه تعریف شده و با تغییر عدد 5 به زمان مورد نظر میرسیم ولی دقیق نمیدانم برای اینکه رله دایم فعال بمونه باید فقط این دستور و "next counters"را حذف کردیا کار دیگری هم باید انجام دادلطفا راهنمایی کنید کلا میخام با این دستگاه برق یک ازمایشگاه رو با دادن رمز فعال و در پایان کار (هروقت شد) با خاموش کردن دستگاه برق نیز قطع شود. تشکر
      $regfile = "m8def.dat"
      $crystal = 8000000
      Config Lcd = 16 * 2
      Config Lcdbus = 4
      Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.1
      Cursor Off
      Config Portb.0 = Output
      Config Portb.1 = Output
      Config Portb.2 = Output
      Config Portb.3 = Input
      Config Portb.4 = Input
      Config Portb.5 = Input
      Config Portb.6 = Input
      Config Portc.0 = Output
      Config Portc.1 = Output
      Line1 Alias Portb.0
      Line2 Alias Portb.1
      Line3 Alias Portb.2
      Column1 Alias Pinb.3
      Column2 Alias Pinb.4
      Column3 Alias Pinb.5
      Column4 Alias Pinb.6
      Relay Alias Portc.0
      Buzzer_port Alias Portc.1
      Const On_system = 1
      Const Off_system = 0
      Const Key_menu_normal = 11
      Const Key_menu_change_pass = 10
      Const Correct_pass = 0
      Const Error_pass = 1
      Const Menu_normal = 0
      Const Menu_enter_last_pass = 1
      Const Menu_enter_new_pass = 2
      Dim Number As Word
      Dim Pass As Word
      Dim Enter_pass As Word
      Dim Keypad As Word
      Dim Menu As Word
      Dim Counter_pass As Word
      Dim Counters As Word
      Declare Function Read_keypad() As Word
      Declare Sub Buzzer(byval Mode_buzzer As Byte)
      Readeeprom Pass , 0
      If Pass = 65535 Then
      Pass = 0
      Writeeeprom Pass , 0
      End If
      Cls
      Lcd "Welcome"
      Wait 1
      Cls
      Enter_pass = 0
      Counter_pass = 0
      Menu = Menu_normal
      Lcd "Enter Pass:"
      Locate 2 , 1
      Do
      Keypad = Read_keypad()
      If Menu = Menu_enter_new_pass Then
      If Keypad < 10 Then
      Lcd "*"
      Incr Counter_pass
      Number = Enter_pass * 10
      Enter_pass = Number + Keypad
      If Counter_pass = 4 Then
      Pass = Enter_pass
      Writeeeprom Pass , 0
      Enter_pass = 0
      Counter_pass = 0
      Menu = Menu_normal
      Waitms 250
      Cls
      Lcd "Save Pass"
      Call Buzzer(correct_pass)
      Cls
      Lcd "Enter Pass:"
      Locate 2 , 1
      Keypad = Read_keypad()
      End If
      End If
      End If
      If Menu = Menu_enter_last_pass Then
      If Keypad < 10 Then
      Lcd "*"
      Incr Counter_pass
      Number = Enter_pass * 10
      Enter_pass = Number + Keypad
      If Counter_pass = 4 Then
      Waitms 250
      Cls
      If Enter_pass = Pass Then
      Menu = Menu_enter_new_pass
      Lcd "Enter New Pass:"
      Locate 2 , 1
      Else
      Lcd "Error Pass"
      Call Buzzer(error_pass)
      Cls
      Lcd "Enter Last Pass:"
      Locate 2 , 1
      End If
      Enter_pass = 0
      Counter_pass = 0
      End If
      End If
      End If


      If Menu = Menu_normal Then
      If Keypad < 10 Then
      Lcd "*"
      Incr Counter_pass
      Number = Enter_pass * 10
      Enter_pass = Number + Keypad
      If Counter_pass = 4 Then
      Waitms 250
      Cls
      If Enter_pass = Pass Then
      Lcd "Correct Pass"
      Set Relay
      Call Buzzer(correct_pass)
      Waitms 3000
      Reset Relay
      Else
      Lcd "Error Pass"
      Call Buzzer(error_pass)
      End If
      Enter_pass = 0
      Counter_pass = 0
      Cls
      Lcd "Enter Pass:"
      Locate 2 , 1
      End If
      End If
      End If


      If Keypad = Key_menu_change_pass Then
      Set Buzzer_port
      Menu = Menu_enter_last_pass
      Enter_pass = 0
      Counter_pass = 0
      Cls
      Lcd "Enter Last Pass:"
      Locate 2 , 1
      End If
      If Keypad = Key_menu_normal Then
      Set Buzzer_port
      Enter_pass = 0
      Counter_pass = 0
      Menu = Menu_normal
      Cls
      Lcd "Enter Pass:"
      Locate 2 , 1
      End If
      f Keypad <> 20 Then
      Waitms 200
      End If
      Reset Buzzer_port
      Loop
      End
      Function Read_keypad() As Word
      Number = 20
      Set Line1:
      Reset Line2:
      Reset Line3:
      Waitms 1
      If Column1 = On_system Then : Number = 11 : End If
      If Column2 = On_system Then : Number = 9 : End If
      If Column3 = On_system Then : Number = 6 : End If
      If Column4 = On_system Then : Number = 3 : End If
      Reset Line1:
      Set Line2:
      Reset Line3:
      Waitms 1
      If Column1 = On_system Then : Number = 10 : End If
      If Column2 = On_system Then : Number = 7 : End If
      If Column3 = On_system Then : Number = 4 : End If
      If Column4 = On_system Then : Number = 1 : End If
      Reset Line1:
      Reset Line2:
      Set Line3:
      Waitms 1
      If Column1 = On_system Then : Number = 0 : End If
      If Column2 = On_system Then : Number = 8 : End If
      If Column3 = On_system Then : Number = 5 : End If
      If Column4 = On_system Then : Number = 2 : End If
      Read_keypad = Number
      End Function
      Sub Buzzer(byval Mode_buzzer As Byte)
      If Mode_buzzer = Correct_pass Then
      Set Buzzer_port
      Waitms 750
      Reset Buzzer_port
      Else
      For Counters = 1 To 5 Step 1
      Set Buzzer_port
      Waitms 100
      Reset Buzzer_port
      Waitms 100
      Next Counters
      End If
      End Sub

      دلیل: ادغام دو پست برای جلوگیری از اسپم

      سلام تشکر از توجهتون اصل سورس رو گذاشتم -این اولین کارم تو زمینه پروگرام هستش و مبتدی ولی قبلا در زمینه برنامه نویسی بزبان فاکس پرو قدری کار کردم وچند تا برنامه سبک نوشتم -برای تغییر در زمان فعال بودن رله فکر کنم تو چندخط پایانی به دستور
      "
      For Counters = 1 To 5 Step 1"میرسیم که زمان 5ثانیه تعریف شده و با تغییر عدد 5 به زمان مورد نظر میرسیم ولی دقیق نمیدانم برای اینکه رله دایم فعال بمونه باید فقط این دستور و "next counters"را حذف کردیا کار دیگری هم باید انجام دادلطفا راهنمایی کنید کلا میخام با این دستگاه برق یک ازمایشگاه رو با دادن رمز فعال و در پایان کار (هروقت شد) با خاموش کردن دستگاه برق نیز قطع شود. تشکر
      $regfile = "m8def.dat"
      $crystal = 8000000
      Config Lcd = 16 * 2
      Config Lcdbus = 4
      Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.1
      Cursor Off
      Config Portb.0 = Output
      Config Portb.1 = Output
      Config Portb.2 = Output
      Config Portb.3 = Input
      Config Portb.4 = Input
      Config Portb.5 = Input
      Config Portb.6 = Input
      Config Portc.0 = Output
      Config Portc.1 = Output
      Line1 Alias Portb.0
      Line2 Alias Portb.1
      Line3 Alias Portb.2
      Column1 Alias Pinb.3
      Column2 Alias Pinb.4
      Column3 Alias Pinb.5
      Column4 Alias Pinb.6
      Relay Alias Portc.0
      Buzzer_port Alias Portc.1
      Const On_system = 1
      Const Off_system = 0
      Const Key_menu_normal = 11
      Const Key_menu_change_pass = 10
      Const Correct_pass = 0
      Const Error_pass = 1
      Const Menu_normal = 0
      Const Menu_enter_last_pass = 1
      Const Menu_enter_new_pass = 2
      Dim Number As Word
      Dim Pass As Word
      Dim Enter_pass As Word
      Dim Keypad As Word
      Dim Menu As Word
      Dim Counter_pass As Word
      Dim Counters As Word
      Declare Function Read_keypad() As Word
      Declare Sub Buzzer(byval Mode_buzzer As Byte)
      Readeeprom Pass , 0
      If Pass = 65535 Then
      Pass = 0
      Writeeeprom Pass , 0
      End If
      Cls
      Lcd "Welcome"
      Wait 1
      Cls
      Enter_pass = 0
      Counter_pass = 0
      Menu = Menu_normal
      Lcd "Enter Pass:"
      Locate 2 , 1
      Do
      Keypad = Read_keypad()
      If Menu = Menu_enter_new_pass Then
      If Keypad < 10 Then
      Lcd "*"
      Incr Counter_pass
      Number = Enter_pass * 10
      Enter_pass = Number + Keypad
      If Counter_pass = 4 Then
      Pass = Enter_pass
      Writeeeprom Pass , 0
      Enter_pass = 0
      Counter_pass = 0
      Menu = Menu_normal
      Waitms 250
      Cls
      Lcd "Save Pass"
      Call Buzzer(correct_pass)
      Cls
      Lcd "Enter Pass:"
      Locate 2 , 1
      Keypad = Read_keypad()
      End If
      End If
      End If
      If Menu = Menu_enter_last_pass Then
      If Keypad < 10 Then
      Lcd "*"
      Incr Counter_pass
      Number = Enter_pass * 10
      Enter_pass = Number + Keypad
      If Counter_pass = 4 Then
      Waitms 250
      Cls
      If Enter_pass = Pass Then
      Menu = Menu_enter_new_pass
      Lcd "Enter New Pass:"
      Locate 2 , 1
      Else
      Lcd "Error Pass"
      Call Buzzer(error_pass)
      Cls
      Lcd "Enter Last Pass:"
      Locate 2 , 1
      End If
      Enter_pass = 0
      Counter_pass = 0
      End If
      End If
      End If


      If Menu = Menu_normal Then
      If Keypad < 10 Then
      Lcd "*"
      Incr Counter_pass
      Number = Enter_pass * 10
      Enter_pass = Number + Keypad
      If Counter_pass = 4 Then
      Waitms 250
      Cls
      If Enter_pass = Pass Then
      Lcd "Correct Pass"
      Set Relay
      Call Buzzer(correct_pass)
      Waitms 3000
      Reset Relay
      Else
      Lcd "Error Pass"
      Call Buzzer(error_pass)
      End If
      Enter_pass = 0
      Counter_pass = 0
      Cls
      Lcd "Enter Pass:"
      Locate 2 , 1
      End If
      End If
      End If


      If Keypad = Key_menu_change_pass Then
      Set Buzzer_port
      Menu = Menu_enter_last_pass
      Enter_pass = 0
      Counter_pass = 0
      Cls
      Lcd "Enter Last Pass:"
      Locate 2 , 1
      End If
      If Keypad = Key_menu_normal Then
      Set Buzzer_port
      Enter_pass = 0
      Counter_pass = 0
      Menu = Menu_normal
      Cls
      Lcd "Enter Pass:"
      Locate 2 , 1
      End If
      f Keypad <> 20 Then
      Waitms 200
      End If
      Reset Buzzer_port
      Loop
      End
      Function Read_keypad() As Word
      Number = 20
      Set Line1:
      Reset Line2:
      Reset Line3:
      Waitms 1
      If Column1 = On_system Then : Number = 11 : End If
      If Column2 = On_system Then : Number = 9 : End If
      If Column3 = On_system Then : Number = 6 : End If
      If Column4 = On_system Then : Number = 3 : End If
      Reset Line1:
      Set Line2:
      Reset Line3:
      Waitms 1
      If Column1 = On_system Then : Number = 10 : End If
      If Column2 = On_system Then : Number = 7 : End If
      If Column3 = On_system Then : Number = 4 : End If
      If Column4 = On_system Then : Number = 1 : End If
      Reset Line1:
      Reset Line2:
      Set Line3:
      Waitms 1
      If Column1 = On_system Then : Number = 0 : End If
      If Column2 = On_system Then : Number = 8 : End If
      If Column3 = On_system Then : Number = 5 : End If
      If Column4 = On_system Then : Number = 2 : End If
      Read_keypad = Number
      End Function
      Sub Buzzer(byval Mode_buzzer As Byte)
      If Mode_buzzer = Correct_pass Then
      Set Buzzer_port
      Waitms 750
      Reset Buzzer_port
      Else
      For Counters = 1 To 5 Step 1
      Set Buzzer_port
      Waitms 100
      Reset Buzzer_port
      Waitms 100
      Next Counters
      End If
      End Sub

      دیدگاه


        #4
        پاسخ : راهنمایی در خصوص استارتر کیت قفل دیجیتال

        نوشته اصلی توسط smmojab نمایش پست ها
        سلام تشکر از توجهتون اصل سورس رو گذاشتم -این اولین کارم تو زمینه پروگرام هستش و مبتدی ولی قبلا در زمینه برنامه نویسی بزبان فاکس پرو قدری کار کردم وچند تا برنامه سبک نوشتم -برای تغییر در زمان فعال بودن رله فکر کنم تو چندخط پایانی به دستور
        "
        For Counters = 1 To 5 Step 1"میرسیم که زمان 5ثانیه تعریف شده و با تغییر عدد 5 به زمان مورد نظر میرسیم ولی دقیق نمیدانم برای اینکه رله دایم فعال بمونه باید فقط این دستور و "next counters"را حذف کردیا کار دیگری هم باید انجام دادلطفا راهنمایی کنید کلا میخام با این دستگاه برق یک ازمایشگاه رو با دادن رمز فعال و در پایان کار (هروقت شد) با خاموش کردن دستگاه برق نیز قطع شود. تشکر
        سلام عزیزم ببخش تاخیر افتاد از جواب قبلیم
        If Enter_pass = Pass Then
        Lcd "Correct Pass"
        Set Relay
        Call Buzzer(correct_pass)
        Waitms 3000
        Reset Relay
        Else
        Lcd "Error Pass"
        Call Buzzer(error_pass)
        End If

        توی این if از برنامه حالت صحت رمز رو چک می کنه و خروجی میده و در صورت صحت رمز (If Enter_pass = Pass) برای ما روی lcd مینویسه ( correct_pass ) رله رو فغال می کنه (Set Relay) بازر صوت میزنه (Call Buzzer(correct_pass)) و 3ثانیه بعدش (Waitms300) رله خاموش می شود (Reset Relay)
        حالا اگه بخوایم رله با هر زدن رمز وضعیتش عکس دفعه قبل بشه دستور toggle این کار رو برای ما انجام میده
        تمام برنامه به همون صورت قبل میمونه فقط جایگزین قسمت بالا به صورت زیر در میاد
        If Enter_pass = Pass Then
        Lcd "Correct Pass"
        toggle Relay
        Call Buzzer(correct_pass)
        Else
        Lcd "Error Pass"
        Call Buzzer(error_pass)
        End If

        پس شما الان با زدن رمز رله فعال و با زدن دوباره رمز یا قطع تغذیه مدار رله غیر فعال میشه
        اگر همون قسمت بالا از برنامه رو به صورت زیر بنویسید دفعه اولی که رمز رو به صورت صحیح میزنید تا زمان قطع تغذیه مدار رله غیر فعال نمیشه حالا هر چند بار هم که دوباره رمز صحیح یا غلطی رو وارد کنید
        If Enter_pass = Pass Then
        Lcd "Correct Pass"
        set Relay
        Call Buzzer(correct_pass)
        Else
        Lcd "Error Pass"
        Call Buzzer(error_pass)
        End If
        جدیدترین ویرایش توسط mb2101; ۰۷:۲۷ ۱۳۹۸/۰۱/۱۹.

        دیدگاه


          #5
          پاسخ : راهنمایی در خصوص استارتر کیت قفل دیجیتال

          خیلی ممنون ومتشکر از راهنمایی خوبتان

          دیدگاه


            #6
            پاسخ : راهنمایی در خصوص استارتر کیت قفل دیجیتال

            سلام دوستان استارتر کیت قفل دیجیتال یع تعداد گرفتم و براش جعبه ساختم و میخوم براش از یک کیپ ۳در۴
            فلت ساده استفاده کنم .اگه دوستان لطف کنند راهنمایی کنندچطوری کیپد و سیم کشی کنم روی برد و به کدوم پایه های برد وصل کنم ممنون میشم

            دلیل: ادغام دو پست برای جلوگیری از اسپم

            نوشته اصلی توسط smmojab نمایش پست ها
            سلام من یک استارترکیت قفل دیجیتال از همین فروشگاه خرید و مونتاژکردم، دستگاه پس از دریافت رمز ۵ثانیه رله رو فعال میکنه و قطع میشه میخاستم ببینم میشه کاری کرد که اولا زمان فعال بودن رله رو کم و زیاد کرد
            ثانیا میشه رله تا روشن بودن دستگاه فعال بمونه مثلا با وارد کردن رمز دستگاهی یا لامپی روشن بمونه تا دستگاه رو خاموش کنیم مشخصات و سورس برنامه تو فروشگاه هست (سورس های برنامه به زبان C کامپایلر کدویژن و BASIC کامپایلر بسکام
            میکروکنترلر ATEMGA8)تشکر
            سلام عزیز برا استارتر کیت قفل دیجیتال میخوام براش از یک کیپ ۳در۴
            فلت ساده استفاده کنم . نحوه اتصال کیپد و سیم کشی و کمک میکنی ممنون میشم
            الهم عجل الولیک الفرج

            دیدگاه

            لطفا صبر کنید...
            X