ايران ويج

نسخه‌ی کامل: کنترل رنگ LED RGB
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
اون فروم سایت بیسکامه !!!!!!!!!!!!!!!!!
اینم کنترل سه رنگ

کد php:
$regfile "m16def.dat" $crystal 1000000

Config Lcdpin 
Pin Db7 Pinc.5 Db6 Pinc.4 Db5 Pinc.3 Db4 Pinc.2 Pinc.1 Rs Pinc.0
Config Lcd 
16 Cursor Off Cls


Config Timer1 
Pwm Pwm Compare A Pwm Clear Down Compare B Pwm Clear Down Prescale 64
Config Timer2 
Pwm Compare Pwm Clear Down Prescale 64

Start Timer1 
Start Timer2



Ddrd 
255 Ddrb Portb 255

Dim R 
As Byte As Byte As Byte

'===============================================================================

Do
   Debounce Pinb.0 , 0 , Incr_r , Gosub
   Debounce Pinb.1 , 0 , Decr_r , Gosub
   Debounce Pinb.2 , 0 , Incr_g , Gosub
   Debounce Pinb.3 , 0 , Decr_g , Gosub
   Debounce Pinb.4 , 0 , Incr_b , Gosub
   Debounce Pinb.5 , 0 , Decr_b , Gosub
Loop

'
===============================================================================

Incr_r:
   If 
<> 255 Then Incr R
   Pwm1a 
R
   Home 
Lcd "R=" "  "
Return

Decr_r:
   If 
<> 0 Then Decr R
   Pwm1a 
R
   Home 
Lcd "R=" "  "
Return

'===============================================================================

Incr_g:
   If G <> 255 Then Incr G
   Pwm1b = G
   Locate 1 , 9 : Lcd "G=" ; G ; "  "
Return

Decr_g:
   If G <> 0 Then Decr G
   Pwm1b = G
   Locate 1 , 9 : Lcd "G=" ; G ; "  "
Return

'
===============================================================================

Incr_b:
   If 
<> 255 Then Incr B
   Compare2 
B
   Locate 2 
Lcd "B=" "  "
Return

Decr_b:
   If 
<> 0 Then Decr B
   Compare2 
B
   Locate 2 
Lcd "B=" "  "
Return

'=============================================================================== 

فقط کافیه LED ها رو به پایه های 21 و 19 و 18 وصل کنی !

6 کلید هم برای تنظیم نورها باید بین پایه های 1 تا 6 و زمین قرار بگیرن !

نقشه برنامه فوق :

ال سی دی رو هم طبق برنامه وصل کنین دیگه !

[تصویر:  etnzgp9j6rqttoiukdn.png]
آقای nader875 امیدوارم مشکلتون با زحمتی که علی آقا کشیدن حل بشه

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


(۱۱-آذر-۱۳۸۸, ۱۸:۴۱:۰۰)mehrdadgh نوشته است: [ -> ]اون فروم سایت بیسکامه !!!!!!!!!!!!!!!!!
1) برنامه ای که علی آقا گذاشتن ببینین چند سطر داره برنامه ای که اونا گذاشتن!
2)اگه کسی فقط دو بار واسه LCD برنامه نوشته باشه متوجه میشه که انقدر لازم نیست از دستور locate استفاده كنه چون خودبخود كاراكتر بعدي يه دونه اون ورتر قرار ميگیره

کد php:
.
.
.
Locate 1 5
Lcd 
":"
Waitms 30
Locate 1 
6
Lcd 
"/"
Waitms 30
Locate 1 
7
Lcd 
"/"
Waitms 30
Locate 1 
8
Lcd 
"w"
Waitms 30
Locate 1 
9
Lcd 
"w"
Waitms 30
.
.

