با سلام خدمت دوستان.
من برنامه رو نوشتم و تکمیل هست فقط یه مشکل دارم.
موقعی که نور led رو کم میکنم led با سرعت زیاد شروع به چشمک زدن میکنه.
میخواستم بدونم عادیه یا مشکل از برنامه هست؟
با سلام خدمت دوستان.
من برنامه رو نوشتم و تکمیل هست فقط یه مشکل دارم.
موقعی که نور led رو کم میکنم led با سرعت زیاد شروع به چشمک زدن میکنه.
میخواستم بدونم عادیه یا مشکل از برنامه هست؟
شاید فرکانس چشمک زدن کمه.معمولا فرکانس را زیاد انتخاب می کنند تا چشمک زدن معلوم نباشه در عوض با تغییر دیوتی سیکل نور را تغیر می دهند
دوست عزیز - شما باید یه خروجی به شکل زیر داشته باشید؛ با یه فرکانس بالای 30 هرتز (تو این مثال 100 هرتز)
یعنی به متناسب نوری که میخواهید led داشته باشه خروجیتونو یک کنید و مابقی مدت زمان اون سیکل رو 0.
تو شکلی که براتون گذاشتم اولین خروجی از بالا با 10 درصد نور و به ترتیب تا آخری 99 درصد.
البته بسته به نوع led ممکنه نور اون متناسب با خروجی شما نباشه.
سلام
حق با دوستانمون هست ، حتما فرکانس موج pwm شما کم هست ، اگه با فرکانس بیشتری کار کنید مشکل برطرف میشه. و طبق فرمایش دوستمون فرکانس باید حداقل 30 - 40 هرتز باشه تا طبق اثر فلیکر چشم نتونه لحظات خاموش شدن led رو درک کنه.
به این خاطر گفتم فرکانس 30 تا 40 هرتز چون این کاملا وابسته به نوع led و رنگ نور اون هست ، تقریبا میشه گفت باید بطور تجربی فرکانس مناسب رو بدست آورد.
.
مقاومت چند اهم گذاشتید؟
فرکانس تو روشنایی تاثیر نداره !
فرکانس حتما بالای 60 هرتز باشه ، prescaler رو چند گذاشتید ؟
حق با دوستمونه
فرکانس توی روشنایی تاثیری نداره ، همیشه مد نظر داشته باشید که در یک موج PWM تنها عامل موثر در میزان توان مدت زمان یک بودن پالس یا همون سطح موثر پالس هست ، و همیشه در هر فرکانسی شما می تونید یه ولتاژ ( یا توان DC) بین دو مقدار زمین وVcc ایجاد کنید ، بدون اینکه مشکلی پیش بیاد.
پس شما نترس و مدار رو با فرکانس های بالاتر تست کن ، از طرفی مقدار مقاومت هم می تونه تاثیر گذار باشه ، چون در یک LED میزان نور تابعی از جریان عبوری هست ( با جریان نسبت مستقیم داره) نه ولتاژ!
.
یک پتانسیومتر 5kمشکلو حل می کنه.
من prescaler=1 قرار دادم.
برنامم هم به این صورت است که مقدار ولتاژ پتانسیومتر از طریق adc خونده میشه و بعدش pwm رو به این صورت گذاشتم:
a=getadc(0)
pwm1a=10
pwm1b=a
که به وسیله پتانسیومتر کنترل میشه.
حالا نمیدونم مشکل از کجاست؟
توی انجمن جستو کنید ، توی یک پست بخش pwm به صورت کامل بررسی شده و نحوه تغییر دادن فرکانس گفته شده .
شما میتونید با استفاده از اون پست مشکل رو حل کنید
نگفتی چه مقاومتی با led سری کردی ،
ولتاژ خروجی pwm نباید کمتر از 1.8 ولت باشه چون led هم دیوده دیگه ! پس حداقل مقدار pwm1b باید 400 باشه .
pwm1a=10 رو برای چی نوشتی؟!
؟؟؟!!!
یه مقاومت 330 یا 470 باید سری کنی وگرنه یا led میسوزه ویا میکرو آسیب میبینه !
حداکثر pwm1b مقدار 1023 هست که میشه 5 ولت پس 400 میشه حدود 2 ولت .اگه به led کمتر از 1.7 بدی اصلا روشن نمیشه .
من همیشه بدون مقاومت رو شن میکنم و مشکلی پیش نمیاد.یه مقاومت 330 یا 470 باید سری کنی وگرنه یا led میسوزه ویا میکرو آسیب میبینه !
به به
مهندس از اون موقع تا حالا میگی مقاومت سری نکردم؟! بدون مقاومت حتما مشکل پیش میاد ، نمونش همین مشکلی که الان داری. برای ولتاژ 5 ولت مقاومت 330 اهم مناسب هست.
آخه LED یه نوع دیود هست با ولتاژ گامایی بین 1.5 تا 2 ولت ، همه ی ما هم میدونیم که وقتی یه دیود روشن بشه ولتاژ دو سرش در حد ولتاژ گاما ثابت میمونه ،حالا شما نمیگی وقتی ولتاژ 5 ولت رو میندازی دو سر اون LED بدبخت نزدیک 2 ولتشم میره واسه ولتاژ گاما پس بقیش چی میشه؟
شما باید یه مقاومت باهاش سری کنی که بقیه ولتاژ بیفته دو سر مقاومت ، بعد این ولتاژ تقسیم بر مقدار مقاومت میشه میزان جریان عبوری از دیود.
اگرم تا حالا LED نسوخته بخاطر اینه که جریانی که از پایه ی میکرو خارج میشه کمه و گرنه تا حالا سوخته بود.
.