فهرست مطالب:
تصویری: نحوه خواندن بسیاری از سوئیچ ها با یک پین MCU: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:59
آیا تا به حال از پروژه یا پروژه ای غافل شده اید و پروژه همچنان در حال رشد و رشد است ، در حالی که چیزهای بیشتری را به آن اضافه می کنید (ما آن را یک خلاقیت فپینگ می نامیم)؟ در یک پروژه اخیر ، من یک فرکانس متر می ساختم و یک دستگاه تولید سیگنال/عملکرد فرکانس پنج تابع اضافه کردم. من به زودی با تعداد بیشتری سوئیچ نسبت به پین های موجود کار کردم ، پس یک مرد باید چه کار کند؟
با این حال ، من به زودی هفت سوئیچ دیگر در Funbox خود داشتم (بله ، این همان چیزی است که من آن را تولید کننده عملکرد خود می نامم … می دانم ، من هیچ خلاقیتی ندارم) و در اینجا یک دستورالعمل کوتاه به شما نشان می دهد که چگونه می توانید همین کار را انجام دهید. نیازی به ثبت کننده های شیفت یا IC های خاص ندارد. در حقیقت ، اگر می خواهید نیمه هادی های گسسته رول کنید ، نیازی به میکروکنترلر ندارد. در اینجا راهی وجود دارد که می توانید چندین سوئیچ را با استفاده از یک پین در AVR خود بخوانید/مدیریت کنید (یا میکروکنترلر دیگر … من شنیده ام که به غیر از AVR میکروکنترلرهای دیگری نیز وجود دارند ، اما نمی توانم تصور کنم …).:)
مرحله 1: ملزومات (نه واقعا)
برای انجام این کار ، به چند جزء نیاز دارید. داشتن تعداد زیادی سوئیچ که باید آنها را مدیریت کنید به شما کمک می کند. شما همچنین به برخی از مقاومت ها و یا یک میکروکنترلر که دارای ADC (تبدیل آنالوگ به دیجیتال) است یا روش دیگری که می خواهید نشان دهید سوئیچ فعال شده است و کدام سوئیچ است نیاز دارید.
اگر می خواهید می توانید از یک نوسان ساز کنترل ولتاژ برای نشان دادن این مورد استفاده کنید ، شاید با برخی از چراغ های چشمک زن یا به طور متناوب ، با صدا. در این بخش ، من وانمود می کنم که از AVR استفاده می کنیم ، اما در دنیای شما می توانید هر چیزی را که شما را خوشحال می کند تظاهر کنید. دلم برای باب راس تنگ شده است.
مرحله 2: تقسیم ولتاژ
در اصل ، روشی که ما این کار را انجام می دهیم با استفاده از تکنیک و مدار به نام تقسیم کننده ولتاژ است. تقسیم کننده های ولتاژ ، همانطور که احتمالاً حدس زده اید ، ولتاژ V را بر حسب مقداری که شما تعیین می کنید تقسیم می کنند. شما می توانید ولتاژ را با چندین جزء ، از جمله خازن و سلف تقسیم کنید ، اما در اینجا من این کار را با مقاومت خوب انجام می دهم. ایده کاری که ما انجام می دهیم قرار دادن دو جزء در سری است که هر کدام به طور جداگانه باعث افت ولتاژ در قطعه می شود. اگر متوجه نشدم به تصویر اول نگاه کنید. تفاوت احتمالی 9V از راه آهن به راه آهن وجود دارد. بین 9 ولت و 0 ولت دو مقاومت به صورت سری وجود دارد. هر کدام از این موارد بسته به مقاومت ، همانطور که احتمالاً از V = IR به خاطر می آورید ، بسته به مقاومت ، افت ولتاژ را در سرتاسر خود تجربه خواهند کرد. اگر اندازه گیری ولتاژ بین دو مقاومت را انجام دهید ، مقداری بین 9 ولت تا 0 ولت دریافت خواهید کرد ، بسته به میزان ولتاژ در مقاومت اول و مقدار باقی مانده برای افت روی مقاومت دوم ، قبل از 0 ولت. در این شرایط یک فرمول ساده برای محاسبه افت ولتاژ در یک مقاومت وجود دارد و به نظر می رسد. بگذارید ولتاژ روی مقاومت 1 (R1) V1 و ولتاژ مقاومت دو (R2) V2 باشد. از آنجا که دیگر نمی توانم از قالب بندی استفاده کنم ، برای فرمول به تصویر 2 زیر نگاه کنید … بنابراین ، در تقسیم کننده مقاومتی ما ، ولتاژ Vout را می توان با فرمول V2 تعیین کرد (زیرا ما به GND به 0V اشاره می کنیم). این چه ربطی به شناسایی تعدادی سوئیچ از یک پین دارد؟ خوب ، ورق بزنید و من به شما نشان می دهم!
مرحله 3: نردبان تقسیم ولتاژ
حال فرض کنید ما همه سوئیچ های خود را داریم ، شاید شش یا هشت یا شانزده ، همه از طریق مقاومت به هم متصل شده اند که هر یک به عنوان تقسیم کننده ولتاژ عمل می کنند به طوری که وقتی وضعیت پین سوئیچ تغییر می کند ، ولتاژ خوانده می شود و بر اساس سطح ولتاژ ، ما می تواند بفهمد کدام سوئیچ به تازگی فعال شده است. به زیر نگاه کنید. در تصویر زیر ، من دو بلوک سوئیچ را متصل کرده ام. بلوک بالا دارای دو سوئیچ است و بلوک پایین دارای پنج سوئیچ است. شما می توانید کلیدهای جداگانه ، لحظه ای ، لمسی و غیره خود را به همان روش متصل کنید. نکته مهمی که باید به آن توجه کنید مقاومت است که سوئیچ شما به آن متصل است. در مثال من ، مقاومت مقاومت بعدی را دو برابر کرده ام تا فاصله ولتاژ ایجاد شود که اندازه گیری آن آسان است و با سوئیچ قبل یا بعد اشتباه نمی شود. اگر قبلاً توجه نکرده اید ، دوباره نگاه کنید ، و متوجه شوید که ما به دوست قدیمی خود ، تقسیم کننده ولتاژ مقاومتی ، بازگشته ایم. اولین مقاومت ، 10k اهم ، به 5 ولت و مقاومت دوم متصل است - مقاومت که V را تعیین می کندبیرون برای پین SWITCH_ADC ، به هر سوئیچ متصل است و بنابراین ، هر سوئیچ با ولتاژ Vout خاصی مرتبط است که می تواند از پین ADC متصل به SWITCH_ADC خوانده شود. در مرحله بعد ، Vout مورد انتظار را از هر سوئیچ تعیین کنید
Vout = Vin * (R2 / (R1 + R2))
برای سوئیچ یک:
Vout = 5V * (500 / (10000 + 500)) = 5 * 0.048 = 0.24V یا 240 میلی ولت
برای سوئیچ دو:
Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V یا m 900mV
و غیره.. در صورت استفاده از مقاومت های خاص ، می توانید R2 را با مقادیر خود جایگزین کنید … نکته اصلی در اینجا این است که فاصله ولتاژ کافی بین سوئیچ ها را حفظ کنید تا هرگونه خطای ADC برنده شود t شما را وارد ولتاژ مورد انتظار از سوئیچ مجاور می کند. به نظر من ساده ترین کار این است که نردبان تقسیم کننده را بسازید و روی پین ADC یک مولتی متر/ولت متر بسازید و هر پین را فشار دهید و ببینید چه مقادیری به دست می آورید. آنها باید نسبت به آنچه محاسبه می کنید بسیار دقیق باشند. هنگامی که تمام مقادیر ولتاژ مورد انتظار از هر سوئیچ را با استفاده از یک مقاومت خاص بدست آوردید ، می توانید MCU خود را بخوانید که پین ADC را بخواند و آن را با مقادیر شناخته شده خود مقایسه کنید تا مشخص شود کدام کلید فشار داده شده است. به عنوان مثال ، بگویید که یک روال سرویس وقفه را ثبت کرده اید که هر زمان که تغییری در پین ADC مشاهده شد ، فراخوانی می شود. در داخل آن ISR ، می توانید ADC را بخوانید و این مقدار را با جدول سوئیچ خود مقایسه کنید. اگر از مقدار ADC 8 بیتی استفاده می کنید ، ولتاژ شما به عددی بین 0 تا 255 تبدیل می شود که مربوط به ولتاژ بین 0 و 5 ولت است. این فرض می کند که ADC خود را به این ترتیب پیکربندی کرده اید.
مرحله 4: خلاصه
بنابراین ، اکنون باید بدانید که چگونه در استفاده از پین GPIO برای سوئیچ صرفه جویی کنید. هر زمان که پین های GPIO کم دارید ، یا به سختی می توانید از آنها استفاده کنید ، یا اگر متوجه شدید که از یک سوئیچ استفاده می کنید ، تقسیم کننده مقاومتی راهی است که می توانید پین های GPIO خود را ذخیره کنید مکانیزم قوی برای تشخیص دسترسی سوئیچ
توصیه شده:
سوئیچ Tuchless برای لوازم خانگی -- لوازم خانگی خود را بدون هیچ گونه سوئیچ کنترل کنید: 4 مرحله
سوئیچ Tuchless برای لوازم خانگی || لوازم خانگی خود را بدون هیچ گونه سوئیچ کنترل کنید: این یک سوئیچ بدون دستگاه برای لوازم خانگی است. می توانید از این دستگاه در هر مکان عمومی استفاده کنید تا به مبارزه با هرگونه ویروس کمک کند. مدار بر اساس مدار سنسور تاریک ساخته شده توسط Op-Amp و LDR. دومین قسمت مهم این مدار SR Flip-Flop با Sequencell
نحوه خواندن چندین ارزش آنالوگ با استفاده از یک پین آنالوگ: 6 مرحله (همراه با تصاویر)
نحوه خواندن چندین ارزش آنالوگ با استفاده از یک پین آنالوگ: در این آموزش ، من به شما نحوه خواندن چندین مقدار آنالوگ با استفاده از تنها یک پین ورودی آنالوگ را نشان خواهم داد
100+ سوئیچ در یک پین تک آردوینو: 6 مرحله (همراه با تصاویر)
100+ سوئیچ در یک پین تک آردوینو: مقدمه آیا پین های ورودی شما تمام شد؟ نگران نباشید ، در اینجا یک راه حل بدون هیچ گونه شیفت رجیستر وجود دارد. در این ویدئو ، ما قصد داریم با اتصال بیش از 100 سوئیچ به یک پین واحد آردوینو آشنا شویم
سوئیچ های خواندن با ATtiny2313: 9 مرحله
سوئیچ های خواندن با ATtiny2313: چندین دستورالعمل برای خروجی های ATtiny2313 و دستگاه های AVR مشابه وجود دارد. برای مثال ، https://www.instructables.com/id/Ghetto-Programming٪3a-Getting-started-with-AVR-micro/ ، https://www.instructables.com/id/Drive-a-St
ISP 6 پین تا 8 پین سوکت: 4 مرحله
ISP 6 پین تا 8 پین سوکت: دلیل اصلی این پروژه من برنامه نویسی ATTiny45 بود که دارای اتصال 8 پین است ، در حالی که USBtinyISP من (از Ladyada) فقط 10 پین و 6 پین اتصال دارد. بعد از حدود 3-4 هفته جست و جو در اینترنت ، چیزی پیدا نکردم که