با سلام
منم تونستم با تایمر یک و تایمر دو یک خروجی برای rgb درست کنم ولی این پروژه که در سایت بیسکام گذاشته واقعا جالبه چون فقط از تایمر صفر استفاده کرده ولی ازش چیزی سردر نیاوردم .لطفا در این مورد منوهم راهنمایی کنید
منم یه پروژه تو کتاب avr دیدم که میاد با پورت پرینتر و میکرو یه RGB led رو کنترل میکنه. اگه میخوایین تا بذارم.
پرسش و نیکی !
چشم.
تا آخر همین هفته.
با سلام خدمت اساتید عزیز
ماشالله می بینم که به فروم سایت بیسکام ایراد میگیرید
اگه یکم بیشتر به برنامه دقت کنید و اون برنامه رو اجرا کنید متوجه میشید که نویسندش خیلی هم گاگول نبوده و منظورش از نوشتن برنامه به این صورت .
.
.
Locate 1 , 5
Lcd ":"
Waitms 30
Locate 1 , 6
Lcd "/"
Waitms 30
Locate 1 , 7
Lcd "/"
Waitms 30
Locate 1 , 8
Lcd "w"
Waitms 30
Locate 1 , 9
Lcd "w"
Waitms 30
.
.
.
افکتی بوده که اون دستور تاخیر ایجاد می کنه منتها بصورت ساده


بازم دستور LOCATE ها رو اضافه گذاشته !

شما LOCATE ها رو پاک کن و برنامه رو تست کن و ببین که هیچ فرقی نمی کنه !

تازه می تونست متنشو تو یه رشته بریزه و تو یه حلقه بندازه و هر بار یه کارکترش رو نشون می داد !

اینطوری خط های برنامه خیلی خیلی کمتر می شد !
مخصوصا اگه قرار باشه متن طولانی باشه !


شما اگه متن زیر رو بنویسی با همین روش تو فکر می کنی چن خط می شه :

کد php:
WWW.IRANLED.COM 

چون 15 کارکتره و هر کارکتر 3 خط می شه که در کل باید 45 خط بنویسه !
چقدرهم باید دقت کنی !
البته اگه LOCATE ها رو حذف کنیم می شه 30 خط که بازم زیاده !

حالا برنامه منو ببین که چند خط شده !!!

کد php:
$regfile "m32def.dat" $crystal 1000000

Config Lcdpin 
Pin Db4 Pinc.3 Db5 Pinc.2 Db6 Pinc.1 Db7 Pinc.0 Pinc.4 Rs Pinc.5
Config Lcd 
16 Cursor Off Cls

Dim Ss 
As String 16 As Byte

Ss 
"WWW.IRANLED.COM "

For 1 To 15

 Lcd Mid
(ss )

 
Waitms 50

Next

End 

اگه از کانفیگ های برنامه که همیشه هستش بگذریم اصل برنامه واسه اون قسمت فقط پنج خط شده !

کد php:
Ss "WWW.IRANLED.COM "

For 1 To 15

 Lcd Mid
(ss )

 
Waitms 50

Next 
در ضمن الان خیلی راحت تر می تونین متنی که دوست داریم رو بنویسیم !

چون فقط کافیه متغییر SS رو برابر متنمون قرار بدیم و دنگ فنگ برنامه فروم بسکام رو نداریم !


این برنامه و تستش در پروتئوس واسه اینکه باور کنید می شه کوتاهتر نوشت :

چقدر خوبه با تفکر به قضایا نگاه کنیم !
جناب مدیر محترم سلام
درسته ما از بیسکام هیچی نمی دونیم
ولی شما بهتر می دونی که به روشهای دیگه هم می شه این کار رو انجام داد
من هم گفتم
{ افکتی بوده که اون دستور تاخیر ایجاد می کنه منتها بصورت ساده}
شاید نویسنده برنامه قصد خواصی داشته !؟!
با این حساب شما باید برای همه برنامه ایراد بگیری ، حتما بقیه برنامه رو هم خوندی مگه نه ؟
شما بهتر می دونی که اصلا کل این برنامه رو می شه توی چند خط تمومش کرد
پس به قول خودت
{{ چقدر خوبه با تفکر به قضایا نگاه کنیم ! }}
راستی خدمتتون عرض کنم من نیومدم جنگ و دوا سر یه موضوع به این بی ارزشی راه بدازم
راستش من اگه یه روزی ( اگه روزی معلوماتم زیاد شد ، که خوشبختانه هیچ کس نمی تونه بگه من علامه هستم وهمه چیز رو بلدم ) خواستم چیزی به کسی یاد بدم ، می گم بچه ها این برنامه رو می شه از این روش هم نوشت
بابت مثالهای که گذاشتید از طرف خودم تشکر می کنم .
سعی می کنم یاد بگیرم
بین همه برنامه نویسها ، برنامه نویسی خوبتره که در کمترین خط ، بتونه دقیقترین و بی نقص ترین برنامه را بنویسه.
صفحه‌ها: 1 2 3