اطلاعیه

Collapse
No announcement yet.

تغییراتی در برنامه LED بارانی یا شهاب سنگی (بسکام)

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

    تغییراتی در برنامه LED بارانی یا شهاب سنگی (بسکام)

    سلام دوستان
    من یک برنامه با بسکام دارم که 20 LED را به صورت بارانی یا شهابسنگی به صورت PWM ماند , رقص نور میده
    به این صورت عمل میکنه که ابتا LED اول به صورت PWM به آرامی روسن میشه و بعد
    LED دوم روشن میشه.... تا به LED بیستم میرسه و وقتی اون ای LED هم روشن شد
    شروع میکنه از LED یکم و به صورت PWM خاموش میشه و پیش میره تا به LED بیستم برسه
    اما اینجا یک مشکلی هست و اون این است که در LED های بارانی تجاری , کمی فرق میکنه و همانند عکس متحرک پایین که مشاهده میکنید
    وقتی روشن شدن LED ها به LED شماره ده رسید , از همان زمان از LED شماره یک
    شروع به خاموش شدن میکنه و وقتی روشن شدن به LED بیستم رسید
    LED دهم باید در حال خاموش شدن باشه نه تازه LED یکم شروع به خاموش کردن کنه
    تا شباهت بیشتری به باران و یا شهابسنگ و دنباله اون داشته باشه...
    حال من هر کاری میکنم نمیتونم در این برنامه تغییری که میخوام بدم
    اگر دوستان زحمتی نیست میتونید یک نگاهی در برنامه بسکام بندازید و
    آن را به صورتی که عرض کردم , تغییر بدید تا یک برنامه خوب LED بارانی
    با بسکام داشته باشیم؟ با تشکر

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




    این هم کد برنامه با بسکام:

    کد:
    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 80
    $swstack = 62
    $framesize = 62
    Config Watchdog = 1024
    
    Ddrd = &B11111111
    Ddrb = &B11111111
    Ddrc = &B111111
    
    Led_01 Alias Portd.0
    Led_02 Alias Portd.1
    Led_03 Alias Portd.2
    Led_04 Alias Portd.3
    Led_05 Alias Portd.4
    Led_06 Alias Portd.5
    Led_07 Alias Portd.6
    Led_08 Alias Portd.7
    Led_09 Alias Portb.0
    Led_10 Alias Portb.1
    Led_11 Alias Portb.2
    Led_12 Alias Portb.3
    Led_13 Alias Portb.4
    Led_14 Alias Portb.5
    Led_15 Alias Portc.0
    Led_16 Alias Portc.1
    Led_17 Alias Portc.2
    Led_18 Alias Portc.3
    Led_19 Alias Portc.4
    Led_20 Alias Portc.5
    
    
    Dim Tmrcount As Byte
    Dim Pwm_01 As Byte
    Dim Pwm_02 As Byte
    Dim Pwm_03 As Byte
    Dim Pwm_04 As Byte
    Dim Pwm_05 As Byte
    Dim Pwm_06 As Byte
    Dim Pwm_07 As Byte
    Dim Pwm_08 As Byte
    Dim Pwm_09 As Byte
    Dim Pwm_10 As Byte
    Dim Pwm_11 As Byte
    Dim Pwm_12 As Byte
    Dim Pwm_13 As Byte
    Dim Pwm_14 As Byte
    Dim Pwm_15 As Byte
    Dim Pwm_16 As Byte
    Dim Pwm_17 As Byte
    Dim Pwm_18 As Byte
    Dim Pwm_19 As Byte
    Dim Pwm_20 As Byte
    Dim Glow As Byte
    Dim Glow_count As Byte
    Dim Led_step As Byte
    Dim Flag As Bit
    Dim Ran_time2 As Word
    
    
    
    
    Glow = 100
    Const Count_max = 63
    
    Config Timer1 = Timer , Prescale = 256 , Clear Timer = 1
    Compare1a = 1200
    Config Timer2 = Timer , Prescale = 8 , Clear Timer = 1
    Ocr2 = 200
    On Oc1a Isr_timer1
    On Oc2 Isr_timer2
    Enable Oc1a
    Enable Oc2
    Enable Interrupts
    
    Do
    
    !nop
    If Flag = 1 Then
      Gosub Next_led
               Reset Watchdog
      Flag = 0
    End If
    Loop
    
    End
    
    Isr_timer1:
    Set Flag
    Return
    
    Isr_timer2:
    If Tmrcount = 0 Then
     Tmrcount = Count_max
     Portd = 0
     Portb = 0
     Portc = 0
    Else
      Start Watchdog
    
     If Pwm_01 = Tmrcount Then Set Led_01
     If Pwm_02 = Tmrcount Then Set Led_02
     If Pwm_03 = Tmrcount Then Set Led_03
     If Pwm_04 = Tmrcount Then Set Led_04
     If Pwm_05 = Tmrcount Then Set Led_05
     If Pwm_06 = Tmrcount Then Set Led_06
     If Pwm_07 = Tmrcount Then Set Led_07
     If Pwm_08 = Tmrcount Then Set Led_08
     If Pwm_09 = Tmrcount Then Set Led_09
     If Pwm_10 = Tmrcount Then Set Led_10
     If Pwm_11 = Tmrcount Then Set Led_11
     If Pwm_12 = Tmrcount Then Set Led_12
     If Pwm_13 = Tmrcount Then Set Led_13
     If Pwm_14 = Tmrcount Then Set Led_14
     If Pwm_15 = Tmrcount Then Set Led_15
     If Pwm_16 = Tmrcount Then Set Led_16
     If Pwm_17 = Tmrcount Then Set Led_17
     If Pwm_18 = Tmrcount Then Set Led_18
     If Pwm_19 = Tmrcount Then Set Led_19
     If Pwm_20 = Tmrcount Then Set Led_20
     Decr Tmrcount
    End If
    
    If Glow_count = 0 Then
      Glow_count = Glow
      If Pwm_01 > 0 Then Decr Pwm_01
      If Pwm_02 > 0 Then Decr Pwm_02
      If Pwm_03 > 0 Then Decr Pwm_03
      If Pwm_04 > 0 Then Decr Pwm_04
      If Pwm_05 > 0 Then Decr Pwm_05
      If Pwm_06 > 0 Then Decr Pwm_06
      If Pwm_07 > 0 Then Decr Pwm_07
      If Pwm_08 > 0 Then Decr Pwm_08
      If Pwm_09 > 0 Then Decr Pwm_09
      If Pwm_10 > 0 Then Decr Pwm_10
      If Pwm_11 > 0 Then Decr Pwm_11
      If Pwm_12 > 0 Then Decr Pwm_12
      If Pwm_13 > 0 Then Decr Pwm_13
      If Pwm_14 > 0 Then Decr Pwm_14
      If Pwm_15 > 0 Then Decr Pwm_15
      If Pwm_16 > 0 Then Decr Pwm_16
      If Pwm_17 > 0 Then Decr Pwm_17
      If Pwm_18 > 0 Then Decr Pwm_18
      If Pwm_19 > 0 Then Decr Pwm_19
      If Pwm_20 > 0 Then Decr Pwm_20
     Else
     Decr Glow_count
    End If
    
    Return
    
    Next_led:
    Select Case Led_step
      Case 1
      Pwm_20 = Count_max
      Case 2
      Pwm_19 = Count_max
      Case 3
      Pwm_18 = Count_max
      Case 4
      Pwm_17 = Count_max
      Case 5
      Pwm_16 = Count_max
      Case 6
      Pwm_15 = Count_max
      Case 7
      Pwm_14 = Count_max
      Case 8
      Pwm_13 = Count_max
      Case 9
      Pwm_12 = Count_max
      Case 10
      Pwm_11 = Count_max
      Case 11
      Pwm_10 = Count_max
      Case 12
      Pwm_09 = Count_max
      Case 13
      Pwm_08 = Count_max
      Case 14
      Pwm_07 = Count_max
      Case 15
      Pwm_06 = Count_max
      Case 16
      Pwm_05 = Count_max
      Case 17
      Pwm_04 = Count_max
      Case 18
      Pwm_03 = Count_max
      Case 19
      Pwm_02 = Count_max
      Case 20
      Pwm_01 = Count_max
    End Select
    
    Incr Led_step
    If Led_step = 20 Then Glow = 60
    If Led_step > 20 Then
    
      Ran_time2 = Rnd(1200)
      If Ran_time2 < 600 Then Ran_time2 = 600
      Compare1a = Ran_time2
    
      Ran_time2 = Rnd(6000)
      If Ran_time2 < 2000 Then Ran_time2 = 2000
      Waitms Ran_time2
      Led_step = 1
      Ocr2 = 200
      Glow = 8
    End If
    Return
    آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
    مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
    _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

    #2
    پاسخ : تغییراتی در برنامه LED بارانی یا شهاب سنگی (بسکام)

    ساخت این مدار با میکرو دیوانگی محضه!
    با پدربزرگ فلاشر های امروزی میشه این رو درست کرد.

    دیدگاه


      #3
      پاسخ : پاسخ : تغییراتی در برنامه LED بارانی یا شهاب سنگی (بسکام)

      نوشته اصلی توسط A-Ice Man
      ساخت این مدار با میکرو دیوانگی محضه!
      با پدربزرگ فلاشر های امروزی میشه این رو درست کرد.
      سلام دوست عزیز
      بله حق با شماست
      ولی به هر حال این برنامه نوشته شده و با کمی تغییر در کدها , میتوان تا حدی به نتیجه رسید
      هدف من هم تکمیل این پروژه آماده است و فقط جنبه سرگرمی دارد (در پروژه صنعتی
      به هیچ عنوان صرف نمیکند که از میکرو استفاده شود...)
      آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
      مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
      _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

      دیدگاه


        #4
        پاسخ : پاسخ : تغییراتی در برنامه LED بارانی یا شهاب سنگی (بسکام)

        نوشته اصلی توسط A-Ice Man
        ساخت این مدار با میکرو دیوانگی محضه!
        با پدربزرگ فلاشر های امروزی میشه این رو درست کرد.
        میشه مدارش رو بذارید ؟

        دیدگاه


          #5
          پاسخ : تغییراتی در برنامه LED بارانی یا شهاب سنگی (بسکام)

          سلام
          من برنامه همین کار رو به بیسیک تبدیل کردم و خیلی راحت تر تعریف شده
          البته چون مگا 8 مد CTC در تایمر 0 نداره باید تبدیلش کنی به تایمر 2
          این هم لینکش ....
          http://www.eca.ir/forum2/index.php?topic=90246.msg560399#msg560399
          البته تغییر دادنش خیلی راحته ...
          خودتون دیگه باید تغییرات رو بدید چون من زیاد بیسیک کار نیستم و پدرم در اومد تا کدها را از زبان C به بیسیک تبدیل کردم
          موفق باشید
          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
          معرفی نرم افزار Codewizard PWM
          با من بیشتر آشنا شوید

          دیدگاه


            #6
            پاسخ : پاسخ : تغییراتی در برنامه LED بارانی یا شهاب سنگی (بسکام)

            نوشته اصلی توسط A-Ice Man
            ساخت این مدار با میکرو دیوانگی محضه!
            با پدربزرگ فلاشر های امروزی میشه این رو درست کرد.

            یعنی چی؟

            دیدگاه


              #7
              پاسخ : تغییراتی در برنامه LED بارانی یا شهاب سنگی (بسکام)

              ممنون دوست عزیز

              اما این برنامه که من قرار دادم دقیقا برای این کار طراحی شده و زمان بندی روشن و خاموش شدن LED ها دقیق است
              بهتر نیست دوستان کمی این برنامه را دستکاری کنند تا به نتیجه برسیم؟
              آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
              مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
              _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

              دیدگاه


                #8
                پاسخ : تغییراتی در برنامه LED بارانی یا شهاب سنگی (بسکام)

                نوشته اصلی توسط sina1359
                ممنون دوست عزیز
                اما این برنامه که من قرار دادم دقیقا برای این کار طراحی شده و زمان بندی روشن و خاموش شدن LED ها دقیق است
                بهتر نیست دوستان کمی این برنامه را دستکاری کنند تا به نتیجه برسیم؟
                مگه شما نمیخواین که باران led درست کنی ؟؟؟
                از برنامه من استفاده کن مطمئن هست و راحت ...
                یه جدول لوکپ بگذارید و مساوی اون آرایه pwm قرار بدید ...
                اگر با زبان C آشنایی دارید این برنامه رو نوشتم ...
                http://www.eca.ir/forum2/index.php?topic=90246.msg576250#msg576250
                http://www.eca.ir/forum2/index.php?topic=90246.msg576251#msg576251
                هلو هلو ... :nice:
                موفق باشید
                [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                معرفی نرم افزار Codewizard PWM
                با من بیشتر آشنا شوید

                دیدگاه


                  #9
                  پاسخ : پاسخ : تغییراتی در برنامه LED بارانی یا شهاب سنگی (بسکام)

                  نوشته اصلی توسط sina1359
                  سلام دوست عزیز
                  بله حق با شماست
                  ولی به هر حال این برنامه نوشته شده و با کمی تغییر در کدها , میتوان تا حدی به نتیجه رسید
                  هدف من هم تکمیل این پروژه آماده است و فقط جنبه سرگرمی دارد (در پروژه صنعتی
                  به هیچ عنوان صرف نمیکند که از میکرو استفاده شود...)
                  100%
                  خود برد اصلی از یک نوع میکرو که برای این کار ساخته شده استفاده شده که قیمتش خیلی پائین هست.(شاید در چین در حد 300-400 تومان اینطرف)
                  برای تولید یک همچین بردی اصلا نمیصرفه میکرو 2500 تومانی + سایر قطعات استفاده بشه.

                  دیدگاه

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