من اغلب در آردوینو پین های دیجیتالم تمام می شود. هر چیزی به پیچیدگی، مثلاً یک کنترلر بازی ویدیویی، با تعداد پین هایی که در دسترس داشتم تقریباً غیرممکن بود. دکمه های مولتی پلکس کار می کنند، اما به اتصالات و لحیم کاری زیادی نیاز دارند. بنابراین، من یک راه حل جمع آوری کردم!
مرحله 1: تقسیم کننده های مقاومت در پنج
در مداری که از یک مقاومت و یک باتری 9 ولتی تشکیل شده است، مقاومت 9 ولت در خود افت می کند. بنابراین، ولتاژ جلو مقاومت 9 ولت است. دو مقاومت با ارزش یکسان، هر کدام نصف ولتاژ، 4.5 ولت را کاهش می دهند، که هر کدام نصف مقاومت کل مدار است. اگر یک مقاومت 100 اهم و مقاومت دوم 300 اهم باشد، هر کدام یک ولتاژ رو به جلو متناسب خواهند داشت. در مدار 12 ولت، مقاومت 100 اهم 3 ولت و مقاومت 300 اهم 9 ولت کاهش می یابد. چیزهای بیشتری برای تقسیمکنندههای مقاومت (مانند پتانسیومتر) وجود دارد، اما این فراتر از محدوده این دستورالعمل است. پیشنهاد می کنم برای اطلاعات بیشتر این مطلب را بخوانید: https://www.sparkfun.com/tutorials/207
مرحله 2: شماتیک و توضیح
اولین نمودار بالا روش استاندارد اتصال دکمه ها است. هر کدام به پین دیجیتالی خود متصل می شوند و هر کدام دارای مقاومت کششی مخصوص به خود هستند. در نمودار دوم، همه دکمه ها به یک پین آنالوگ متصل می شوند. آنها همچنین از طریق یک مقاومت 1K اهم به مثبت و از طریق مقاومت های با مقادیر مختلف به منفی متصل می شوند. هنگامی که دکمه 1 فشار داده می شود، سطح ولتاژ آنالوگ 0 برابر است با {R2 / (R1+R2)} * Vcc یا {100 / (1000+100)} * 5 = 5/11 ولت یا 0.45 ولت. با حل دو دکمه دیگر با مقاومتهای 330 و 470 اهم، 1.24 ولت برای دکمه 2 و حدود 1.6 ولت برای دکمه 3 دریافت میکنیم. ، و غیره.
همچنین این واقعیت مفید است که فشار دادن دو دکمه به طور همزمان یک مقدار کاملاً مستقل تولید می کند. بر اساس معادله مقاومتهای موازی، 1/R=1/R1 +1/R2 … 1/Rx، میتوانیم تعیین کنیم که فشار دادن دکمههای یک و دو با هم مقاومت کلی 1/100 +1/330 =1/ را ایجاد کند. R، بنابراین با حل R، نتیجه حدود 77 اهم است. آن را به فرمول تقسیم کننده ولتاژ با 77 اهم به عنوان R2، {77 / (1077)} * 5 = 0.35 ولت وصل کنید، یک ولتاژ کاملاً جدید دریافت می کنیم. کاربردهای احتمالی شامل خواندن مورب روی جوی استیکهایی است که از دکمهها استفاده میکنند، مانند این: https://www.sparkfun.com/products/9182 ، بدون چند عبارت if..then…else if در آردوینو.
برای اطلاعات بیشتر در مورد مقاومت های موازی، این مقاله را بخوانید: http://www.electronics-tutorials.ws/resistor/res_4.html
برای جزئیات بیشتر: چندین ورودی دیجیتال را با استفاده از آردوینو به یک ورودی آنالوگ وصل کنید
در ادامه، متن انگلیسی این مطلب را میتوانید مشاهده نمایید:
I often run out of digital pins on my Arduino. Anything as complicated as, say, a video game controller, was near impossible with the amount of pins I had available. Multiplexing buttons works, but it requires lots of connections and soldering. So, I put together a solution!
Step 1: Resistor Dividers in Five
In a circuit consisting of one resistor and a 9V battery, the resistor drops 9V across itself. So, the resistor’s forward voltage is 9V. Two resistors of equal value would each drop half the voltage, 4.5V, each being half the total resistance in the circuit. If one resistor is 100 ohms, and a second resistor is 300 ohms, each will have a proportional forward voltage. In a 12V circuit, the 100 ohm resistor would drop 3V and the 300 ohm resistor would drop 9V. There’s more to resistor dividers (such as potentiometers), but that is beyond the scope of this instructable. I suggest reading this for more info: https://www.sparkfun.com/tutorials/207