رباتیک و هوافضا

ساخت صفحه کلید لمسی خازنی با رزبری پای

لید لمسی خازنی با رزبری پای

به نام خدا

ساخت صفحه کلید لمسی خازنی با رزبری پای

لید لمسی خازنی با رزبری پای

Raspberry Pi یکی از معتبر ترین سیستم های توسعه پروژه است که در حال حاضر وجود دارد. با سرعت بالاتر پردازنده و ۱ گیگابایت رم می تواند برای بسیاری از پروژه های پرطرفدار مثل پردازش تصویر و اینترنت استفاده شود.

 

در هر آموزش ما یکی از توابع PI را مورد بحث قرار خواهیم داد. در پایان این سری Tutorial Series Raspberry Pi، شما قادر خواهید بود تا پروژه های عالی خود را انجام دهید.

سلسله مراتب آموزش به شکل زیر است:

شروع کار با صفحه لمسی

پیکربندی Raspberry Pi

LED Blinky

دکمه پیپ صفحه لمسی Pi

نسل PWM صفحه لمسی Pi

کنترل موتور DC با استفاده از صفحه لمسی پی

کنترل موتور پله با صفحه لمسی پی

رابط با Shift ثبت نام با Raspberry Pi

در این آموزش، ما یک صفحه لمسی خازنی را با Raspberry Pi راه اندازی کنیم. صفحه لمسی خازنی دارای ۸ کلید از ۱ تا ۸ است کلیدها مانند لنز حساس لمسی روی PCB قرار دارند. هنگامی که ما یکی از پد های لمسی را لمس می کنیم، پد های تغییر ظرفیت در سطح آن تغییر میکند.

این تغییر توسط واحد کنترل گرفته می شود، به عنوان پاسخ، یک پین مربوطه را در سمت خروجی بالا می برد. ما این ماژول سنسور لمسی خازنی را به Raspberry Pi متصل می کنیم تا از آن به عنوان دستگاه ورودی برای PI استفاده کنیم.

بیشتر بخوانید...  اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04

در ابتدا درباره پین های Raspberry Pi GPIO بحث خواهیم کرد.

 

پین GPIO:

 

 

لید لمسی خازنی با رزبری پای

لید لمسی خازنی با رزبری پای

همانطور که در شکل بالا نشان داده شده است،۴۰ پین  خروجی برای PI وجود دارد. اما هنگامی که به شکل زیر نگاه می کنید، نمی توانید همه ۴۰ پین را برای استفاده ما برنامه ریزی کنید. این فقط ۲۶ پین GPIO است که می تواند برنامه ریزی شود.یعنی پین های  GPIO2 تا GPIO27 .

این ۲۶ پین GPIO را می توان به عنوان نیاز برنامه ریزی کرد. بعضی از این پین ها نیز برخی از توابع خاص را انجام می دهند، ما در مورد آن بعدا بحث خواهیم کرد. با GPIO ویژه کنار گذاشته شده، ما ۱۷ GPIO باقیمانده (رنگ سبز روشن) داریم.

هر یک از این ۱۷ پین GPIO می تواند حداکثر جریان ۱۵میلی آمپر را ارائه دهد.  مجموع جریان از GPIO نمی تواند بیش از ۵۰میلی آمپر باشد. بنابراین ما می توانیم به طور متوسط از هر یک از این پین GPIO حداکثر ۳میلی آمپر داشته باشیم.

 

لید لمسی خازنی با رزبری پای

 

در حال حاضر یکی دیگر از چیزهای مهم این است که کنترل منطقی PI از ۳٫۳ ولت است، بنابراین شما نمی توانید بیش از منطق + ۳٫۳V به پین GPIO از PI بدهید. اگر ۵V را به هر پین GPIO از PI بدهید، برد آن آسیب میبیند.

بنابراین ما نیاز داریم که صفحه لمسی خازنی را با ۳٫۳ ولت در نظر بگیریم تا بتوان خروجی منطقی منطبق با PI را به دست آورد.

بیشتر بخوانید...  شمارش در سون سگمنت با میکروکنترلر avr

قطعات مورد نیاز صفحه کلید لمسی خازنی با رزبری پای:

در اینجا ما از Raspberry Pi 2 Model B با Raspbian Jessie OS استفاده می کنیم.

اتصال پین

پد لمسی خازنی

شماتیک مدار:

لید لمسی خازنی با رزبری پای

 

دانلود کد برنامه صفحه کلید لمسی خازنی با رزبری پای:

دانلود فایل
import RPi.GPIO as IO                # calling for header file for GPIO’s of PI
import time                                  # calling for time to provide delays in program
IO.setwarnings(False)                 # do not show any warnings
IO.setmode (IO.BCM)                # programming the GPIO by BCM pin numbers. (like PIN29 as‘GPIO5’)
IO.setup(21,IO.IN)                     # initialize GPIO Pins as an Input.
IO.setup(20,IO.IN)
IO.setup(16,IO.IN)
IO.setup(12,IO.IN)
IO.setup(25,IO.IN)
IO.setup(24,IO.IN)
IO.setup(23,IO.IN)
IO.setup(18,IO.IN)
while 1:
    if (IO.input(21) == True): 
        time.sleep(0.001)
        if (IO.input(21) == True):
            print ( 8)                                # if PIN21 is high print’۸’
    if (IO.input(20) == True):
        time.sleep(0.001)
        if (IO.input(20) == True):
            print ( 7)                                # if PIN20 is high print’۷’
    if (IO.input(16) == True):
        time.sleep(0.001)
        if (IO.input(16) == True):
            print ( 6)                                # if PIN16 is high print’۶’
    if (IO.input(12) == True):
        time.sleep(0.001)
        if (IO.input(12) == True):
            print ( 5)                                 # if PIN12 is high print’۵’
    if (IO.input(25) == True):
        time.sleep(0.001)
        if (IO.input(25) == True):
             print ( 4)                                # if PIN25 is high print’۴’
    if (IO.input(24) == True):
        time.sleep(0.001)
        if (IO.input(24) == True):
            print ( 3)                                # if PIN24 is high print’۳’
    if (IO.input(23) == True):
        time.sleep(0.001)
        if (IO.input(23) == True):
            print ( 2)                                # if PIN23 is high print’۲’
    if (IO.input(18) == True):
        time.sleep(0.001)
        if (IO.input(18) == True):
            print ( 1)                                # if PIN18 is high print’۱’
    time.sleep(0.2)                              # wait for 200ms

 

دیدگاه‌ها (0)

*
*