اطلاعیه

Collapse
No announcement yet.

خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

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

    #16
    پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

    سلام :

    برنامه برای سوال اول:
    if portb.0 = and portb.1 = 0 then
    goto subroutine
    end if
    ضمناًً بهتره که از پایه های interrupt یا وقفه استفاده کنید :
    مثلاً
    on int0 subroutine
    if portb.0 = 0 and portb.1 = 0 then
    goto sub
    end if

    برای سوال دوم :
    شما باید یک رله بگذارید که وقتی که خولاستید لامپ را روشن کنید نقش کلید را ایفا می کند و با دادن یک فرمان از یکی از پایه های میکرو به بوبین رله ، رله در اصطلاح کنتاکت کرده و برق را دوسر لامپ قرار می دهد .

    موفق باشید

    دیدگاه


      #17
      پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

      سلام
      آقا من این برنامه ی میکرو رو نوشتم (اولین بارمه ... یه وقت مسخرم نکنید :sad
      می شه ببینید مشکلاتش چیه:

      $regfile = "m16def.dat"
      $crystal = 8000000
      Dim M as byte
      Config portA = output
      Config pinB = input
      Set portA
      Mostafa:
      Do
      If pinb.0 = 0 and pinb.1 = 1 then goto O
      If pinb.0 = 1 and pinb.1 = 0 then goto A
      If M=0 then goto Z
      Loop
      End
      O :
      If pinb.0 = 0 and pinb.1 = 0 then goto S
      S :
      If pinb.0 = 1 and pinb.1 = 0 then Incr M
      Goto Mostafa
      A:
      If pinb.0 = 0 and pinb.1 = 0 then goto F
      F:
      If pinb.0 = 0 and pinb.1 = 1 then Decr M
      Goto Mostafa
      Z:
      reset portA.3
      goto mostafa



      چند تا سوال هم دارم اونم اینه که آقا حامد فرمودند بهتره از پایه های
      interrupt
      استفاده کنم اما من نمی دونم کجا باید از این دستور استفاده کنم


      یه چیز دیگه هم اینه که من اصلا نمی دونم از چه نوع
      AVR
      باید استفاده کنم (اون نامی هم که در برنامه نویسی گذاشتم همینجوری گذاشتم)


      یه چیز دیگه: برای فرستنده یه نفر بهم گفت که از فرستنده های ارتشی استفاده کن چون تا سه متر رو به خوبی جواب می دن ... می خواستم نظر شما رو بدونم


      آخرشم از آقا حامد و همه بچه ها ممنونم دمتون گرم :applause:
      لطفا به دکمه ی تشکر من به هیچ وجه دست نزنید ....
      اگه یه جایی مشکل کسی را حل کردم فقط ازش می خوام .... برام دعا کنه ..... همین.

      دیدگاه


        #18
        پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

        سلام :
        دوست عزیز ،
        اول از همه تمام بخش های شرطی برنامه که با if شروع شده اگر به همین صورت که نوشتی باشه غلطه !!
        اگر به برنامه ای که نوشتم برات دقت کنی هر شرط if باید با یک end if ختم بشه وگرنه کامپایلر ازش ایراد میگیره
        من برنامه شما را تغییر می دهم و برایتان در ادامه می گذارم :

        $regfile = "m16def.dat"
        $crystal = 8000000
        Dim M as byte
        Config portA = output
        Config pinB = input
        Set portA
        Mostafa:
        Do
        If pinb.0 = 0 and pinb.1 = 1 then
        goto O
        end if
        If pinb.0 = 1 and pinb.1 = 0 then
        goto A
        end if
        If M=0 then
        goto Z
        end if
        Loop

        End
        O :
        If pinb.0 = 0 and pinb.1 = 0 then
        goto S
        end if
        S :
        If pinb.0 = 1 and pinb.1 = 0 then
        Incr M
        Goto Mostafa
        end if
        A:
        If pinb.0 = 0 and pinb.1 = 0 then
        goto F
        end if
        F:
        If pinb.0 = 0 and pinb.1 = 1 then
        Decr M
        Goto Mostafa
        end if
        Z:
        reset portA.3
        goto mostafa

        برای شروع خیلی خوب بود انشا الله بزودی به یم برنامه نویس خوب تبدیل می شوی .
        دارم میرم سفر ، برگشتم برایتان این برنامه را با وقفه هم می نویسم .

        موفق باشی

        دیدگاه


          #19
          پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

          سلام
          خوب کسی نیست به من جواب بده .... ؟
          در مورد فرستنده ی مادون قرمزی هم که گفته بودم از نام ارتشی براش استفاده کرده بودم این هست : PIC-612MB
          لطفا به دکمه ی تشکر من به هیچ وجه دست نزنید ....
          اگه یه جایی مشکل کسی را حل کردم فقط ازش می خوام .... برام دعا کنه ..... همین.

          دیدگاه


            #20
            پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

            سلام
            باز من اومدم با چندتا سوال .....

            ببینید من رفتم تا فرستنده و گیرنده ی مادون قرمز بگیرم اما همه می گن برد این IR ها خیلی کمه ... و به اندازه ی دو متر جواب نمی ده ....
            بعدش می گفتن که باید از کدگذاری در برنامه نویسی ات استفاده کنی .... این کار رو برای این باید انجام بدم تا نور محیط روی آن تاثیر (نامطلوب) نگذاره ...
            من نمی دونم باید از چه نوع فرستنده و گیرنده ای استفاده کنم! تا مدارم درست جواب بده :cry:
            حالا به نظر شما من باید چی کار کنم ؟ لطفا بهم جواب بدین :cry2:
            ممنونم :redface:
            لطفا به دکمه ی تشکر من به هیچ وجه دست نزنید ....
            اگه یه جایی مشکل کسی را حل کردم فقط ازش می خوام .... برام دعا کنه ..... همین.

            دیدگاه


              #21
              پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

              سلام :

              دوست عزیز ،
              حق با فروشنده است !
              دیود ! های فرستنده و گیرنده برد کمی دارند !
              البته اگر شما از چشم پارسی ( یا گیرنده با فیلتر ) که تو بازار فراوانه استفاده کنید این مشکل حل میشه !
              من خودم یک فرستنده گیرنده دارم که خودم ساختم و 10 متر هم بیشتر جواب میده !
              در مورد کد گذاری هم کاملاً درست گفته !
              شما با یک بار 0 و 1 کردن نمی تونی بفهمی که فرستنده چی فرستاده یا گیرنده چی گرفته !
              چون نور محیط بخصوص نور خورشید خیلی روی اینفرارد تاثیر میزاره !
              البته راه داره و اونم اینه که یک قاب براش درست کنی مثل لوله خودکار و دورش رو سیاه کنی که نور بهش نفوذ نکنه ( یه چیزی مثل لیزر و دید مستقیم رو تو ذهنت تجسم کن )
              البته کدگذاریش اصلاً کار سختی نیست !
              کافی برای مثلاً روشن بودن مثلاً یک کد 48H ( فقط مثال بودا ) و برای خاموش بودن کد 50H رو بفرستی و بخونی و مقایسه کنی!
              اصلاً لازم نیست کار پیچیده ای بکنید !

              موفق باشید

              دیدگاه


                #22
                پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

                نوشته اصلی توسط حامد پروشانی
                سلام :

                دوست عزیز ،
                حق با فروشنده است !
                دیود ! های فرستنده و گیرنده برد کمی دارند !
                البته اگر شما از چشم پارسی ( یا گیرنده با فیلتر ) که تو بازار فراوانه استفاده کنید این مشکل حل میشه !
                من خودم یک فرستنده گیرنده دارم که خودم ساختم و 10 متر هم بیشتر جواب میده !
                در مورد کد گذاری هم کاملاً درست گفته !
                شما با یک بار 0 و 1 کردن نمی تونی بفهمی که فرستنده چی فرستاده یا گیرنده چی گرفته !
                چون نور محیط بخصوص نور خورشید خیلی روی اینفرارد تاثیر میزاره !
                البته راه داره و اونم اینه که یک قاب براش درست کنی مثل لوله خودکار و دورش رو سیاه کنی که نور بهش نفوذ نکنه ( یه چیزی مثل لیزر و دید مستقیم رو تو ذهنت تجسم کن )
                البته کدگذاریش اصلاً کار سختی نیست !
                کافی برای مثلاً روشن بودن مثلاً یک کد 48H ( فقط مثال بودا ) و برای خاموش بودن کد 50H رو بفرستی و بخونی و مقایسه کنی!
                اصلاً لازم نیست کار پیچیده ای بکنید !

                موفق باشید
                سلام
                آقا حامد راستش من چیز زیادی متوجه نشدم ... گفته بودم که پاک پاکم . هیچی نمی دونم .... :cry2:
                در هر صورت ممنونم


                ببخشید چند تا سوال ساده (البته برای خودم سخت) داشتم که:
                1- اگه توی بیسیکام بخوایم بنویسم :" اگر porta.0 برابر portc.0 نباشه آن وقت برو به زیر برنامه ی B " چی باید بنویسم؟
                اصلا می شه همچین کاری کرد؟

                2- اگر بخوایم بنویسیم porta.0 و porta.1 رو معکوس کن باید بنویسیم :
                Toggle porta.0 and porta.1
                آیا این درسته؟

                3- می شه نوشت : config portc = input ؟ چون من وقتی نوشته بودم confih pinc = input برنامه ارور داده بود

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

                دیدگاه


                  #23
                  پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

                  سلام :

                  دوست خوب ما اینجاییم که به مشکلات هم پاسخ بدیم !
                  ضمناً محض اطلاعت باید بگم که من حدوداً 3 ماه که دارم AVR کار می کنم ! پس فکر نکن کار شاقیه !
                  یکم پشت کار می خواهد .

                  1- برای عبارت نا مساوی باید از <> استفاده کنی یعنی برای برنامه سوال شما میشه :
                  if porta.0 <> portc.0 then
                  goto B
                  end if

                  2- نه دوست عزیز بسکام با اینکه زبان بیسیکه اما مثل ویژوال بیسیک مولتی اینسراکشن نیست پس شما باید بنویسی :
                  toggle porta.0
                  toggle porta.1

                  3- دستور Config با Pin کار نمی کند و شما باید از Port استفاده کنید و این فقط یک قرارداد است !
                  وقتی از کلمه Pin استفاده می کنید یعنی ورودی !


                  موفق باشید

                  دیدگاه


                    #24
                    پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

                    تو این سایت یه نرم افزار در این مورد هست.گفتم شاید تجزیه تحلیل کنیم شاید بشه الگوریتمش رو تا اندازه ای متوجه شد.

                    دیدگاه


                      #25
                      پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

                      با سلام
                      پایه های مالتی پلکس میکروهای avr توی حالت io معمولی توسط سه تا رجیستر کنترل می شند
                      1-DDRX : رجیستر تعیین جهت داده با استفاده از این رجسیتر می تونید جهت ورودی و یا خروجی پایه های میکرو کنترلر رو تعیین بکنید x هم اسم پورت ها از a تا جائی که میکروتون جا داره
                      0 = ورودی 1 = خروجی

                      2- PORTX : در حالتی که پین یا پورتی ورودی هستش با دستکاری این رجسیتر میشه تعیین کرد که پین پا پایه های میکرو درحالت ورودی دارای امپدانس Z ه باشه یا نه مقاومت پول پ داخلی فعال باشه
                      0 = Tri state و 1 = فعال کردن پول اپ داخلی ( غیر فعال بودن پول پ داخلی یعنی همون Tri state )
                      و در حالتی که پین یا پورت خروجیه با دستکاری این رجسیتر میشه دیتای Output روی پین یا پورت رو تغییر داد توجه : در این حالت این رجیستر دسترسی فیزیکی به پورت نداره

                      3- PINX : این رجسیتر فقط برای حالتی که پین یا پورتی ورودیه بکار می ره و دیتای روی پایه ها رو مستقیما می خونه

                      توجه کنید که اگر بیت PUD در رجسیتر SFIOR مساوی 1 باشه تمامی PULLUP ها بدون توجه به حالت DDRX = 0 و PORTX =1 غیرفعال خواهند بود ( البته این مورد به درد برنامه نویس های سی می خوره تا بیسیک )

                      نکته : در حالتی که PULLUP داخلی فعاله پای هایه میکرو عینا مثل 8051 عمل می کنه و وقتی آزاد باشه مقدار 1 خونده میشه یعنی بافر ورودی امپدانسی متوسط داره

                      امیدوارم مفید باشه
                      موفق باشید

                      دیدگاه


                        #26
                        پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

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

                        $regfile = "m32def.dat"
                        $crystal = 8000000
                        Dim M as byte
                        Config portA = output
                        Config portC = input
                        Reset porta.0
                        Reset porta.1
                        Mostafa:
                        Do
                        Waitus 12
                        Toggle Porta.0
                        Toggle porta.1
                        if portc.0 <> porta.0 and portc.0 = porta.1 then
                        Goto A
                        if portc.0 = porta.0 and portc.1 <> porta.1 then
                        Goto D
                        End if
                        Loop
                        End
                        A:
                        do
                        Waitus 12
                        Toggle porta.0
                        Toggle porta.1
                        if portc.0 <> porta.0 and portc.1 <> porta.1 then
                        Goto B
                        End if
                        loop
                        B:
                        do
                        Waitus 12
                        Toggle porta.0
                        Toggle porta.1
                        if portc.0 = porta.0 and portc.1 <> porta.1 then
                        goto F
                        End if
                        loop
                        D:
                        do
                        Waitus 12
                        Toggle porta.0
                        Toggle porta.1
                        If portc.0 <> porta.0 and portc.1 <> porta.1 then
                        Goto E
                        End if
                        loop
                        E:
                        do
                        Waitus 12
                        Toggle porta.0
                        Toggle porta.1
                        If portc.0 <> porta.0 and portc.1=porta.1 then
                        Goto G
                        End if
                        loop
                        F:
                        Incr M
                        Goto Mostafa
                        G:
                        Decr M
                        If M=0 then
                        Reset porta.2
                        End if
                        Goto mostafa

                        ببخشید ... من یه سوالی هم در مورد ساختار این سایت داشتم ... ببخشید فرق اون امتیاز مثبت سمت چپ هر نام کاربردی با تشکر بالای هر پیام چیه؟ چون من همش از امتیاز مثبت استفاده می کردم ولی امروز متوجه شدم یه تشکر هم بالای هر پست هست ...

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

                        دیدگاه


                          #27
                          پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

                          سلام :
                          دوست عزیز شما برای اولین شرطی که تعریف کردید دستور بستن شرط را فراموش کرده اید !
                          if portc.0 <> porta.0 and portc.0 = porta.1 then
                          Goto A
                          if portc.0 = porta.0 and portc.1 <> porta.1 then
                          Goto D
                          End if


                          در واقع یک END IF کم گذاشته اید !
                          ضمناً از این پس نوع ارور رو هم بگید بد نیست ! زود تر میشه فهنید مشکل از کجاست

                          موفق باشید

                          دیدگاه


                            #28
                            پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

                            نوشته اصلی توسط حامد پروشانی
                            سلام :
                            دوست عزیز شما برای اولین شرطی که تعریف کردید دستور بستن شرط را فراموش کرده اید !
                            if portc.0 <> porta.0 and portc.0 = porta.1 then
                            Goto A
                            if portc.0 = porta.0 and portc.1 <> porta.1 then
                            Goto D
                            End if


                            در واقع یک END IF کم گذاشته اید !
                            ضمناً از این پس نوع ارور رو هم بگید بد نیست ! زود تر میشه فهنید مشکل از کجاست

                            موفق باشید

                            آقا حامد دست تون طلا خیلی شرمندم کردین .... ولی جواب بقیه ی سوالامو ندادین ... :redface:
                            لطفا به دکمه ی تشکر من به هیچ وجه دست نزنید ....
                            اگه یه جایی مشکل کسی را حل کردم فقط ازش می خوام .... برام دعا کنه ..... همین.

                            دیدگاه


                              #29
                              پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

                              سلام :
                              در مورد تشکر و امتیاز باید بگم که شاید این سوال رو بهتره جناب بلورچیان جواب بدن !
                              اما چیزی که من میدونم اینه که گاهی شما جواب یک پست منحصرآً براتون خیلی مفید بوده و به نوعی هم می خواهید زننده پست متوجه باشد که براتون مفید بوده که می توانید از تشکر استفاده کنید تا اسمتون هم ثبت بشه !
                              اما وقتی کاربری از نظر شما مفید بنظر اومده و کمک شایانی به شما و سایرین کرده می توانید با دادن امتیاز + کمک به افزایش درجه اعتبار اون بکنید .
                              البته نظر من شخصی بود و نه تخصصی اما تا جایی که یادمه یک پست در مورد این وجود داره و تفاوت ها توضیح داده شده !

                              موفق باشید

                              دیدگاه


                                #30
                                پاسخ : خاموش و روشن شدن چراغ اتاق با ورود و خروج افراد ....

                                سلام

                                ببخشید من توی بحثتون دخالت می کنم. فقط دو تا پیشنهاد.

                                1- فاصله دو تا سنسورتون را در راستای افقی از هم دورتر کنید. فکر نکنم اگه دو تا سنسور روی چارچوب در , در فاصله چند سانتیمتری از هم قرار بگیرند زیاد مناسب باشه . چون حداقل قطر بدن آدم 20 سانتی متره . فکر نمی کنی اگه یه نفر به طور آنی در مقابل این سنسور ها قرار بگیره میکرو ممکنه تصمیم اشتباه بگیره ؟

                                2- من برنامه های آقای پروشانی را نخوندم. فقط می خواستم یاد اوری کرده باشم که توقف یک آدم مقابل سنسور ها و این که اگه یه نفر یک کم جلوی سنسور ها عقب و جلو رفت و بعد داخل یا خارج شد را هم در نظر بگیرند. چون این جور میکرو به اشتباه تعداد افراد را کم و زیاد می کنه . می تونید از حلقه تاخیری استفاده کنید که در این صورت نمی دونم اگه دو نفر با هم وارد شدند می خواهید چی کار کنید.

                                البته با شناخت کمی که توی این مدت از آقای پروشانی پیدا کردم , ایشون به همه این مسائل خیلی خوب واقفند. لازمه یک بار دیگه هم بگم که من برنامه های را نخوندم و فقط خواستم یاد اوری کرده باشم.



                                خوبه اینم بگم که آقای mostafa_amol اگه این پروژه صرفا جهت فراگیری مطالبه نیازی نیست به این جزئیات توجه کنید و همه شرایط را ایده آل فرض کنید...

                                بازم ببخشید که دخالت کردم
                                از چارلی چاپلین پرسیدند خوشبخنی چیست ؟
                                گفت : فاصله این بد بختی تا بد بختی دیگر !

                                دیدگاه

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