اطلاعیه

Collapse
No announcement yet.

شمارش افراد

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

    شمارش افراد

    با سلا خدمت تمام دوستان.من یه برنامه ای دارم که هرکی از بین دو سنسور عبور کنه می شماره و روی lcd نشان میدهد .هرکه بره تو اتاق یا بره بیرون میشماره تعداد رو کم نمیکنه میخواستم یکی درست کنم که تعداد هم کم کنه
    و وقتی تعداد یک یا بیشتر شد رله را روشن کنه و وقتی صفر شد رله را خاموش کنه .ممنون میشم اگر کمک کنید.
    برنامه:
    $regfile = "m16def.dat"
    $crystal = 8000000
    Config Lcdpin = Pin , Rs = Pina.0 , E = Pina.1 , Db4 = Pina.2 , Db5 = _
    Pina.3 , Db6 = Pina.4 , Db7 = Porta.5
    Config Lcd = 16 * 2
    Config Portb = Output
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Dim Volt As Single
    Dim W As Word , Num As Long
    Num = 0
    Portb.1 = 0
    Portb.2 = 0
    Start Adc
    Cls
    Locate 1 , 1
    Lcd "MOHAMMAD"
    Locate 2 , 3
    Lcd "IR SENSORE"
    Wait 1
    Cls
    Do
    W = Getadc(7)
    Volt = W * 4.8828125
    Volt = Volt / 1000
    ''''''''&# 039;
    Waitms 10
    ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;
    If Volt > 0.40 Then
    Portb.1 = 0
    Else
    Portb.1 = 1
    Sound Portb.0 , 100 , 150
    Incr Num
    Cls
    Lcd "Num : " ; Num
    Wait 1
    End If

    Loop
    End

    #2
    پاسخ : شمارش افراد

    سلام دوست گرامی

    تو برنامه یه متغییر به نام Num دارید که اول برنامه مقدارشو صفر کردین .حالا در روال برنامه این متغییر چیکار میکنه؟

    برای چی گذاشتین؟ دستور کم کردنم بهش دادین چیو باید کم کنه؟
    معلوليت محدوديت نيست

    آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

    دیدگاه


      #3
      پاسخ : شمارش افراد

      این متغیر برای شمارش افراد هست و من نمیدونم چیکار کنم که کم بشه. num همان number هست اگه کپی کنید تو بسکام و تو پروتیوس هم شبیه سازی کنید همه چیز برایتان روشن میشود

      دیدگاه


        #4
        پاسخ : شمارش افراد

        ببخشید پست قبلی خوب دقت نکردم . حالا شما دستور کاهش رو ندادی
        If Volt > 0.40 Then
        Portb.1 = 0
        Else
        Portb.1 = 1
        Sound Portb.0 , 100 , 150
        Incr Num

        شما گفتی اگر این شرط If Volt > 0.40 برقرار شد این کارو بکن Portb.1 = 0 در غیر این صورت یه بوق بزن ویک واحد متغیر نامبر رو افزایش بده

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

        یه سوال :سنسور بخصوصی هست؟ چطور افراد ورودی رو با خورجی تشخیص میدین؟ کسی که از جلوی سنسور عبور کنه وبه طرف داخل بره و اونیکه به سمت بیرون میره برای سنسور مفهمی داره؟ شاید 5 نفر وارد شدن 2نفر خارج شد . اگر کمشون کنیم میشه 3 .حالا از کجا مفهمی عدد 3 تعداد ورودی هستن یا خروجی؟؟؟؟ روی ال سی دی چی میخوای نشون بدی اینو؟ یکم راجب سنسورتون توضیح هم بدین
        معلوليت محدوديت نيست

        آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

        دیدگاه


          #5
          پاسخ : شمارش افراد

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

          دیدگاه


            #6
            پاسخ : شمارش افراد

            سلام
            چرا از adc استفاده کردی؟؟؟
            پیشنهاد من:
            1-قسمت گیرنده مادون قرمزتو ببند به یک opamp تا در صورتی که تحریک شد یه سیگنال 5 ولت ودر غیر این صورت 0 ولت بده.
            2-از مداریو که بالا گفتم دوتا درست میکنی و خروجی دیجیتال هر گیرنده رو میدی به وقفه های میکرو
            3-حالا این دو گیرنده رو با فاصله خیلی کم از هم وکنار هم قرار میدی و یه موج فرستنده مادون قرمز برای جفتشون در طرف مقابلش قرار میدی . چون فاصله گیرنده ها از هم کمه و هردورو میتونه تحت پوشش قرار بده...
            4-حالا برنامه رو طوری تعریف میکنی که اگه اول وقفه 1 فعال شد سپس دومی فعال شد مثلا یه متغیرو زیاد کنه و اگه اول وقفه 2 فعال وسپس اولی فعال شد بیاد یکی از اون متغیره کم کنه....خیلی هم خوب جواب میده....

            دیدگاه


              #7
              پاسخ : شمارش افراد

              اگه میشه برنامه اش را بنویسید خیلی ممنون میشم

              دیدگاه

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