اطلاعیه

Collapse
No announcement yet.

مشکل در ساخت تایمر با میکرو

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

    مشکل در ساخت تایمر با میکرو

    با سلام من میخواستم یک تایمر با استفاده از میکرو (atmega32) و یک lcd 16*2 برای 4 تا پریز بسازم که در یک بازه زمانی مشخص یکی از پریز ها روشن بشه و بعد از اون بازه زمانی مشخص خاموش بشه. برنامه نویسی ام هم avr با بسکام هست. خوب حالا چند تا سوال داشتم:
    1- توی برنامه نویسی چطوری بگم که بعد از فشار دادن یک دکمه ای مثلا متغیر a رو نشون بده بعد از فشار دادن دوباره متیغیر b رو نشون بده تو صفحه نمایش بعد متغیر c بعد متغیر d بعد دوباره از اول a,b,c,d,... ؟؟؟؟ (سوال مهم) :surprised:
    2- چطوری برق 220 ولت رو تبدیل به 5 ولت کنم برای تغذیه آی سی ؟؟؟ :biggrin:
    3-آیا آی سی میتونه تشخیص بده که الان توی lcd چه چیزی نمایش داده میشه ؟؟ یا lcd به میکرو خروجی نمیده؟؟؟ oo:
    لطفا راهنمایی کنید دوستان عزیز
    خیلی ممنون از همه دوستان :wow:

    #2
    پاسخ : مشکل در ساخت تایمر با میکرو

    نوشته اصلی توسط amirhosein1998
    با سلام من میخواستم یک تایمر با استفاده از میکرو (atmega32) و یک lcd 16*2 برای 4 تا پریز بسازم که در یک بازه زمانی مشخص یکی از پریز ها روشن بشه و بعد از اون بازه زمانی مشخص خاموش بشه. برنامه نویسی ام هم avr با بسکام هست. خوب حالا چند تا سوال داشتم:
    1- توی برنامه نویسی چطوری بگم که بعد از فشار دادن یک دکمه ای مثلا متغیر a رو نشون بده بعد از فشار دادن دوباره متیغیر b رو نشون بده تو صفحه نمایش بعد متغیر c بعد متغیر d بعد دوباره از اول a,b,c,d,... ؟؟؟؟ (سوال مهم) :surprised:
    2- چطوری برق 220 ولت رو تبدیل به 5 ولت کنم برای تغذیه آی سی ؟؟؟ :biggrin:
    3-آیا آی سی میتونه تشخیص بده که الان توی lcd چه چیزی نمایش داده میشه ؟؟ یا lcd به میکرو خروجی نمیده؟؟؟ oo:
    لطفا راهنمایی کنید دوستان عزیز
    خیلی ممنون از همه دوستان :wow:
    1: یه دونه متغیر تعریف کن که با فشردن کلید مقدارش زیاد بشه و بعد با دستور شرط ( if یا switch) مقدار مورد نظر رو روی lcd نمایش بده
    2: با یه دونه ترانس و رگولاتور خطی مثل 7805 یا با استفاده از یه خازن و مقاومت سری ولی پیشنهاد نمیدم از مورد دوم استفاده کنی
    3: اطلاعات توی حافظه lcd رو فکر کنم میشه خوند ولی شما که از طریق برنامه میدونی چی ریختی روی lcd

    دیدگاه


      #3
      پاسخ : مشکل در ساخت تایمر با میکرو

      نوشته اصلی توسط ehsanbagheri
      1: یه دونه متغیر تعریف کن که با فشردن کلید مقدارش زیاد بشه و بعد با دستور شرط ( if یا switch) مقدار مورد نظر رو روی lcd نمایش بده
      خیلی ممنون دوست عزیز :wow: :wow:
      فقط اگه مورد 1 رو یه ذره بیشتر توضیح بدید، ممنون میشم

      دیدگاه


        #4
        پاسخ : مشکل در ساخت تایمر با میکرو

        کد:
        dim x as int
        x=1
        if PIND.0=1
        x=x+1
        end if
        if c>4 
        x=1
        end if
        select case x
        case 1: lcd(".............")
        case 2: lcd(".............")
        case 3 : lcd("............")
        case 4 : lcd("...........")
        end select
        با این قرض که کلید به پین صفر از پورت D وصل شده
        و به جای نقطه ها هم هرچی میخوای نمایش بدی بنویس
        من خیلی وقته با بیسیک کار نکردم شاد کدها خطای نوشتاری داشته باشند

        دیدگاه


          #5
          پاسخ : مشکل در ساخت تایمر با میکرو

          واسه مدت زمان Debounce کردن بایستی از دستور زیر استفاده کنی
          Config Debounce=number
          که number همون مدت زمان تاخیر که پیش فرضش 25(بر حسب میلی ثانیه) ولی میتونی تغیرشم بدی
          واسه کلید میشه از دستور if استفاده کنی ولی باید پین متصل به کلید رو pull up کنی یعنی
          DDRX=0,PORTX=1
          تو قسمت شرطی هم باستی بنویسی که هروقت PINX صفر شد دستور عمل موردنظر رو انجام بده ...به همین سادگی

          صبرت که تمام شد نرو!
          "معرفت"
          تازه از آن لحظه آغاز می شود...

          دیدگاه


            #6
            پاسخ : مشکل در ساخت تایمر با میکرو

            نوشته اصلی توسط ehsanbagheri
            کد:
            dim x as int
            x=1
            if PIND.0=1
            x=x+1
            end if
            if c>4 
            x=1
            end if
            select case x
            case 1: lcd(".............")
            case 2: lcd(".............")
            case 3 : lcd("............")
            case 4 : lcd("...........")
            end select
            با این قرض که کلید به پین صفر از پورت D وصل شده
            و به جای نقطه ها هم هرچی میخوای نمایش بدی بنویس
            من خیلی وقته با بیسیک کار نکردم شاد کدها خطای نوشتاری داشته باشند
            نوشته اصلی توسط RoboRazi
            واسه مدت زمان Debounce کردن بایستی از دستور زیر استفاده کنی
            Config Debounce=number
            که number همون مدت زمان تاخیر که پیش فرضش 25(بر حسب میلی ثانیه) ولی میتونی تغیرشم بدی
            واسه کلید میشه از دستور if استفاده کنی ولی باید پین متصل به کلید رو pull up کنی یعنی
            DDRX=0,PORTX=1
            تو قسمت شرطی هم باستی بنویسی که هروقت PINX صفر شد دستور عمل موردنظر رو انجام بده ...به همین سادگی

            خیلی ممنون از همتون مشکلم حل شد. دستتون درد نکنه :job:

            دیدگاه

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