ايران ويج

نسخه‌ی کامل: ایجاد ولتاژ 0-10 با pwm
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
سلام
من میخام با 4 کلید ورودی که نقش 4 بیت اول رو دارن ولتاژ 0-10 ولت در خروجی تولید کنم که اونجوری که فهمیدم میشه از pwm استفاده کنم
اما جواب نگرفتم
البته میدونم خروجیش حداکثر 5 ولته ولی میشه تقویتش کنم تا برسه به 10
البته اونم بلد نیستم ولی فعلن مشکلم همینه
لطفن هر کمکی به ذهنتون میرسه بگین خیلی کارم گیره
اینم برنامه ایه که با تایمر 2 نوشتم
از اونجا که با 4 بیت 16 حالت پیش میاد 256/16 کردم و هر عددی رو که تو ورودی میگیریم رو ضرب 16 کردم که در بیشترین حالت میشه 16*16 که میشه ولتاژ 5 ولت تولید کرد درسته؟

$regfile = "m16def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2

Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 1

Dim A As Byte
Dim B As Byte
Config Portd = Output
Config Porta = Input

Do

A = Pina
B = A * 16
Ocr2 = B
Lcd b
Loop

End
برنامه که مشکلی ندارهWink
من اجراش کردم مشکلی نداشتCool
Prescale رو تغییر بده شاید مشکلت از این باشه Whistle
(۰۳-دى-۱۳۹۱, ۱۴:۴۱:۱۶)hadikh73 نوشته است: [ -> ]برنامه که مشکلی ندارهWink
من اجراش کردم مشکلی نداشتCool
Prescale رو تغییر بده شاید مشکلت از این باشهWhistle

چه جوری میشه خروجی رو دید؟
تو پروتئوس که هنگ میکنه برا من
از منم هنگ می کرد وPrescale رو روی 8 گذاشتم درست شد
باید با یه مقاومت و خازن پالس ها رو به ولتاژ آنالوگ تبدیل کنی
فایل پروتوسش برات کشیدمWink
تو برنامه تون بعد پیکربندی تایمر؛
چرا start timer2 رو نذاشتید؟
این کد وقفه Ocr2 = B رو چرا گذاشتید؟
(۰۳-دى-۱۳۹۱, ۱۶:۰۳:۲۵)r0b0 نوشته است: [ -> ]تو برنامه تون بعد پیکربندی تایمر؛
چرا start timer2 رو نذاشتید؟
این کد وقفه Ocr2 = B رو چرا گذاشتید؟

start timer2 لازمه؟

Ocr2 = B نمیدونم دقیقن چطوری کار میکنه میخاستم بر اساس مقداری که از ورودی میاد ولتاژ خروجی تغییر کنه
اشتباهه؟

(۰۳-دى-۱۳۹۱, ۱۵:۵۷:۰۰)hadikh73 نوشته است: [ -> ]از منم هنگ می کرد وPrescale رو روی 8 گذاشتم درست شد
باید با یه مقاومت و خازن پالس ها رو به ولتاژ آنالوگ تبدیل کنی
فایل پروتوسش برات کشیدمWink

ممنون اقا
ولی چرا ولتاژ همیشه 5 ولته؟؟برنامم اشتباس؟
نقل قول:
(۰۳-دى-۱۳۹۱, ۱۶:۰۳:۲۵)r0b0 نوشته است: [ -> ]تو برنامه تون بعد پیکربندی تایمر؛
چرا start timer2 رو نذاشتید؟
این کد وقفه Ocr2 = B رو چرا گذاشتید؟

start timer2 لازمه؟
اینو نمی دونم تو برنامه هام(اونایی که با pwm کار میکنن) نمی نویسم جواب هم میدن فکر کنم لازم نباشهQuestion
نقل قول: Ocr2 = B نمیدونم دقیقن چطوری کار میکنه میخاستم بر اساس مقداری که از ورودی میاد ولتاژ خروجی تغییر کنه
اشتباهه؟
درسته چون می خواهید از تایمر 2 استفاده کنید باید با رجیستر OCR2 موج pwm رو کنترل کنید (مثل همون pwm1a عمل می کنهWink)
نقل قول: ممنون اقا
ولی چرا ولتاژ همیشه 5 ولته؟؟برنامم اشتباس؟
بر عکسه وقتی ocr2 صفر باشه ولتاژ 5 ولته و وقتی 255 باشه ولتاژ صفر ولته
اگر می خواهی بر عکسش کنی بعد از خط b=a*16 بنویس b=255-b درست میشهWink
من هنوزم نمیتونم جواب بگیرم از مدار
در عمل البته
بنظرتون برنامه مشکلی نداره؟
(۰۳-دى-۱۳۹۱, ۱۸:۴۵:۰۰)naseria_1364 نوشته است: [ -> ]من هنوزم نمیتونم جواب بگیرم از مدار
در عمل البته
بنظرتون برنامه مشکلی نداره؟
برنامه که مشکلی نداره
ال سی دی روشن میشهExclamation
(۰۳-دى-۱۳۹۱, ۱۹:۰۰:۲۳)hadikh73 نوشته است: [ -> ]
(۰۳-دى-۱۳۹۱, ۱۸:۴۵:۰۰)naseria_1364 نوشته است: [ -> ]من هنوزم نمیتونم جواب بگیرم از مدار
در عمل البته
بنظرتون برنامه مشکلی نداره؟
برنامه که مشکلی نداره
ال سی دی روشن میشهExclamation

ال سی دی ندارم تو واقعیت
فق با ولتمتر دارم خروجی رو اندازه میگیرم
اما درست نشون نمیده
(۰۳-دى-۱۳۹۱, ۱۹:۱۵:۱۵)naseria_1364 نوشته است: [ -> ]ال سی دی ندارم تو واقعیت
فق با ولتمتر دارم خروجی رو اندازه میگیرم
اما درست نشون نمیده
مشکلش چیه چطوری نشون میده واضح توضیح بدهWink
صفحه‌ها: 1 2 3