ارتباط درایور موتور دیسی MD10 با برد آردوینو
۱۱ دی ۱۳۹۷راهی نوین در تولید سوراخ مربعی شکل
۱۱ دی ۱۳۹۷به طور خلاصه پتانسیومتر یا ولوم، مقاومتی است که میتوان مقدار آن را تغییر داد و کاربرد آن در کنترل شدت نور، صوت، دما و … میباشد. پتانسیومترهای معمولی دارای سه پایه و یک لغزنده (مانند پیچ) میباشند که با جابجا کردن و تغییر لغزنده مقدار مقاومت پتانسیومتر تعییر میکند.
در شکل زیر انواع اینگونه پتانسیومترها را میبینید:
در بسیاری از موارد ممکن است که قصد داشته باشیم مقدار مقاومت قسمتی از مدار با فرمان میکروکنترلر تغییر کند مثلا اگر قصد داشته باشیم صدا و یا نور السیدی و … به صورت نرم افزاری یا با زدن دکمهای کم و زیاد شود که در این صورت باید به سراغ پتانسیومترهای دیجتال رفت.
در این آموزش قصد معرفی و آموزش آیسی پتانسیومتر دیجیتال MCP41010 را داریم.
MCP41XXX دارای ۱ پتانسیومتر و MPC42XXX دارای دو پتانسیومتر میباشد. XXX مقدار مقاومت پتانسیومتر را مشخص میکند که ۱۰، ۵۰، ۱۰۰ و … کیلو اهم میباشد.
این آیسی دارای ۸ پایه میباشد که ترتیب و نام این پایهها مانند شکل زیر است.
کاربرد هر پایه به طور مختصر در جدول ذیر توضیح داده شده است.
این آی سی توسط پرتکل اتصال سریال بین قطعات جانبی (Serial Peripheral Interface) یا به اختصار SPI کار میکند و مدار آن به صورت شکل زیر میباشد.
دقت کنید که این آی سی فقط Slave بوده و دستور میگیرد پس پایه ۳ این آی سی باید به پایه MOSI میکروکنترلر متصل شود. پایه ۲ که کلاک است باید به SCK میکروکنترلر و پایه ۱ که برای انتخاب آی سی استفاده میشود را می توان به هر یک از پایههای آزاد میکروکنترلر متصل کرد.
- پایه ۵ به ولتاژ +
- پایه ۶ خروجی
- پایه ۷ زمین
البته میتوان جای پایه های ۵ و ۷ را عوض کرد یعنی ۵ به زمین متصل شود و ۷ به ولتاژ مثبت.
پایه های ۴ و ۸ تغذیه این آی سی میباشند و پایه ۴ به زمین و پایه ۸ را به مثبت ۵ ولت متصل کنید (در پروتئوس به طور پیش فرض تغذیه آی سی ها متصل گردیدهاند و به همین خاطر در شکل بالا شما پایه های ۴ و ۸ را نمیبینید)
بعد از بستن این مدار در پروتئوس و یا روی برد برد به سراغ کدنویسی میرویم و دقت لازم را داشته باشید که ما در این جا از کدویژن ورژن ۳٫۱۲ استفاده میکنیم و ممکن است تفاوتهایی با نسخهای که شما استفاده میکنید داشته باشد.
بعد از ساخت پروژه جدید و انتخاب میکروکنترلر و فرکانس کاری آن باید SPI را فعال کرده و مانند شکل زیر تنظیمات آن را انجام دهید.
بعد باید پایه های MOSI، SCK و CS که در اینجا به ترتیب B.5، B.7 و B.0 میباشند را خروجی تعریف نمود و در نهایت پروژه را ذخیره کرده و وارد محیط کدنویسی شویم.
با توجه به اطلاعات درون دیتاشیت این آی سی، پتانسیومتر درون آی سی 256 مقدار در قالب فرمان های 16 بیتی میگیرد که 0 کمترین مقدار و 255 بیشترین مقدار پتانسیومتر میباشد. بدین شکل که 8 بیت اول فرمان مورد نظر و 8 بیت دوم مقدار میباشد و ساختار 8 بیت اول مانند شکل زیر است.
با توجه به شکل بالا و توضیحات داده شده به عنوان مثال اگر بخواهیم مقدار 200 را روی پتانسیومتر قرار دهیم شکل بیتها بدین شکل خواهد شد:
و کد آن در کد ویژن: (باید 8 بیت 8 بیت ارسال شود)
spi(0b00010001); spi(0b11001000);
حال می خواهیم به عنوان مثال نور ال ای دی را به طور پیوسته کم و زیاد کنیم. قطعه کد زیر این کار را خواهد کرد و میتوانید آن را داخل حلقه while برنامه خود کپی کرده و نتیجه را مشاهده نمایید.
for(i=128;i<256;i++) { PORTB.0=0; spi(0x11); spi(i); PORTB.0=1; delay_ms(30); } delay_ms(100); for(i=255;i>128;i--) { PORTB.0=0; spi(0x11); spi(i); PORTB.0=1; delay_ms(30); }
پسورد : robotmakers.ir
16 Comments
سلام
ببخشید این فایل که گذاشتید برای دانلود پسوردش چیه؟
سلام محمد جان
پسورد فایل robotmakers.ir هست ممنون که یادآوری کردی.
سلام
حداکثر جریان قابل تحمل این آی سی ها برای مقاومت ۱کیلو چقدر است؟ باتشکر
جالب بود مهندس موفق باشی
سلام
آقا دم شما گرم
خیلی خوب و ساده و کامل بود.
ممنون خوب بود. دمت گرم
با سلام
فایل هکس برنامه در فایلی که برای دانلود قرار دادید موجود نمیباشد.
لطفا در صورت امکان ان را هم قرار دهید.
با تشکر
سلام
ممنون از این آموزش
من میخوام MCP41010 را با ATmega16 راه اندازی کنم و این کد جواب نمیده
میتونید راهنماییم کنید؟
ممنونم
لطفا راهنمایی بفرمائید درمورد کد بکام برای راه اندازی این آی سی
سلام لطفا بفرمائید با کدوم ورژن پروتئوس کار کردید . بنده متاسقانه نمیتونم فایل رو باز کنم
سلام. من تو یه پروژه میخوام برای کنترل شدت نور یک لامپ بوسیله دیمر از یه پتانسیومتر دیجیتال استفاده کنم.به یه پتانسیومتر دیجیتال ۵۰۰ کیلو اهم نیاز دارم که دوسرش ولتاژ ۲۲۰ ولت ac میفته به نظرتون با توجه توان این ic ها این کار شدنیه؟(پتانسیومتر با avr کنترل میشه)
سلام.
باید به دیتاشیت ic مراجعه کنین. اونجا حتما گفته که میشه یا نه.
ممنون
عالی بود متشکرم
عالي بود. ممنون.
سلام . در این نوع پتانسیومتر های دیجیتال آیا میشه خود مقاومت را با استفاده از اهم متر اندازه گرفت .من x9c102 استفاده کردم و با آردینهو راه اندازی شد ولتاژ ۵ ولت بهش دادم و ۰ تا ۵ گرفتم ولی در زمانی که ولتاژ را از دو سر پایه های خروجی بر می دارم و میخام مقدار مقاومت رو اندازه بگیرم مقدار خیلی زیاد در حد ۷۰۰ کیلو دارم و ثابته .آیا درسته
سلام۰
مطلب شما بسیارمفید بود.
لطفا یک مثال هم برای راه اندازی mcp4131, توسایت قرار بدید.