فهرست مطالب:
- مرحله 1: اتصالات DS1803
- مرحله 2: Command Byte
- مرحله 3: کنترل DS1803
- مرحله 4: تنظیم کنید
- مرحله 5: برنامه
![پتانسیومتر دوگانه دیجیتال DS1803 با آردوینو: 5 مرحله پتانسیومتر دوگانه دیجیتال DS1803 با آردوینو: 5 مرحله](https://i.howwhatproduce.com/images/003/image-7872-16-j.webp)
تصویری: پتانسیومتر دوگانه دیجیتال DS1803 با آردوینو: 5 مرحله
![تصویری: پتانسیومتر دوگانه دیجیتال DS1803 با آردوینو: 5 مرحله تصویری: پتانسیومتر دوگانه دیجیتال DS1803 با آردوینو: 5 مرحله](https://i.ytimg.com/vi/kMiuT0qL72U/hqdefault.jpg)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
![پتانسیومتر دیجیتال دوگانه DS1803 با آردوینو پتانسیومتر دیجیتال دوگانه DS1803 با آردوینو](https://i.howwhatproduce.com/images/003/image-7872-17-j.webp)
من دوست دارم استفاده از دستگاه دیجیتالی دیجیتال DS1803 را با آردوینو به اشتراک بگذارم. این IC شامل دو قابلمه دیجیتالی دیجیتالی است که می توان آنها را از طریق رابط دو سیم کنترل کرد ، برای این کار از کتابخانه wire.h استفاده می کنم.
این IC می تواند جایگزین یک دیگ اندازه گیری معمولی آنالوگ شود. به این ترتیب شما می توانید برای مثال یک تقویت کننده یا منبع تغذیه را کنترل کنید.
در این دستورالعمل ، روشنایی دو LED را برای نشان دادن کارکرد کنترل می کنم.
آردوینو پالس های یک رمزگذار دوار را شمارش می کند و مقدار را در گلدان متغیر [0] و گلدان [1] قرار می دهد. هنگامی که سوئیچ رمزگذار را فشار می دهید ، می توانید بین قابلمه [0] و گلدان [1] جابجا شوید.
مقدار واقعی گلدان ها از DS1803 خوانده می شود و در متغیر potValue [0] و potValue [1] قرار داده می شود و روی LCD نمایش داده می شود.
مرحله 1: اتصالات DS1803
![اتصالات DS1803 اتصالات DS1803](https://i.howwhatproduce.com/images/003/image-7872-18-j.webp)
در اینجا می توانید اتصالات DS1803 را مشاهده کنید. H سمت بالای پتانسیومتر ، L سمت پایین و W برف پاک کن است. SCL و SDA اتصالات اتوبوس هستند.
با اتصال A0 ، A1 و A2 می توانید آدرس DS1803 مربوط به خود را بدهید ، به این ترتیب می توانید دستگاه های بیشتری را از طریق یک گذرگاه کنترل کنید. در مثال من آدرس DS1803 را با اتصال همه پین ها به زمین داده ام.
مرحله 2: Command Byte
![دستور بایت دستور بایت](https://i.howwhatproduce.com/images/003/image-7872-19-j.webp)
نحوه عملکرد DS1803 را می توان در دستور بایت استفاده کرد. هنگامی که "نوشتن پتانسیومتر -0" را انتخاب می کنید ، هر دو پتانسیومتر انتخاب می شوند ، هنگامی که فقط می خواهید پتانسیومتر -0 را تنظیم کنید ، فقط باید اولین بایت داده را ارسال کنید. "بنویسید پتانسیومتر -1" فقط potmeter-1 را تنظیم کنید. "برای هر دو پتانسیومتر بنویسید" مقدار هر دو پتانسیومتر یکسان است.
مرحله 3: کنترل DS1803
![کنترل DS1803 کنترل DS1803](https://i.howwhatproduce.com/images/003/image-7872-20-j.webp)
بایت کنترل (شکل 3) دارای شناسه دستگاه است ، این همیشه ثابت می ماند. در مثال من A0 ، A1 و A2 0 هستند زیرا ما آدرس را با قرار دادن تمام پین های A روی زمین انتخاب می کنیم. آخرین بیت R/W با دستور "Wire.beginTransmission" و "Wire.requestFrom" در آردوینو روی 0 یا 1 تنظیم می شود. در شکل 5 می توانید کل تلگرام را مشاهده کنید. تلگرام خوانده شده در شکل 4 نشان داده شده است.
مرحله 4: تنظیم کنید
![برپایی برپایی](https://i.howwhatproduce.com/images/003/image-7872-21-j.webp)
این مدار نحوه اتصال همه چیز را نشان می دهد. LCD نوکیا با اتصالات مختلف در دسترس است ، مطمئن شوید که دستگاه خود را درست وصل کرده اید. همچنین رمزگذار دوار نسخه های مختلف خود را ، برخی از مشترک در پین وسط برخی دیگر است. من یک شبکه فیلتر کوچک (مقاومت 470 اهم با درپوش 100nF) برای فیلتر کردن سیگنال های خروجی A و B رمزگذار قرار داده ام. من به این فیلتر احتیاج دارم زیرا خروجی نویز زیادی دارد. من همچنین یک تایمر خروج را در برنامه خود قرار دادم تا نویز را لغو کند. برای بقیه فکر می کنم مدار روشن است. LCD را می توان از طریق Adafruit https://www.adafruit.com/product/338 سفارش داد.
مرحله 5: برنامه
برای استفاده از گذرگاه 2 سیم ، من کتابخانه Wire.h را شامل می شود. برای استفاده از LCD ، من کتابخانه Adafruit را شامل می کنم که می توانید از https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library دانلود کنید ، همچنین کتابخانه Adafruit_GFX.h در اینجا موجود است https:// github. com/adafruit/Adafruit-GFX-Library.
#عبارتند از
#عبارتند از
#عبارتند از
نمایش Adafruit_PCD8544 = Adafruit_PCD8544 (7 ، 6 ، 5 ، 4 ، 3) ؛
در اینجا می توانید همه متغیرها را مشاهده کنید. بایت را کنترل کنید و بایت فرمان را همانطور که در بالا توضیح داده شد کنترل کنید. بسته به نویز رمزگذار شما ، deBounceTime را می توان تنظیم کرد.
بایت قابلمه [2] = {1 ، 1} ؛ بایت controlByte = B0101000 ؛ // 7 بیت ، بایت commandByte = B10101001؛ // 2 بیت آخر انتخاب potmeter است. بایت potValue [2]؛ int i = 0 ؛ int deBounceTime = 10 ؛ // این مقدار را بسته به سر و صدای const int encoder_A = 8 تنظیم کنید؛ const int encoder_B = 9؛ const int buttonPin = 2؛ بدون علامت طولانی newDebounceTime = 0؛ بدون علامت قدیمی oldTime؛ بولی فشرده = 0 ؛ تعداد بول = 1 ؛
در تنظیم ، پین های مناسب را تعریف می کنم و متن استاتیک را روی LCD قرار می دهم
void setup () {Wire.begin ()؛ Serial.begin (9600)؛ pinMode (encoder_A ، INPUT) ؛ pinMode (encoder_B ، INPUT) ؛ pinMode (buttonPin ، INPUT) ؛ newDebounceTime = millis ()؛
display.begin ()؛
display.setContrast (50) ؛ display.clearDisplay ()؛ display.setTextSize (1) ؛ display.setTextColor (BLACK) ؛ display.setCursor (0 ، 10) ؛ display.println ("POT 1 =")؛ display.setCursor (0 ، 22) ؛ display.println ("POT 2 =")؛ display.display ()؛
}
در حلقه ابتدا بررسی می کنم که فاصله بین 500 میلی ثانیه بیشتر باشد ، اگر بله LCD به روز می شود. در غیر این صورت دکمه رمزگذار بررسی می شود. در صورت فشار دادن toggleBuffer تماس بگیرید. پس از این رمزگذار بررسی می شود. اگر ورودی 0 کم است (چرخش تشخیص داده شد) من ورودی B را بررسی می کنم ، اگر ورودی B 0 من گلدان افزایش ، بقیه را کاهش می دهم. پس از این مقدار از طریق wire.write به DS1803 ارسال می شود.
حلقه خالی () {
فاصله () ؛
if (digitalRead (buttonPin) == 1 && (pressed == 0)) {toggleBuffer ()؛} if (digitalRead (buttonPin) == 0) {pressed = 0؛}
if (digitalRead (encoder_A) == 0 && count == 0 && (millis () - newDebounceTime> deBounceTime)) {if (digitalRead (encoder_B) == 0) {pot ++؛ if (pot > 25) {pot = 25؛}} else {pot -؛ if (pot <1) {pot = 1؛}} تعداد = 1؛ newDebounceTime = millis ()؛
Wire.beginTransmission (controlByte) ؛ // شروع به انتقال کنید
Wire.write (commandByte) ؛ // انتخاب potmeters Wire.write (قابلمه [0] * 10)؛ // ارسال یک بایت از اطلاعات potmeter Wire.write (pot [1] * 10)؛ // ارسال 2 بایت داده potmeter Wire.endTransmission ()؛ // توقف انتقال} else if (digitalRead (encoder_A) == 1 && digitalRead (encoder_B) == 1 && count == 1 && (millis () - newDebounceTime> deBounceTime)) {count = 0؛ newDebounceTime = millis ()؛ }}
void toggleBuffer () {pressed = 1؛ اگر (i == 0) {i = 1؛} دیگری {i = 0؛}}
ابتدا ناحیه ای را که باید متغیرها را بنویسم پاک می کنم. این کار را می کنم تا یک مستطیل در این ناحیه رسم کنم. پس از آن متغیرها را روی صفحه می نویسم.
void writeToLCD () {Wire.requestFrom (controlByte، 2)؛ potValue [0] = Wire.read ()؛ // اولین potmeter byte potteValue [1] = Wire.read () را بخوانید؛ // صفحه دوم بایت potmeter display.fillRect (40 ، 0 ، 40 ، 45 ، WHITE) را بخوانید ؛ // پاک کردن متغیر روی صفحه نمایش LCD.setCursor (40 ، 10) ؛ display.print (potValue [0]) ؛ // اولین مقدار potmeter را در LCD display.setCursor (40 ، 22) بنویسید ؛ display.print (potValue [1]) ؛ // مقدار دوم potmeter را در LCD display.setCursor (60 ، (10 + i * 12)) بنویسید ؛ display.print ("<")؛ display.display ()؛ }
void interval () {// interval timer برای نوشتن اطلاعات روی LCD if ((millis () - oldTime)> 500) {writeToLCD ()؛ oldTime = millis ()؛ }}
توصیه شده:
کنترل روشنایی LED با پتانسیومتر با آردوینو: 3 مرحله
![کنترل روشنایی LED با پتانسیومتر با آردوینو: 3 مرحله کنترل روشنایی LED با پتانسیومتر با آردوینو: 3 مرحله](https://i.howwhatproduce.com/images/001/image-367-41-j.webp)
کنترل روشنایی LED با پتانسیومتر با آردوینو: در این پروژه ، روشنایی LED را با استفاده از مقاومت متغیر ارائه شده توسط پتانسیومتر کنترل می کنیم. این یک پروژه بسیار ابتدایی برای مبتدیان است ، اما چیزهای زیادی در مورد کار با پتانسیومتر و عملکرد LED که برای ایجاد پیشرفت لازم است به شما آموزش می دهد
پتانسیومتر دیجیتال MCP41HVX1 برای آردوینو: 10 مرحله (همراه با تصاویر)
![پتانسیومتر دیجیتال MCP41HVX1 برای آردوینو: 10 مرحله (همراه با تصاویر) پتانسیومتر دیجیتال MCP41HVX1 برای آردوینو: 10 مرحله (همراه با تصاویر)](https://i.howwhatproduce.com/images/001/image-2922-21-j.webp)
پتانسیومتر دیجیتال MCP41HVX1 برای آردوینو: خانواده پتانسیومترهای دیجیتال خانواده MCP41HVX1 (با نام مستعار DigiPots) دستگاه هایی هستند که عملکرد یک پتانسیومتر آنالوگ را تقلید می کنند و از طریق SPI کنترل می شوند. یک برنامه کاربردی جایگزینی دکمه تنظیم صدا روی استریوی شما با DigiPot است که
پتانسیومتر و سروو: حرکت کنترل شده با آردوینو: 4 مرحله
![پتانسیومتر و سروو: حرکت کنترل شده با آردوینو: 4 مرحله پتانسیومتر و سروو: حرکت کنترل شده با آردوینو: 4 مرحله](https://i.howwhatproduce.com/images/006/image-16589-j.webp)
پتانسیومتر و سروو: حرکت کنترل شده با آردوینو: ابتدا باید مواد مربوطه را جمع آوری کنید تا این مدار را کنار هم قرار دهید
نمایشگرهای 7 قسمتی دوگانه با کنترل پتانسیومتر در مدار
![نمایشگرهای 7 قسمتی دوگانه با کنترل پتانسیومتر در مدار نمایشگرهای 7 قسمتی دوگانه با کنترل پتانسیومتر در مدار](https://i.howwhatproduce.com/images/003/image-7977-16-j.webp)
دو نمایشگر 7 قسمتی توسط پتانسیومتر در مدار کنترل می شود Python-Demonstration of the Resistence of Vision: این پروژه از پتانسیومتر برای کنترل صفحه نمایش در چند نمایشگر LED 7 قسمتی (F5161AH) استفاده می کند. با چرخاندن دکمه پتانسیومتر ، تعداد نمایش داده شده در محدوده 0 تا 99 تغییر می کند. فقط یک LED در هر لحظه روشن می شود ، به طور بسیار کوتاه ، اما
ارزان ترین آردوینو -- کوچکترین آردوینو -- آردوینو پرو مینی -- برنامه نویسی -- آردوینو ننو: 6 مرحله (همراه با تصاویر)
![ارزان ترین آردوینو -- کوچکترین آردوینو -- آردوینو پرو مینی -- برنامه نویسی -- آردوینو ننو: 6 مرحله (همراه با تصاویر) ارزان ترین آردوینو -- کوچکترین آردوینو -- آردوینو پرو مینی -- برنامه نویسی -- آردوینو ننو: 6 مرحله (همراه با تصاویر)](https://i.howwhatproduce.com/images/003/image-6862-42-j.webp)
ارزان ترین آردوینو || کوچکترین آردوینو || آردوینو پرو مینی || برنامه نویسی || آردوینو ننو: …………………………. لطفاً برای ویدیوهای بیشتر به کانال YouTube من مشترک شوید ……. .این پروژه در مورد نحوه ارتباط با کوچکترین و ارزانترین آردوینو است. کوچکترین و ارزان ترین آردوینو arduino pro mini است. شبیه آردوینو