پتانسیومتر دیجیتال ( بسکام )

+2 امتیاز
77 بازدید
سوال شده شهریور 8, 1396 در الکترونیک توسط amir2640 (210 امتیاز)
با سلام

من میخوام برنامه ای بنویسم در بسکام که بشه یک پتانسومتر رو به صورت دیجیتال کنترل کرد.

من دارم از پتانسیومتر دیجیتال mcp41010 استفاده میکنم که 255 استپ داره و به ازای 0 تا 255 مقاومت اون زیاد میشه ( 255 معادل 10 کیلواهم و 0 معدل صفر هست )

در این برنامه ای که نوشتم میخواستم با توجه به مقداری که به متغیر Var(1) میدم میزان مقاومت و در نتیجه ولتاژ خروجی تغییر کنه ولی در عمل برنامم درست کار نمیکنه در پروتیوس ؟

ممنون میشم راهنمایی بفرمایید

 $regfile = "m323def.dat"
  $crystal = 1000000

  Config Spi = Soft , Din = Pinb.4 , Dout = Portb.1 , Ss = Portb.2 , Clock = Portb.3
Spiinit                                                 

Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output

Dim A As Byte
Dim Var(1) As Byte

Var(1) = &B11011101

 Reset Portb.3
Shiftout Portb.1 , Portb.0 , Var(1) , 1                  
Shiftout Portb.1 , Portb.0 , A , 1          

           Set Portb.3

end

3 پاسخ

0 امتیاز
پاسخ داده شده شهریور 9, 1396 توسط محمود حسن پور دهنوی (5,260 امتیاز)
انتخاب شده شهریور 10, 1396 توسط amir2640
 
بهترین پاسخ
با سلام

اطلاعات باید در قالب 16 بیت به صورت دو 8 بیتی واسه پتانسیومتر ارسال بشن. توی کدی که شما نوشیتم من فقط 8 بیت مربوط به مقدار پتانسیومتر رو می بینم. باید قبلش 8 بیت دستور رو هم طبق دیتاشیت آی سی ارسال کنین.

 با تشکر
دارای دیدگاه شهریور 10, 1396 توسط amir2640 (210 امتیاز)
سلام دوست گرامی
ممنون از پاسختون. من دقیقا نتونستم پیدا کنم که چه میزانی رو باید در قالب یک دستور 8 بیتی به برنامه اضافه کنم. اما با توجه به چیزی که در این سایت در قسمت پتانسیومتر دیجیتال دیدم میزان 00010001 رو به عنوان دستور در نظر گرفته بودند و من این رو به صورته فایلی که ملاحضه میکنید قبل از مقدار پتانسیومتر اضافه کردم.
اما متاسفانه مقدار مقاومت هر عددی رو که در بازه ی 0 تا 255 بهش میدم یا پتانسو متر 0 نشون میده یا 2.5 که حداکثرشه ؟
بنابر این مممنونت میشم اگر که لطف کنید و ایرادهای برنامم رو به من بگید. ( بیشتر از 10 روزه که گیر این پروژه هستم و به نتیجه ای نمیرسم متاسفانه )
با تشکر


  $crystal = 1000000

  Config Spi = Soft , Din = Pinb.4 , Dout = Portb.1 , Ss = Portb.2 , Clock = Portb.3
Spiinit                                                 

Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output

Dim A As Byte
Dim Var(1) As Byte
َA=&b00010001
Var(1) = &B11011101

 Reset Portb.3
Shiftout Portb.1 , Portb.0 , Var(1) , 1                  
Shiftout Portb.1 , Portb.0 , A , 1          

           Set Portb.3

end
0 امتیاز
پاسخ داده شده شهریور 10, 1396 توسط amir2640 (210 امتیاز)
سلام دوست گرامی
ممنون از پاسختون. من دقیقا نتونستم پیدا کنم که چه میزانی رو باید در قالب یک دستور 8 بیتی به برنامه اضافه کنم. اما با توجه به چیزی که در این سایت در قسمت پتانسیومتر دیجیتال دیدم میزان 00010001 رو به عنوان دستور در نظر گرفته بودند و من این رو به صورته فایلی که ملاحضه میکنید قبل از مقدار پتانسیومتر اضافه کردم.
اما متاسفانه مقدار مقاومت هر عددی رو که در بازه ی 0 تا 255 بهش میدم یا پتانسو متر 0 نشون میده یا 2.5 که حداکثرشه ؟
بنابر این مممنونت میشم اگر که لطف کنید و ایرادهای برنامم رو به من بگید. ( بیشتر از 10 روزه که گیر این پروژه هستم و به نتیجه ای نمیرسم متاسفانه )
با تشکر

  $crystal = 1000000

  Config Spi = Soft , Din = Pinb.4 , Dout = Portb.1 , Ss = Portb.2 , Clock = Portb.3
Spiinit                                                 

Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output

Dim A As Byte
Dim Var(1) As Byte
َA=&b00010001
Var(1) = &B11011101

 Reset Portb.3
Shiftout Portb.1 , Portb.0 , Var(1) , 1                  
Shiftout Portb.1 , Portb.0 , A , 1          

           Set Portb.3

end
دارای دیدگاه شهریور 12, 1396 توسط محمود حسن پور دهنوی (5,260 امتیاز)
با سلام
من بسکام کار نکردم. اگه امکان داره خط به خط کدتون رو توضیح بدین تا بهتر بتونم کمکتون کنم.
ممنون
0 امتیاز
پاسخ داده شده مهر 27, 1396 توسط وحید (170 امتیاز)
سلام دوست عزیز. اگر امکان داشته باشه به سوال منم توجه کنید ودر مورد پتانسیومتر دیجیتالی توضیحاتی بفرمائید. و به نظرتون میشه با پتانسیومتر دیجیتالی به صورت خطی کار کرد؟
به پرسش و پاسخ ربات سازان خوش آمدید, مکانی برای پرسش سوال و دریافت پاسخ از دیگر کاربران این مجموعه.
...