در حالی که میتوانید دستگاههای ورودی/خروجی آنالوگ خود را به راحتی به آردوینو متصل کنید، اما با Raspberry Pi (Raspi) کار چندان آسانی نیست. هیچ پین GPIO آنالوگ در Raspi وجود ندارد. تمام GPIO های Raspi دیجیتال هستند.
نمودار مدار یک سنسور آنالوگ در راسپی
با این حال، دستگاه های ورودی آنالوگ از نوع مقاومتی ساده را می توان به راحتی با افزودن یک مدار تشدید کننده مقاومت-خازن کوچک ساخته شده در اطراف یک مقاومت و سپس اندازه گیری زمان شارژ خازن، به رسپی متصل کرد. در اینجا برنامه ای برای اندازه گیری شدت نور و چاپ آن بر روی مانیتور با استفاده از LDR و خازن وجود دارد.
رابط سنسور
اجازه دهید بگوییم که دستگاه آنالوگ ما یک مقاومت وابسته به نور (LDR) است که مقاومت خود را بر اساس شدت نور تغییر می دهد. برای خازن از یک خازن کوچک استفاده می کنیم تا زمان شارژ دقیق باشد. هر خازن الکترولیتی کوچک 1μF (که دارای یک سرب + و یک سرب باشد) برای هدف ما کار خواهد کرد. با خازن بزرگتر، زمان شارژ افزایش مییابد، بنابراین عدد اندازهگیری شده ما نیز افزایش مییابد. علاوه بر این، یک خازن بسیار بزرگ (100μF یا بیشتر) ممکن است اصلاً از یک توان ضعیف Raspi به طور کامل شارژ نشود.
پین جزئیات رسپی بی
اسکرین شات از خروجی برنامه
برنامه analog.py با اسکریپت پایتون نوشته شده است، که پین ورودی Raspi را قادر میسازد تا سیگنال سنسوری مانند LDR و مقادیر شدت سیگنال خروجی را روی صفحه بپذیرد. صفحه خروجی برنامه در شکل 3 نشان داده شده است. متغیر خواندن در کد چیزی جز یک شمارنده نیست. مقدار شمارنده اندازه گیری ورودی LDR است که به طور غیرمستقیم متناسب با شدت نور است.
هنگامی که خازن به طور کامل شارژ شد، پین GPIO متصل شده (GPIO 17) یک '1' را به آن حس می کند و شمارنده متوقف می شود. در کد ابتدا پین GPIO را Out قرار داده و سپس آن را Low قرار می دهیم. سپس، پین GPIO را به صورت In قرار می دهیم. LDR به آرامی آن را روی «1» شارژ میکند، و لحظهای که پین GPIO به «1» تبدیل میشود، روند معکوس میشود—خوانش «0» و GPIO دوباره کم میشود. ما یک زمان خواب 0.5 ثانیه ای را حفظ کرده ایم که در آن یک چرخه با یک حاشیه مشخص به پایان می رسد.
هنگامی که این حالت به دست آمد، پین GPIO را به Low تنظیم می کنیم و چرخه ادامه می یابد. اغلب، ظرف 400 میلی ثانیه (میلی ثانیه)، خازن به طور کامل شارژ می شود و در هر 0.5 ثانیه پین GPIO را تنظیم مجدد می کنیم، به طوری که چرخه شمارش به خوبی از چرخه تنظیم مجدد پاک می شود.
[sextbox id=”grey”]