ساخت رقص نور حرفه ای
در این بخش تیم الکترونیک و برنامه نویسی الکترونیک ۹۸, اقدام به طراحی و انتشار پروژه ای کاربردی و حرفه ای با عنوان, ساخت رقص نور حرفه ای ستاره با افکت های جذاب, برای شما علاقه مندان به پروژه های میکروکنترلر AVR کرده است. بی شک تا به حال انواع رقص نورها با افکت ها و شکل های متفاوت را در سطح شهر و یا مکان های گوناگون دیده اید. بعضی از رقص نورها آنقدر دارای افکت های گوناگون و طولانی هستند که گاه شما را تا چند دقیقه محو تماشای خود می کنند! پس می توانیم نتیجه بگیریم شرط اول ساخت یک رقص نور زیبا و جذاب طراحی افکت های گوناگون و خلاقانه است.
شرح عملکرد پروژه
شاید ساخت یک رقص نور ساده با چند افکت ابتدائی کار زیاد مشکل و پیچیده ای نباشد، اما سختی کار از جایی شروع می شود که بخواهیم یک رقص نور فوق العاده جذاب با افکت های متفاوت داشته باشیم. برای حل این مشکل و ساده کردن پروسه طراحی یک رقص نور حرفه ای، در این پروژه ما با استفاده از یک میکروکنترلر ATTINY2313 اقدام به طراحی یک رقص نور فوق العاده زیبا با طرح ستاره کرده ایم که دارای افکت های بسیار بسیار جذاب می باشد، که شما دوستان عزیز می توانید با الگو برداری از روش برنامه نویسی این پروژه انواع رقص نورها با طرح های متفاوت را در کمترین زمان طراحی نمائید.
همچنین فایل شبیه ساز این پروژه نیز که با نرم افزار Proteus 8 Professional طراحی شده، پیوست فایل پروژه جهت دانلود قرار داده شده است، که می تواند شما را در یادگیری هر چه بهتر مدار و نحوه عملکرد آن یاری نماید.
نقشه شماتیک پروژه ساخت رقص نور حرفه ای ستاره با افکت های جذاب
برنامه نوشته شده در نرم افزار BASCOM-AVR به زبان بیسیک BASIC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 |
$regfile = "attiny2313.dat" $crystal = 8000000 '-------------------------------------------- Config Portb = Output Config Portd.2 = Output Config Portd.3 = Output Config Portd.4 = Output Config Portd.5 = Input ' s1 Config Portd.6 = Input ' s2 Config Portd.0 = Input ' s3 Config Portd.1 = Input ' s4 '-------------------------------------------- Dim S As Byte 'Variable speed Dim E As Byte 'variable effect Dim Delta_t As Byte 'Delta time Dim Spedtek As Byte 'current speed Dim Data_out As Byte 'imprint in port Dim Shag_effect As Byte 'step effect Dim Shag_max As Byte 'maximum step effect Dim D As Word Dim Flag_effect As Byte Dim Flag_speed As Byte Dim Fs As Byte Dim Ef As Byte S = 7 Spedtek = Lookup(s , Speders) Shag_effect = 0 Shag_max = 8 E = 1 D = 0 '-------------------------------------------- Do Portd = &H00 Gosub Outdata Portd = &H04 Gosub Outdata Portd = &H08 Gosub Outdata Portd = &H0C Gosub Outdata Portd = &H10 Gosub Outdata Portd = &H14 Gosub Outdata Portd = &H18 Gosub Outdata Portd = &H1C Gosub Outdata '-------------------------------------------- Incr Delta_t 'Increase delta time If Delta_t = Spedtek Then 'If the time delta is the current speed, the Incr Shag_effect 'increasing current step effect Delta_t = 0 'delta time zero End If '-------------------------------------------- If Shag_effect = Shag_max Then Shag_effect = Shag_max - 8 If Flag_speed = 1 Then Incr Fs If Fs = 24 Then Fs = 1 Spedtek = Lookup(fs , Speders) End If If Flag_effect = 1 Then Incr Ef If Ef = 8 Then Ef = 1 Incr E If E > 12 Then E = 1 Shag_max = E * 8 'The maximum step is equal to the number effect, multiplied by 8 Shag_effect = Shag_max - 8 'Step effect is equal to the maximum step minus 8 End If End If End If '-------------------------------------------- D = Shag_effect * 8 Debounce Pind.5 , 0 , Plus_speed , Sub Debounce Pind.1 , 0 , Minus_speed , Sub Debounce Pind.6 , 0 , Plus_effect , Sub Debounce Pind.0 , 0 , Minus_effect , Sub If Pind.5 = 0 And Pind.1 = 0 Then Flag_speed = 1 If Pind.6 = 0 And Pind.0 = 0 Then Flag_effect = 1 Loop '-------------------------------------------- Outdata: Data_out = Lookup(d , Effekt) Portb = Data_out D = D + 1 Waitms 1 Portb = &H00 Return '-------------------------------------------- Plus_speed: Incr S If S > 11 Then S = 11 Spedtek = Lookup(s , Speders) Delta_t = 0 Flag_speed = 0 Return '-------------------------------------------- Minus_speed: Decr S If S < 1 Then S = 1 Spedtek = Lookup(s , Speders) Delta_t = 0 Flag_speed = 0 Return '-------------------------------------------- Plus_effect: Incr E If E > 12 Then E = 12 Shag_max = E * 8 'The maximum step is equal to the number effect, multiplied by 8 Shag_effect = Shag_max - 8 'Step effect is equal to the maximum step minus 8 Flag_effect = 0 Return '-------------------------------------------- Minus_effect: Decr E If E < 1 Then E = 1 Shag_max = E * 8 'The maximum step is equal to the number effect, multiplied by 8 Shag_effect = Shag_max - 8 'Step effect is equal to the maximum step minus 8 Flag_effect = 0 Return '-------------------------------------------- Speders: Data 1 , 2 , 3 , 4 , 6 , 9 , 13 , 18 , 24 , 31 , 39 , 50 , 70 , 50 , 39 , 31 , 24 , 18 , 13 , 9 , 6 , 4 , 3 , 2 , 1 '-------------------------------------------- Effekt: Data &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 Data &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 Data &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 Data &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF Data &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 Data &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 Data &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 Data &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF '-------------------------------------------- Data &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF Data &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 Data &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 Data &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 Data &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF Data &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 Data &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 Data &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 '-------------------------------------------- Data &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 Data &H02 , &H02 , &H02 , &H02 , &H02 , &H02 , &H02 , &H02 Data &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 Data &H08 , &H08 , &H08 , &H08 , &H08 , &H08 , &H08 , &H08 Data &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10 Data &H20 , &H20 , &H20 , &H20 , &H20 , &H20 , &H20 , &H20 Data &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 Data &H80 , &H80 , &H80 , &H80 , &H80 , &H80 , &H80 , &H80 '-------------------------------------------- Data &H80 , &H80 , &H80 , &H80 , &H80 , &H80 , &H80 , &H80 Data &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 Data &H20 , &H20 , &H20 , &H20 , &H20 , &H20 , &H20 , &H20 Data &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10 Data &H08 , &H08 , &H08 , &H08 , &H08 , &H08 , &H08 , &H08 Data &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 Data &H02 , &H02 , &H02 , &H02 , &H02 , &H02 , &H02 , &H02 Data &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 '-------------------------------------------- Data &H01 , &H02 , &H04 , &H08 , &H10 , &H20 , &H40 , &H80 Data &H80 , &H01 , &H02 , &H04 , &H08 , &H10 , &H20 , &H40 Data &H40 , &H80 , &H01 , &H02 , &H04 , &H08 , &H10 , &H20 Data &H20 , &H40 , &H80 , &H01 , &H02 , &H04 , &H08 , &H10 Data &H10 , &H20 , &H40 , &H80 , &H01 , &H02 , &H04 , &H08 Data &H08 , &H10 , &H20 , &H40 , &H80 , &H01 , &H02 , &H04 Data &H04 , &H08 , &H10 , &H20 , &H40 , &H80 , &H01 , &H02 Data &H02 , &H04 , &H08 , &H10 , &H20 , &H40 , &H80 , &H01 '-------------------------------------------- Data &H80 , &H40 , &H20 , &H10 , &H08 , &H04 , &H02 , &H01 Data &H40 , &H20 , &H10 , &H08 , &H04 , &H02 , &H01 , &H80 Data &H20 , &H10 , &H08 , &H04 , &H02 , &H01 , &H80 , &H40 Data &H10 , &H08 , &H04 , &H02 , &H01 , &H80 , &H40 , &H20 Data &H08 , &H04 , &H02 , &H01 , &H80 , &H40 , &H20 , &H10 Data &H04 , &H02 , &H01 , &H80 , &H40 , &H20 , &H10 , &H08 Data &H02 , &H01 , &H80 , &H40 , &H20 , &H10 , &H08 , &H04 Data &H01 , &H80 , &H40 , &H20 , &H10 , &H08 , &H04 , &H02 '-------------------------------------------- Data &H01 , &H80 , &H01 , &H80 , &H01 , &H80 , &H01 , &H80 Data &H02 , &H40 , &H02 , &H40 , &H02 , &H40 , &H02 , &H40 Data &H04 , &H20 , &H04 , &H20 , &H04 , &H20 , &H04 , &H20 Data &H08 , &H10 , &H08 , &H10 , &H08 , &H10 , &H08 , &H10 Data &H10 , &H08 , &H10 , &H08 , &H10 , &H08 , &H10 , &H08 Data &H20 , &H04 , &H20 , &H04 , &H20 , &H04 , &H20 , &H04 Data &H40 , &H02 , &H40 , &H02 , &H40 , &H02 , &H40 , &H02 Data &H80 , &H01 , &H80 , &H01 , &H80 , &H01 , &H80 , &H01 '-------------------------------------------- Data &H80 , &H01 , &H80 , &H01 , &H80 , &H01 , &H80 , &H01 Data &H40 , &H02 , &H40 , &H02 , &H40 , &H02 , &H40 , &H02 Data &H20 , &H04 , &H20 , &H04 , &H20 , &H04 , &H20 , &H04 Data &H10 , &H08 , &H10 , &H08 , &H10 , &H08 , &H10 , &H08 Data &H08 , &H10 , &H08 , &H10 , &H08 , &H10 , &H08 , &H10 Data &H04 , &H20 , &H04 , &H20 , &H04 , &H20 , &H04 , &H20 Data &H02 , &H40 , &H02 , &H40 , &H02 , &H40 , &H02 , &H40 Data &H01 , &H80 , &H01 , &H80 , &H01 , &H80 , &H01 , &H80 '-------------------------------------------- Data &H01 , &H01 , &H01 , &H01 , &H80 , &H80 , &H80 , &H80 Data &H02 , &H02 , &H02 , &H02 , &H40 , &H40 , &H40 , &H40 Data &H04 , &H04 , &H04 , &H04 , &H20 , &H20 , &H20 , &H20 Data &H08 , &H08 , &H08 , &H08 , &H10 , &H10 , &H10 , &H10 Data &H10 , &H10 , &H10 , &H10 , &H08 , &H08 , &H08 , &H08 Data &H20 , &H20 , &H20 , &H20 , &H04 , &H04 , &H04 , &H04 Data &H40 , &H40 , &H40 , &H40 , &H02 , &H02 , &H02 , &H02 Data &H80 , &H80 , &H80 , &H80 , &H01 , &H01 , &H01 , &H01 '-------------------------------------------- Data &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF Data &H7F , &H7F , &H7F , &H7F , &H7F , &H7F , &H7F , &H7F Data &H3F , &H3F , &H3F , &H3F , &H3F , &H3F , &H3F , &H3F Data &H1F , &H1F , &H1F , &H1F , &H1F , &H1F , &H1F , &H1F Data &H0F , &H0F , &H0F , &H0F , &H0F , &H0F , &H0F , &H0F Data &H07 , &H07 , &H07 , &H07 , &H07 , &H07 , &H07 , &H07 Data &H03 , &H03 , &H03 , &H03 , &H03 , &H03 , &H03 , &H03 Data &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 '-------------------------------------------- Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 Data &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10 Data &H30 , &H30 , &H30 , &H30 , &H30 , &H30 , &H30 , &H30 Data &H70 , &H70 , &H70 , &H70 , &H70 , &H70 , &H70 , &H70 Data &HF0 , &HF0 , &HF0 , &HF0 , &HF0 , &HF0 , &HF0 , &HF0 Data &HF1 , &HF1 , &HF1 , &HF1 , &HF1 , &HF1 , &HF1 , &HF1 Data &HF3 , &HF3 , &HF3 , &HF3 , &HF3 , &HF3 , &HF3 , &HF3 Data &HF7 , &HF7 , &HF7 , &HF7 , &HF7 , &HF7 , &HF7 , &HF7 '-------------------------------------------- Data &H00 , &HFF , &HFF , &HFF , &H00 , &HFF , &HFF , &HFF Data &HFF , &H00 , &HFF , &HFF , &HFF , &H00 , &HFF , &HFF Data &HFF , &HFF , &H00 , &HFF , &HFF , &HFF , &H00 , &HFF Data &HFF , &HFF , &HFF , &H00 , &HFF , &HFF , &HFF , &H00 Data &H00 , &HFF , &HFF , &HFF , &H00 , &HFF , &HFF , &HFF Data &HFF , &H00 , &HFF , &HFF , &HFF , &H00 , &HFF , &HFF Data &HFF , &HFF , &H00 , &HFF , &HFF , &HFF , &H00 , &HFF Data &HFF , &HFF , &HFF , &H00 , &HFF , &HFF , &HFF , &H00 |
با سلام و احترام
ممنون از لطف و محبت شما
بله می توانید استفاده کنید و نیازی به تغییرات زیادی نیست و فقط کافی در خط اول نام میکروکنترلر و پایه های مربوطه را در برنامه ویرایش کنید.