اطلاعیه

Collapse
No announcement yet.

تغییر زمان برای روشن وخاموش کردن یک دستگاه

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

    تغییر زمان برای روشن وخاموش کردن یک دستگاه

    سلام دوستان ببخشیدمن دارم یک برنامه ای مینویسم که توی اون ابتدا باید ساعت رو تعریف کنم این ساعت باید قابلیت این وداشته باشه که کاربر بتونه اونو عوض کنه تا اینجامشکلی نیست حالا میخوام زمان روشن و خاموش کردن یک دستگاه رو بدم بصورت پیش فرض اولیه این زمانها رو توی برنامه دادم امامیخوام مثلا با گذاشتن کلید روی برد این مدار بتونم زمانهای روشن و خاموش کردن دستگاه قابل تغییر باشه ( ثانیه و دقیقه و ساعت قابل کاهش وافزایش ) متاسفانه مدام این تغییرات روی ساعت اولیه تاثیر میزاره اگه راهنمایی کنید ممنون میشم سورس برنامه رو نذاشتم چون خیلی طولانی بود و فکر کردم شایدوقت خوندنشو نداشته باشید واصلا جواب ندید در ضمن من با بیسیک برنامه رو نوشتم ممنون میشم راهنمایی کنید

    #2
    پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه

    شما باید دو تا ساعت تعریف کنید و شرطی رو بزارید که اگه با هم برابر شدند کای رو انجام بده
    باید برنامه رو بزاری تا بدونم تو برنامه چی کار کردی و کمکت کنم :read:
    آدلان پایا متخصص در حوضه ربات های پرنده
    https://adlanpaya.ir/

    دیدگاه


      #3
      پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه

      مرسی که پاسخگو هستید برنامه به شکل زیر
      $regfile = "m8def.dat"
      $crystal = 1000000
      Config Lcd = 16 * 2
      Config Portd.1 = Input
      Reset Pind.1
      Config Lcdpin = Pin , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = Pinb.7 , E = Pinb.2 , Rs = Pinb.3
      Config Portd.7 = Output
      Config Adc = Single , Prescaler = Auto , Reference = Internal
      Config Int0 = Falling
      Config Int1 = Falling
      '====================='
      Declare Sub Timenow
      Declare Sub Hoshmand
      Declare Sub Adjusttime

      '=========================='
      Dim T As Word
      Dim Second As Byte , Minute As Byte , Hour As Byte
      Dim Second1 As Byte , Minute1 As Byte , Hour1 As Byte
      Dim Second2 As Byte , Minute2 As Byte , Hour2 As Byte
      Dim Cash As String * 2
      Dim Tmode As Byte
      Dim Blk As Bit

      Dim Cash1 As String * 2
      Dim Tmode1 As Byte
      Dim Blk1 As Bit

      Dim Cash2 As String * 2
      Dim Tmode2 As Byte
      Dim Blk2 As Bit
      Enable Interrupts
      Enable Int0
      On Int0 Setmode
      Enable Int1
      On Int1 Setmode1

      '==============================='
      Second = 00 : Minute = 30 : Hour = 11
      Second1 = 00 : Minute1 = 00 : Hour1 = 12
      Second2 = 00 : Minute2 = 00 : Hour2 = 14
      Tmode = 0 : Tmode1 = 0 : Tmode2 = 0

      '==================================='
      Do



      Debounce Pind.0 , 1 , Timenow , Sub
      Debounce Pind.1 , 1 , Hoshmand , Sub
      Debounce Pind.4 , 1 , Adjusttime , Sub
      If Hour = Hour1 Then
      If Minute = Minute1 Then
      If Second = Second1 Then
      Set Portd.7
      End If
      End If
      End If

      If Hour = Hour2 Then
      If Minute = Minute2 Then
      If Second = Second2 Then
      Reset Portd.7

      End If
      End If
      End If
      Loop

      '======================'
      Sub Hoshmand
      Home
      T = Getadc(3)
      T = T / 4
      Home
      Locate 2 , 10
      Lcd "T:" ; T ; "'c"
      Waitms 500
      If T > 25 Then Set Portd.7

      If T < 24 Then Reset Portd.7

      End Sub
      '=========================='

      Sub Adjusttime

      Cls
      Locate 1 , 1
      Cash1 = Str(hour1)
      Lcd Format(cash1 , "00&quot ; ":"
      Cash1 = Str(minute1)
      Lcd Format(cash1 , "00&quot ; ":"
      Cash1 = Str(second1)
      Lcd Format(cash1 , "00&quot : Lcd " time on"
      Locate 2 , 1
      Cash2 = Str(hour2)
      Lcd Format(cash2 , "00&quot ; ":"
      Cash2 = Str(minute2)
      Lcd Format(cash2 , "00&quot ; ":"
      Cash2 = Str(second2)
      Lcd Format(cash2 , "00&quot : Lcd " time off" :

      End Sub
      '=========================='
      Setmode1:
      If Blk2 = 1 Then
      Toggle Blk2
      Select Case Tmode2
      Case 1:
      Home : Locate 2 , 7 : Lcd " "
      Case 2 :
      Home : Locate 2 , 4 : Lcd " "
      Case 3 :
      Home : Locate 2 , 1 : Lcd " "
      End Select : End If
      If Pinc.2 = 1 Then
      Waitms 30
      If Pinc.2 = 1 Then
      Incr Tmode2
      End If
      If Tmode2 > 4 Then Tmode2 = 0
      End If
      If Pinc.1 = 1 Then
      Waitms 30
      If Pinc.1 = 1 Then
      Select Case Tmode2
      Case 1 : Second2 = 0
      Case 2 : If Minute2 < 59 Then Incr Minute2
      Case 3 : If Hour2 < 23 Then Incr Hour2

      End Select
      End If
      End If
      If Pinc.0 = 1 Then
      Waitms 30
      If Pinc.0 = 1 Then
      Select Case Tmode2
      Case 1 : Second2 = 0
      Case 2 : If Minute2 > 0 Then Decr Minute2
      Case 3 : If Hour2 > 0 Then Decr Hour2
      End Select
      End If
      End If
      If Blk1 = 1 Then
      Toggle Blk1
      Select Case Tmode1
      Case 1 : Home : Locate 1 , 7 : Lcd " "

      Case 2 : Home : Locate 1 , 4 : Lcd " "
      Case 3 : Home : Locate 1 , 1 : Lcd " "
      End Select : End If
      If Pinc.2 = 1 Then
      Waitms 30
      If Pinc.2 = 1 Then
      Incr Tmode1
      End If
      If Tmode1 > 4 Then Tmode1 = 0
      End If
      If Pinc.1 = 1 Then
      Waitms 30
      If Pinc.1 = 1 Then
      Select Case Tmode1
      Case 1 : Second1 = 0
      Case 2 : If Minute1 < 59 Then Incr Minute1
      Case 3 : If Hour1 < 23 Then Incr Hour1

      End Select
      End If
      End If
      If Pinc.0 = 1 Then
      Waitms 30
      If Pinc.0 = 1 Then
      Select Case Tmode1
      Case 1 : Second1 = 0
      Case 2 : If Minute1 > 0 Then Decr Minute1
      Case 3 : If Hour1 > 0 Then Decr Hour1
      End Select
      End If
      End If
      Return
      '=============================='
      Setmode:

      If Pinc.2 = 1 Then
      Waitms 30
      If Pinc.2 = 1 Then
      Incr Tmode
      End If
      If Tmode > 4 Then Tmode = 0
      End If
      If Pinc.1 = 1 Then
      Waitms 30
      If Pinc.1 = 1 Then
      Select Case Tmode
      Case 1 : Second = 0
      Case 2 : If Minute < 59 Then Incr Minute
      Case 3 : If Hour < 23 Then Incr Hour

      End Select
      End If
      End If
      If Pinc.0 = 1 Then
      Waitms 30
      If Pinc.0 = 1 Then
      Select Case Tmode
      Case 1 : Second = 0
      Case 2 : If Minute > 0 Then Decr Minute
      Case 3 : If Hour > 0 Then Decr Hour
      End Select
      End If
      End If
      Return
      '==========================='
      Sub Timenow:
      Locate 1 , 1
      Cash = Str(hour)
      Lcd Format(cash , "00&quot ; ":"
      Cash = Str(minute)
      Lcd Format(cash , "00&quot ; ":"
      Cash = Str(second)
      Lcd Format(cash , "00&quot : Lcd " time now"
      Locate 1 , 9
      Lcd " - "

      If Blk = 1 Then
      Select Case Tmode
      Case 1 :
      Home : Locate 1 , 7 : Lcd " "
      Case 2 :
      Home : Locate 1 , 4 : Lcd " "
      Case 3 :
      Home : Locate 1 , 1 : Lcd " "

      End Select
      Waitms 995
      Incr Second
      End If

      Toggle Blk

      If Second > 59 Then
      Incr Minute : Second = 0 : End If
      If Minute > 59 Then
      Incr Hour : Minute = 0 : End If
      If Hour > 23 Then
      Hour = 0 : End If

      If Pinc.2 = 1 Then
      Waitms 30
      If Pinc.2 = 1 Then
      Incr Tmode
      End If

      If Tmode > 4 Then Tmode = 0
      End If
      If Pinc.1 = 1 Then
      Waitms 30
      Select Case Tmode
      Case 1 : Second = 0
      Case 2 : If Minute < 59 Then Incr Minute
      Case 3 : If Hour < 23 Then Incr Hour
      End Select
      End If
      End Sub

      دیدگاه


        #4
        پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه

        از کجا اطلاعات رو دریافت میکنه تو برنامه که کی پد تعریف نشده
        آدلان پایا متخصص در حوضه ربات های پرنده
        https://adlanpaya.ir/

        دیدگاه


          #5
          پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه

          برنامه رو کمی تغییر دادم با فایل پروتئوسش گذاشتم توی لینک زیر اگه نگاه کنیدممنون میشم

          http://www.uplooder.net/cgi-bin/dl.cgi?key=7c7037fc053887b5585846ec3a32a0d8


          یا ادرس زیر
          [URL=http://www.uplooder.net/cgi-bin/dl.cgi?key=7c7037fc053887b5

          دیدگاه


            #6
            پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه

            راستش حوصله خوندن کد رو نداشتم . مخصوصا که با بیسیک هم بود .

            ولی شما باید یه جایی برای ذخیره اعداد ساعت و دقیقه و ثانیه جدا در نظر بگیری مثلا روی خود EEProm میکرو و بعد بیای در برنامه کلیدها رو طوری برنامه ریزی کنید که مثلا کلید اول مشخص کنه شما کدوم عدد رو می خوای تغییر بدی و کلید دوم اونو تغییر بده و کلید سوم ثبتش کنه همه تغییرات در متغییر باشه و بعد از زدن ثبت بیاد متغییر ها رو در حافظه دائمی ذخیره کنید .

            سپس می تونی در حلقه برنامه یا توسط یه تایمر (بسته به دقت مورد نیاز ) سر زمان های خاصی متغییر ها رو دوباره از حافظه فراخونی کنید و سپس از آی سی ساعت هم در متغییر های دیگه ای ساعت رو بریزید و سپس با هم مقایسه کنید و اگر مقایسه ok بود مثلا فلان پین فعال بشه .

            نمی دونم منظورتون همین بود یا نه . امیدوارم کمکی کرده باشم .
            - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

            دیدگاه


              #7
              پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه

              ممنون مردنامرئی اره برنامه رو درست متوجه شدید پس شما نظرتوناینه که توی eeprom ذخیره کنم ؟اخه قرار هروقت خواستم بتونم ساعت خاموش روشن شدن دستگاه رو عوض کنم از طرفی ساعت هم که تغییر میکنه تا جایی که من میدونم توی eeprom معمولا اطلاعات ثابت رو ذخیره میکنند

              دیدگاه


                #8
                پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه

                تا جایی که من میدونم توی eeprom معمولا اطلاعات ثابت رو ذخیره میکنند
                اطلاعات ثابتی که گاهی لازم میشه اونا رو در برنامه تغییر بدی و دوباره ذخیره کنید . در اینجا ثابت بودن فقط به این معنی هست که اگر تغذیه قطع شد اطلاعات پاک نشن .


                دوست عزیز شما زمانی رو که باید تنظیم بشه و سر اون ساعت مثلا یه رله رو فعال کنی رو باید توی EEprom ذخیره کنی . ساعت که خودش باید اصلا از آی سی ساعت استفاده کنی . نکنه شما ساعت رو خودت شمارش می کنی ؟ در میکرو ؟ آی سی ساعت اگر نداشته باشی در هنگام خاموش و روشن شدن یا قطعی برق سیستم شما کلا بهم میریزه .
                اگر آی سی ساعت نداری بذار و اعداد ساعت تنظیمی رو در eeprom می زاری و در یک حلقه (بسته به دقت مورد نیاز ) بر اساس زمانی مشخص ساعت رو از آی سی ساعت دریافت می کنید و اعداد خودتون رو هم از EEprom سپس با هم مقایسه می کنید اگر مساوی یا از هم رد شده بودند (بخاطر قطعی احتمالی برق ) عمل مورد نظرتون رو انجام می دید .
                - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

                دیدگاه


                  #9
                  پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه

                  سلام اینم ؛ کنترل کننده کولر ؛ با دمای قابل تنظیم + نمایش ساعت و تاریخ :



                  http://ir02x6.persiangig.com/sch/coolerc.rar/download
                  - اَللّهُمَّ عَجِّل لِوَليِّکَ الفَرَج -
                  ارتباط با من : ir02x6
                  طراحی و ساخت انواع منابع تغذیه سوئیچینگ - SMPS Designer

                  دیدگاه

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